Skip to content

Commit 1fcfe3d

Browse files
committed
test: selection by date in SurveyUnitService
1 parent 2fd6330 commit 1fcfe3d

File tree

3 files changed

+36
-6
lines changed

3 files changed

+36
-6
lines changed

src/test/java/fr/insee/genesis/domain/service/SurveyUnitServiceTest.java renamed to src/test/java/fr/insee/genesis/domain/service/surveyunit/SurveyUnitServiceTest.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package fr.insee.genesis.domain.service;
1+
package fr.insee.genesis.domain.service.surveyunit;
22

33
import fr.insee.genesis.controller.dto.SurveyUnitDto;
44
import fr.insee.genesis.controller.dto.VariableDto;
@@ -7,7 +7,6 @@
77
import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel;
88
import fr.insee.genesis.domain.model.surveyunit.VariableModel;
99
import fr.insee.genesis.domain.service.metadata.QuestionnaireMetadataService;
10-
import fr.insee.genesis.domain.service.surveyunit.SurveyUnitService;
1110
import fr.insee.genesis.infrastructure.utils.FileUtils;
1211
import fr.insee.genesis.stubs.ConfigStub;
1312
import fr.insee.genesis.stubs.QuestionnaireMetadataPersistancePortStub;
@@ -243,6 +242,24 @@ void findDistinctInterrogationIdsByQuestionnaireIdTest(){
243242
).isNotEmpty().hasSize(1);
244243
}
245244

245+
@Test
246+
void findDistinctInterrogationIdsByQuestionnaireIdAndDateAfterTest_no_doc_in_period(){
247+
addAdditionnalSurveyUnitModelToMongoStub();
248+
249+
Assertions.assertThat(surveyUnitServiceStatic.findDistinctInterrogationIdsByQuestionnaireIdAndDateAfter(DEFAULT_QUESTIONNAIRE_ID,LocalDateTime.of(2025,9,1,0,0,0))).filteredOn(
250+
interrogationId -> interrogationId.getInterrogationId().equals(DEFAULT_INTERROGATION_ID)
251+
).isEmpty();
252+
}
253+
254+
@Test
255+
void findDistinctInterrogationIdsByQuestionnaireIdAndDateAfterTest_doc_in_period(){
256+
addAdditionnalSurveyUnitModelToMongoStub();
257+
258+
Assertions.assertThat(surveyUnitServiceStatic.findDistinctInterrogationIdsByQuestionnaireIdAndDateAfter(DEFAULT_QUESTIONNAIRE_ID,LocalDateTime.of(2022,1,1,0,0,0))).filteredOn(
259+
interrogationId -> interrogationId.getInterrogationId().equals(DEFAULT_INTERROGATION_ID)
260+
).isNotEmpty().hasSize(1);
261+
}
262+
246263
@Test
247264
void findInterrogationIdsByQuestionnaireIdTest(){
248265
Assertions.assertThat(surveyUnitServiceStatic.findModesByQuestionnaireId(DEFAULT_QUESTIONNAIRE_ID)).filteredOn(

src/test/java/fr/insee/genesis/stubs/LastJsonExtractionPersistencePortStub.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import fr.insee.genesis.domain.ports.spi.LastJsonExtractionPersistencePort;
66
import fr.insee.genesis.exceptions.GenesisException;
77
import fr.insee.genesis.infrastructure.document.extraction.json.LastJsonExtractionDocument;
8+
import fr.insee.genesis.infrastructure.mappers.LastJsonExtractionDocumentMapper;
89
import lombok.Getter;
910

1011
import java.util.ArrayList;
@@ -13,14 +14,18 @@
1314
@Getter
1415
public class LastJsonExtractionPersistencePortStub implements LastJsonExtractionPersistencePort {
1516

16-
List<LastJsonExtractionDocument> documents = new ArrayList<>();
17+
List<LastJsonExtractionDocument> mongoStub = new ArrayList<>();
1718
@Override
1819
public void save(LastJsonExtractionModel extraction) {
19-
20+
mongoStub.add(LastJsonExtractionDocumentMapper.INSTANCE.modelToDocument(extraction));
2021
}
2122

2223
@Override
2324
public LastJsonExtractionModel getLastExecutionDate(String questionnaireModelId, Mode mode) throws GenesisException {
24-
return null;
25+
LastJsonExtractionDocument extraction = mongoStub.stream()
26+
.filter(doc -> doc.getId().equals(String.format("%s_%s",questionnaireModelId,mode)))
27+
.findFirst()
28+
.orElseThrow();
29+
return LastJsonExtractionDocumentMapper.INSTANCE.documentToModel(extraction);
2530
}
2631
}

src/test/java/fr/insee/genesis/stubs/SurveyUnitPersistencePortStub.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,15 @@ public List<SurveyUnitModel> findInterrogationIdsByQuestionnaireId(String questi
9191

9292
@Override
9393
public List<SurveyUnitModel> findInterrogationIdsByQuestionnaireIdAndDateAfter(String questionnaireId, LocalDateTime since) {
94-
return List.of();
94+
List<SurveyUnitModel> surveyUnitModelList = new ArrayList<>();
95+
for(SurveyUnitModel surveyUnitModel : mongoStub){
96+
if(surveyUnitModel.getQuestionnaireId().equals(questionnaireId) && surveyUnitModel.getRecordDate().isAfter(since))
97+
surveyUnitModelList.add(
98+
new SurveyUnitModel(surveyUnitModel.getInterrogationId(), surveyUnitModel.getMode())
99+
);
100+
}
101+
102+
return surveyUnitModelList;
95103
}
96104

97105

0 commit comments

Comments
 (0)