Skip to content

Commit

Permalink
fix: use previousDate instead of newDate for null integrity in updati…
Browse files Browse the repository at this point in the history
…ng state date (#230) (#231)

* fix: use previousDate instead of newDate for null integrity in updating state date

* chore: bump deps version
  • Loading branch information
davdarras authored Apr 8, 2024
1 parent 52223fb commit c625075
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 9 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
<description>Modules for queen back-office</description>

<properties>
<revision>4.2.2</revision>
<revision>4.2.3</revision>
<changelist></changelist>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
Expand Down Expand Up @@ -70,7 +70,7 @@
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.11</version>
<version>0.8.12</version>
<executions>
<execution>
<id>prepare-agent</id>
Expand Down
2 changes: 1 addition & 1 deletion queen-application/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<caffeine.version>3.1.8</caffeine.version>
<zonky-spring.version>2.5.0</zonky-spring.version>
<zonky-postgres.version>2.0.6</zonky-postgres.version>
<springdoc.version>2.4.0</springdoc.version>
<springdoc.version>2.5.0</springdoc.version>
<commons-io.version>2.16.0</commons-io.version>
<org-json.version>20240303</org-json.version>
<guava.version>33.1.0-jre</guava.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public void saveStateData(String surveyUnitId, StateData stateData) throws State
Long previousDate = previousStateData.get().date();
Long newDate = stateData.date();

if (newDate != null && newDate.compareTo(previousDate) < 0) {
if (previousDate != null && newDate.compareTo(previousDate) < 0) {
throw new StateDataInvalidDateException(INVALID_DATE_MESSAGE);
}
stateDataRepository.save(surveyUnitId, stateData);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,16 @@ public class StateDataFakeDao implements StateDataRepository {
@Getter
private StateData stateDataSaved = null;

public static final StateData STATE_DATA = new StateData(StateDataType.INIT, 90000000L, "2");
@Setter
@Getter
public StateData stateDataReturned = new StateData(StateDataType.INIT, 90000000L, "2");

@Override
public Optional<StateData> find(String surveyUnitId) {
if(hasEmptyStateData) {
return Optional.empty();
}
return Optional.of(STATE_DATA);
return Optional.of(stateDataReturned);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ void init() {
@DisplayName("On retrieving state data, get correct state data")
void testGet01() {
StateData stateData = stateDataService.getStateData(surveyUnitId);
assertThat(stateData).isEqualTo(StateDataFakeDao.STATE_DATA);
assertThat(stateData).isEqualTo(stateDataDao.getStateDataReturned());
}

@Test
Expand All @@ -53,7 +53,16 @@ void testSave01() throws StateDataInvalidDateException {
@DisplayName("On saving new state data, when previous state data is older, save new state data")
void testSave02() throws StateDataInvalidDateException {
StateData stateDataUpdate = new StateData(StateDataType.VALIDATED, 100000000L, "5");
assertThat(stateDataUpdate.date()).isGreaterThan(StateDataFakeDao.STATE_DATA.date());
assertThat(stateDataUpdate.date()).isGreaterThan(stateDataDao.getStateDataReturned().date());
stateDataService.saveStateData(surveyUnitId, stateDataUpdate);
assertThat(stateDataUpdate).isEqualTo(stateDataDao.getStateDataSaved());
}

@Test
@DisplayName("On saving new state data, when previous state data is null, save new state data")
void testSave02bis() throws StateDataInvalidDateException {
StateData stateDataUpdate = new StateData(StateDataType.VALIDATED, 100000000L, "5");
stateDataDao.setStateDataReturned(new StateData(StateDataType.INIT, null, "2"));
stateDataService.saveStateData(surveyUnitId, stateDataUpdate);
assertThat(stateDataUpdate).isEqualTo(stateDataDao.getStateDataSaved());
}
Expand All @@ -62,7 +71,7 @@ void testSave02() throws StateDataInvalidDateException {
@DisplayName("On saving new state data, when previous state data is newer, throw exception")
void testSave03() {
StateData stateDataUpdate = new StateData(StateDataType.VALIDATED, 800000L, "5");
assertThat(stateDataUpdate.date()).isLessThanOrEqualTo(StateDataFakeDao.STATE_DATA.date());
assertThat(stateDataUpdate.date()).isLessThanOrEqualTo(stateDataDao.getStateDataReturned().date());
assertThatThrownBy(() -> stateDataService.saveStateData(surveyUnitId, stateDataUpdate))
.isInstanceOf(StateDataInvalidDateException.class)
.hasMessage(StateDataApiService.INVALID_DATE_MESSAGE);
Expand Down

0 comments on commit c625075

Please sign in to comment.