diff --git a/src/main/java/fr/insee/genesis/controller/adapter/LunaticJsonAdapter.java b/src/main/java/fr/insee/genesis/controller/adapter/LunaticJsonAdapter.java index a818967e..8892594c 100644 --- a/src/main/java/fr/insee/genesis/controller/adapter/LunaticJsonAdapter.java +++ b/src/main/java/fr/insee/genesis/controller/adapter/LunaticJsonAdapter.java @@ -13,9 +13,9 @@ public class LunaticJsonAdapter { public SurveyUnitModel convert(LunaticJsonSurveyUnit su){ return SurveyUnitModel.builder() - .idQuest(su.getIdQuest()) - .idCampaign("") - .idUE(su.getIdUE()) + .questionnaireId(su.getIdQuest()) + .campaignId("") + .interrogationId(su.getIdUE()) .state(DataState.COLLECTED) .mode(Mode.WEB) .recordDate(LocalDateTime.now()) diff --git a/src/main/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapter.java b/src/main/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapter.java index fd9f7019..1cad3863 100644 --- a/src/main/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapter.java +++ b/src/main/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapter.java @@ -69,9 +69,9 @@ public static List convert(LunaticXmlSurveyUnit su, VariablesMa */ private static SurveyUnitModel getStateDataFromSurveyUnit(LunaticXmlSurveyUnit su, VariablesMap variablesMap, String idCampaign, DataState dataState, Mode mode) { SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder() - .idQuest(su.getQuestionnaireModelId()) - .idCampaign(idCampaign) - .idUE(su.getId()) + .questionnaireId(su.getQuestionnaireModelId()) + .campaignId(idCampaign) + .interrogationId(su.getId()) .state(dataState) .mode(mode) .recordDate(LocalDateTime.now()) @@ -119,14 +119,13 @@ private static SurveyUnitModel getCollectedDataFromSurveyUnit(LunaticXmlSurveyUn continue; //Go to next data } for (int i = 1; i <= valueTypeList.size(); i++) { - List variableValues = new ArrayList<>(); if (valueTypeList.get(i-1).getValue()!=null) { - variableValues.add(valueTypeList.get(i-1).getValue()); variableModels.add(VariableModel.builder() - .idVar(lunaticXmlCollectedData.getVariableName()) - .values(variableValues) - .idLoop(LoopIdentifier.getLoopIdentifier(lunaticXmlCollectedData.getVariableName(), variablesMap, i)) - .idParent(LoopIdentifier.getRelatedVariableName(lunaticXmlCollectedData.getVariableName(), variablesMap)) + .varId(lunaticXmlCollectedData.getVariableName()) + .value(valueTypeList.get(i-1).getValue()) + .scope(LoopIdentifier.getLoopIdentifier(lunaticXmlCollectedData.getVariableName(), variablesMap)) + .parentId(LoopIdentifier.getRelatedVariableName(lunaticXmlCollectedData.getVariableName(), variablesMap)) + .iteration(i) .build()); dataCount++; } @@ -157,14 +156,13 @@ private static void getExternalDataFromSurveyUnit(LunaticXmlSurveyUnit su, Surve continue; //Go to next data } for (int i = 1; i <= valueTypeList.size(); i++) { - List variableValues = new ArrayList<>(); if (valueTypeList.get(i-1).getValue()!=null) { - variableValues.add(valueTypeList.get(i-1).getValue()); variableModels.add(VariableModel.builder() - .idVar(lunaticXmlExternalData.getVariableName()) - .values(variableValues) - .idLoop(LoopIdentifier.getLoopIdentifier(lunaticXmlExternalData.getVariableName(), variablesMap, i)) - .idParent(LoopIdentifier.getRelatedVariableName(lunaticXmlExternalData.getVariableName(), variablesMap)) + .varId(lunaticXmlExternalData.getVariableName()) + .value(valueTypeList.get(i-1).getValue()) + .scope(LoopIdentifier.getLoopIdentifier(lunaticXmlExternalData.getVariableName(), variablesMap)) + .iteration(i) + .parentId(LoopIdentifier.getRelatedVariableName(lunaticXmlExternalData.getVariableName(), variablesMap)) .build()); } } diff --git a/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitId.java b/src/main/java/fr/insee/genesis/controller/dto/InterrogationId.java similarity index 63% rename from src/main/java/fr/insee/genesis/controller/dto/SurveyUnitId.java rename to src/main/java/fr/insee/genesis/controller/dto/InterrogationId.java index 18b87005..34d80954 100644 --- a/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitId.java +++ b/src/main/java/fr/insee/genesis/controller/dto/InterrogationId.java @@ -1,6 +1,5 @@ package fr.insee.genesis.controller.dto; -import com.fasterxml.jackson.annotation.JsonProperty; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -12,21 +11,20 @@ @Getter @NoArgsConstructor @AllArgsConstructor -public class SurveyUnitId { +public class InterrogationId { - @JsonProperty("idUE") - private String idUE; + private String interrogationId; @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - SurveyUnitId that = (SurveyUnitId) o; - return Objects.equals(idUE, that.idUE); + InterrogationId that = (InterrogationId) o; + return Objects.equals(interrogationId, that.interrogationId); } @Override public int hashCode() { - return Objects.hash(idUE); + return Objects.hash(interrogationId); } } diff --git a/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitQualityToolDto.java b/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitQualityToolDto.java new file mode 100644 index 00000000..03a2e0e8 --- /dev/null +++ b/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitQualityToolDto.java @@ -0,0 +1,14 @@ +package fr.insee.genesis.controller.dto; + +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +@Builder +@Data +public class SurveyUnitQualityToolDto { + private String surveyUnitId; + private List collectedVariables; + private List externalVariables; +} diff --git a/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitSimplified.java b/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitSimplified.java index 005f8f59..8ea44a8c 100644 --- a/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitSimplified.java +++ b/src/main/java/fr/insee/genesis/controller/dto/SurveyUnitSimplified.java @@ -11,9 +11,9 @@ @Data public class SurveyUnitSimplified { - private String idQuest; - private String idCampaign; - private String idUE; + private String questionnaireId; + private String campaignId; + private String interrogationId; private Mode mode; private List variablesUpdate; private List externalVariables; diff --git a/src/main/java/fr/insee/genesis/controller/dto/VariableDto.java b/src/main/java/fr/insee/genesis/controller/dto/VariableDto.java index 0709d3e9..6e8fe47d 100644 --- a/src/main/java/fr/insee/genesis/controller/dto/VariableDto.java +++ b/src/main/java/fr/insee/genesis/controller/dto/VariableDto.java @@ -10,7 +10,8 @@ @Data public class VariableDto { private String variableName; - private String idLoop; + private String scope; + private int iteration; @JsonProperty("variableStates") private List variableStateDtoList; diff --git a/src/main/java/fr/insee/genesis/controller/dto/VariableInputDto.java b/src/main/java/fr/insee/genesis/controller/dto/VariableInputDto.java index b2837ba2..16f090fd 100644 --- a/src/main/java/fr/insee/genesis/controller/dto/VariableInputDto.java +++ b/src/main/java/fr/insee/genesis/controller/dto/VariableInputDto.java @@ -8,7 +8,7 @@ @Data public class VariableInputDto { private String variableName; - private String idLoop; + private int iteration; @JsonProperty("newVariableState") private VariableStateInputDto variableStateInputDto; diff --git a/src/main/java/fr/insee/genesis/controller/dto/VariableQualityToolDto.java b/src/main/java/fr/insee/genesis/controller/dto/VariableQualityToolDto.java new file mode 100644 index 00000000..fab52ead --- /dev/null +++ b/src/main/java/fr/insee/genesis/controller/dto/VariableQualityToolDto.java @@ -0,0 +1,17 @@ +package fr.insee.genesis.controller.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +@Builder +@Data +public class VariableQualityToolDto { + private String variableName; + private Integer iteration; + + @JsonProperty("variableStates") + private List variableStateDtoList; +} diff --git a/src/main/java/fr/insee/genesis/controller/rest/responses/CampaignController.java b/src/main/java/fr/insee/genesis/controller/rest/responses/CampaignController.java index 1e3135c4..549e02f7 100644 --- a/src/main/java/fr/insee/genesis/controller/rest/responses/CampaignController.java +++ b/src/main/java/fr/insee/genesis/controller/rest/responses/CampaignController.java @@ -27,7 +27,7 @@ public CampaignController(SurveyUnitApiPort surveyUnitService) { @Operation(summary = "List campaigns in database") @GetMapping(path = "/") public ResponseEntity> getCampaigns() { - Set campaigns = surveyUnitService.findDistinctIdCampaigns(); + Set campaigns = surveyUnitService.findDistinctCampaignIds(); return ResponseEntity.ok(campaigns); } diff --git a/src/main/java/fr/insee/genesis/controller/rest/responses/IdUEController.java b/src/main/java/fr/insee/genesis/controller/rest/responses/InterrogationController.java similarity index 56% rename from src/main/java/fr/insee/genesis/controller/rest/responses/IdUEController.java rename to src/main/java/fr/insee/genesis/controller/rest/responses/InterrogationController.java index b47df612..427d966a 100644 --- a/src/main/java/fr/insee/genesis/controller/rest/responses/IdUEController.java +++ b/src/main/java/fr/insee/genesis/controller/rest/responses/InterrogationController.java @@ -1,6 +1,6 @@ package fr.insee.genesis.controller.rest.responses; -import fr.insee.genesis.controller.dto.SurveyUnitId; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort; import io.swagger.v3.oas.annotations.Operation; import lombok.extern.slf4j.Slf4j; @@ -12,23 +12,23 @@ import java.util.List; -@RequestMapping(path = "/idUEs" ) +@RequestMapping(path = "/interrogations" ) @Controller @Slf4j -public class IdUEController { +public class InterrogationController { private final SurveyUnitApiPort surveyUnitService; - public IdUEController(SurveyUnitApiPort surveyUnitService) { + public InterrogationController(SurveyUnitApiPort surveyUnitService) { this.surveyUnitService = surveyUnitService; } - @Operation(summary = "Retrieve all IdUEs for a given questionnaire") + @Operation(summary = "Retrieve all interrogations for a given questionnaire") @GetMapping(path = "/by-questionnaire") - public ResponseEntity> getAllIdUEsByQuestionnaire(@RequestParam("idQuestionnaire") String idQuestionnaire) { - List responses = surveyUnitService.findDistinctIdUEsByIdQuestionnaire(idQuestionnaire); + public ResponseEntity> getAllInterrogationIdsByQuestionnaire(@RequestParam("questionnaireId") String questionnaireId) { + List responses = surveyUnitService.findDistinctInterrogationIdsByQuestionnaireId(questionnaireId); return ResponseEntity.ok(responses); } diff --git a/src/main/java/fr/insee/genesis/controller/rest/responses/ModeController.java b/src/main/java/fr/insee/genesis/controller/rest/responses/ModeController.java index 320af308..3fb31e7e 100644 --- a/src/main/java/fr/insee/genesis/controller/rest/responses/ModeController.java +++ b/src/main/java/fr/insee/genesis/controller/rest/responses/ModeController.java @@ -28,15 +28,15 @@ public ModeController(SurveyUnitApiPort surveyUnitService) { @Operation(summary = "List sources/modes used for a given questionnaire") @GetMapping(path = "/by-questionnaire") - public ResponseEntity> getModesByQuestionnaire(@RequestParam("idQuestionnaire") String idQuestionnaire) { - List modes = surveyUnitService.findModesByIdQuestionnaire(idQuestionnaire); + public ResponseEntity> getModesByQuestionnaire(@RequestParam("questionnaireId") String questionnaireId) { + List modes = surveyUnitService.findModesByQuestionnaireId(questionnaireId); return ResponseEntity.ok(modes); } @Operation(summary = "List sources/modes used for a given campaign") @GetMapping(path = "/by-campaign") - public ResponseEntity> getModesByCampaign(@RequestParam("idCampaign") String idCampaign) { - List modes = surveyUnitService.findModesByIdCampaign(idCampaign); + public ResponseEntity> getModesByCampaign(@RequestParam("campaignId") String campaignId) { + List modes = surveyUnitService.findModesByCampaignId(campaignId); return ResponseEntity.ok(modes); } diff --git a/src/main/java/fr/insee/genesis/controller/rest/responses/QuestionnaireController.java b/src/main/java/fr/insee/genesis/controller/rest/responses/QuestionnaireController.java index ad8303c4..82064575 100644 --- a/src/main/java/fr/insee/genesis/controller/rest/responses/QuestionnaireController.java +++ b/src/main/java/fr/insee/genesis/controller/rest/responses/QuestionnaireController.java @@ -30,7 +30,7 @@ public QuestionnaireController(SurveyUnitApiPort surveyUnitService) { @Operation(summary = "List questionnaires in database") @GetMapping(path = "/") public ResponseEntity> getQuestionnaires() { - Set questionnaires = surveyUnitService.findDistinctIdQuestionnaires(); + Set questionnaires = surveyUnitService.findDistinctQuestionnaireIds(); return ResponseEntity.ok(questionnaires); } @@ -45,8 +45,8 @@ public ResponseEntity> getQuestionnairesWithCamp @Operation(summary = "List questionnaires used for a given campaign") @GetMapping(path = "/by-campaign") - public ResponseEntity> getQuestionnairesByCampaign(@RequestParam("idCampaign") String idCampaign) { - Set questionnaires = surveyUnitService.findIdQuestionnairesByIdCampaign(idCampaign); + public ResponseEntity> getQuestionnairesByCampaign(@RequestParam("campaignId") String campaignId) { + Set questionnaires = surveyUnitService.findQuestionnaireIdsByCampaignId(campaignId); return ResponseEntity.ok(questionnaires); } diff --git a/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java b/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java index 393d1350..b44b4685 100644 --- a/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java +++ b/src/main/java/fr/insee/genesis/controller/rest/responses/ResponseController.java @@ -8,7 +8,8 @@ import fr.insee.genesis.Constants; import fr.insee.genesis.controller.adapter.LunaticXmlAdapter; import fr.insee.genesis.controller.dto.SurveyUnitDto; -import fr.insee.genesis.controller.dto.SurveyUnitId; +import fr.insee.genesis.controller.dto.SurveyUnitQualityToolDto; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.controller.dto.SurveyUnitInputDto; import fr.insee.genesis.controller.dto.SurveyUnitSimplified; import fr.insee.genesis.controller.sources.xml.LunaticXmlCampaign; @@ -17,6 +18,7 @@ import fr.insee.genesis.controller.sources.xml.LunaticXmlSurveyUnit; import fr.insee.genesis.controller.utils.AuthUtils; import fr.insee.genesis.controller.utils.ControllerUtils; +import fr.insee.genesis.controller.utils.DataTransformer; import fr.insee.genesis.domain.model.surveyunit.Mode; import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel; import fr.insee.genesis.domain.model.surveyunit.VariableModel; @@ -55,12 +57,11 @@ import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.Stream; @RequestMapping(path = "/responses" ) @Controller -@Tag(name = "Response services for interrogations", description = "A **response** is considered the entire set of data associated with an interrogation (idUE x idQuestionnaire). \n\n These data may have different state (collected, edited, external, ...) ") +@Tag(name = "Response services", description = "A **response** is considered the entire set of data associated with an interrogation (survey unit x questionnaireId). \n\n These data may have different state (collected, edited, external, ...) ") @Slf4j public class ResponseController { @@ -257,67 +258,68 @@ public ResponseEntity saveResponsesFromAllCampaignFolders(){ //DELETE @Operation(summary = "Delete all responses associated with a questionnaire") @DeleteMapping(path = "/delete/by-questionnaire") - public ResponseEntity deleteAllResponsesByQuestionnaire(@RequestParam("idQuestionnaire") String idQuestionnaire) { - log.info("Try to delete all responses of questionnaire : {}", idQuestionnaire); - Long ndDocuments = surveyUnitService.deleteByIdQuestionnaire(idQuestionnaire); + public ResponseEntity deleteAllResponsesByQuestionnaire(@RequestParam("questionnaireId") String questionnaireId) { + log.info("Try to delete all responses of questionnaire : {}", questionnaireId); + Long ndDocuments = surveyUnitService.deleteByQuestionnaireId(questionnaireId); log.info("{} responses deleted", ndDocuments); return ResponseEntity.ok(String.format("%d responses deleted", ndDocuments)); } //GET - @Operation(summary = "Retrieve responses for an interrogation, using IdUE and IdQuestionnaire from Genesis Database") + @Operation(summary = "Retrieve responses for an interrogation, using interrogationId and questionnaireId from Genesis Database") @GetMapping(path = "/by-ue-and-questionnaire") - public ResponseEntity> findResponsesByUEAndQuestionnaire(@RequestParam("idUE") String idUE, - @RequestParam("idQuestionnaire") String idQuestionnaire) { - List responses = surveyUnitService.findByIdsUEAndQuestionnaire(idUE, idQuestionnaire); + public ResponseEntity> findResponsesByInterrogationAndQuestionnaire(@RequestParam("interrogationId") String interrogationId, + @RequestParam("questionnaireId") String questionnaireId) { + List responses = surveyUnitService.findByIdsInterrogationAndQuestionnaire(interrogationId, questionnaireId); return ResponseEntity.ok(responses); } - @Operation(summary = "Retrieve responses for an interrogation, using IdUE and IdQuestionnaire from Genesis Database with the latest value for each available state of every variable") + @Operation(summary = "Retrieve responses for an interrogation, using interrogationId and questionnaireId from Genesis Database with the latest value for each available state of every variable") @GetMapping(path = "/by-ue-and-questionnaire/latest-states") - public ResponseEntity findResponsesByUEAndQuestionnaireLatestStates( - @RequestParam("idUE") String idUE, - @RequestParam("idQuestionnaire") String idQuestionnaire) { - SurveyUnitDto response = surveyUnitService.findLatestValuesByStateByIdAndByIdQuestionnaire(idUE, idQuestionnaire); - return ResponseEntity.ok(response); + public ResponseEntity findResponsesByInterrogationAndQuestionnaireLatestStates( + @RequestParam("interrogationId") String interrogationId, + @RequestParam("questionnaireId") String questionnaireId) { + SurveyUnitDto response = surveyUnitService.findLatestValuesByStateByIdAndByQuestionnaireId(interrogationId, questionnaireId); + SurveyUnitQualityToolDto responseQualityTool = DataTransformer.transformSurveyUnitDto(response); + return ResponseEntity.ok(responseQualityTool); } @Operation(summary = "Retrieve all responses (for all interrogations) of one questionnaire") @GetMapping(path = "/by-questionnaire") - public ResponseEntity findAllResponsesByQuestionnaire(@RequestParam("idQuestionnaire") String idQuestionnaire) { - log.info("Try to find all responses of questionnaire : {}", idQuestionnaire); + public ResponseEntity findAllResponsesByQuestionnaire(@RequestParam("questionnaireId") String questionnaireId) { + log.info("Try to find all responses of questionnaire : {}", questionnaireId); //Get all IdUEs/modes of the survey - List idUEsResponses = surveyUnitService.findIdUEsAndModesByIdQuestionnaire(idQuestionnaire); - log.info("Responses found : {}", idUEsResponses.size()); + List interrogationIdsResponses = surveyUnitService.findInterrogationIdsAndModesByQuestionnaireId(questionnaireId); + log.info("Responses found : {}", interrogationIdsResponses.size()); - String filepathString = String.format("OUT/%s/OUT_ALL_%s.json", idQuestionnaire, LocalDateTime.now().toString().replace(":", "")); + String filepathString = String.format("OUT/%s/OUT_ALL_%s.json", questionnaireId, LocalDateTime.now().toString().replace(":", "")); Path filepath = Path.of(fileUtils.getDataFolderSource(), filepathString); - try (Stream responsesStream = surveyUnitService.findByIdQuestionnaire(idQuestionnaire)) { + try (Stream responsesStream = surveyUnitService.findByQuestionnaireId(questionnaireId)) { fileUtils.writeSuUpdatesInFile(filepath, responsesStream); } catch (IOException e) { log.error("Error while writing file", e); return ResponseEntity.internalServerError().body(filepath); } - log.info("End of extraction, responses extracted: {}", idUEsResponses.size()); + log.info("End of extraction, responses extracted: {}", interrogationIdsResponses.size()); return ResponseEntity.ok(filepath); } - @Operation(summary = "Retrieve responses for an interrogation, using IdUE and IdQuestionnaire from Genesis Database. It returns only the latest value of each variable regardless of the state.") + @Operation(summary = "Retrieve responses for an interrogation, using interrogationId and questionnaireId from Genesis Database. It returns only the latest value of each variable regardless of the state.") @GetMapping(path = "/by-ue-and-questionnaire/latest") - public ResponseEntity> getLatestByUE(@RequestParam("idUE") String idUE, - @RequestParam("idQuestionnaire") String idQuestionnaire) { - List responses = surveyUnitService.findLatestByIdAndByIdQuestionnaire(idUE, idQuestionnaire); + public ResponseEntity> getLatestByInterrogation(@RequestParam("interrogationId") String interrogationId, + @RequestParam("questionnaireId") String questionnaireId) { + List responses = surveyUnitService.findLatestByIdAndByQuestionnaireId(interrogationId, questionnaireId); return ResponseEntity.ok(responses); } - @Operation(summary = "Retrieve responses for an interrogation, using IdUE and IdQuestionnaire from Genesis Database. For a given mode, it returns only the latest value of each variable regardless of the state. The result is one object by mode in the output") + @Operation(summary = "Retrieve responses for an interrogation, using interrogationId and questionnaireId from Genesis Database. For a given mode, it returns only the latest value of each variable regardless of the state. The result is one object by mode in the output") @GetMapping(path = "/simplified/by-ue-questionnaire-and-mode/latest") - public ResponseEntity getLatestByUEOneObject(@RequestParam("idUE") String idUE, - @RequestParam("idQuestionnaire") String idQuestionnaire, + public ResponseEntity getLatestByInterrogationOneObject(@RequestParam("interrogationId") String interrogationId, + @RequestParam("questionnaireId") String questionnaireId, @RequestParam("mode") Mode mode) { - List responses = surveyUnitService.findLatestByIdAndByIdQuestionnaire(idUE, idQuestionnaire); + List responses = surveyUnitService.findLatestByIdAndByQuestionnaireId(interrogationId, questionnaireId); List outputVariables = new ArrayList<>(); List outputExternalVariables = new ArrayList<>(); responses.stream().filter(rep -> rep.getMode().equals(mode)).forEach(response -> { @@ -325,9 +327,9 @@ public ResponseEntity getLatestByUEOneObject(@RequestParam outputExternalVariables.addAll(response.getExternalVariables()); }); return ResponseEntity.ok(SurveyUnitSimplified.builder() - .idQuest(responses.getFirst().getIdQuest()) - .idCampaign(responses.getFirst().getIdCampaign()) - .idUE(responses.getFirst().getIdUE()) + .questionnaireId(responses.getFirst().getQuestionnaireId()) + .campaignId(responses.getFirst().getCampaignId()) + .interrogationId(responses.getFirst().getInterrogationId()) .variablesUpdate(outputVariables) .externalVariables(outputExternalVariables) .build()); @@ -337,13 +339,13 @@ public ResponseEntity getLatestByUEOneObject(@RequestParam @Operation(summary = "Retrieve all responses for a questionnaire and a list of UE", description = "Return the latest state for each variable for the given ids and a given questionnaire.
" + "For a given id, the endpoint returns a document by collection mode (if there is more than one).") - @PostMapping(path = "/simplified/by-list-ue-and-questionnaire/latest") - public ResponseEntity> getLatestForUEList(@RequestParam("idQuestionnaire") String idQuestionnaire, - @RequestBody List idUEs) { + @PostMapping(path = "/simplified/by-list-interrogation-and-questionnaire/latest") + public ResponseEntity> getLatestForInterrogationList(@RequestParam("questionnaireId") String questionnaireId, + @RequestBody List interrogationIds) { List results = new ArrayList<>(); - List modes = surveyUnitService.findModesByIdQuestionnaire(idQuestionnaire); - idUEs.forEach(idUE -> { - List responses = surveyUnitService.findLatestByIdAndByIdQuestionnaire(idUE.getIdUE(), idQuestionnaire); + List modes = surveyUnitService.findModesByQuestionnaireId(questionnaireId); + interrogationIds.forEach(interrogationId -> { + List responses = surveyUnitService.findLatestByIdAndByQuestionnaireId(interrogationId.getInterrogationId(), questionnaireId); modes.forEach(mode -> { List outputVariables = new ArrayList<>(); List outputExternalVariables = new ArrayList<>(); @@ -353,9 +355,9 @@ public ResponseEntity> getLatestForUEList(@RequestPar }); if (!outputVariables.isEmpty() || !outputExternalVariables.isEmpty()) { results.add(SurveyUnitSimplified.builder() - .idQuest(responses.getFirst().getIdQuest()) - .idCampaign(responses.getFirst().getIdCampaign()) - .idUE(responses.getFirst().getIdUE()) + .questionnaireId(responses.getFirst().getQuestionnaireId()) + .campaignId(responses.getFirst().getCampaignId()) + .interrogationId(responses.getFirst().getInterrogationId()) .mode(mode) .variablesUpdate(outputVariables) .externalVariables(outputExternalVariables) @@ -613,6 +615,7 @@ private ResponseEntity processRawXmlFile(Path filepath, Mode modeSpecifi lunaticXmlRawDataApiPort.saveData(campaign, modeSpecified); log.debug(SUCCESS_MESSAGE); + log.info("File {} processed" , filepath.getFileName()); return ResponseEntity.ok().build(); } diff --git a/src/main/java/fr/insee/genesis/controller/sources/json/LunaticJsonDataFile.java b/src/main/java/fr/insee/genesis/controller/sources/json/LunaticJsonDataFile.java index 9ffc07c8..7ca26137 100644 --- a/src/main/java/fr/insee/genesis/controller/sources/json/LunaticJsonDataFile.java +++ b/src/main/java/fr/insee/genesis/controller/sources/json/LunaticJsonDataFile.java @@ -9,7 +9,7 @@ public class LunaticJsonDataFile { @JsonProperty("Id") - String idQuest; + String questionnaireId; @JsonProperty("Label") String labelQuest; diff --git a/src/main/java/fr/insee/genesis/controller/utils/DataTransformer.java b/src/main/java/fr/insee/genesis/controller/utils/DataTransformer.java new file mode 100644 index 00000000..f837f951 --- /dev/null +++ b/src/main/java/fr/insee/genesis/controller/utils/DataTransformer.java @@ -0,0 +1,48 @@ +package fr.insee.genesis.controller.utils; + +import fr.insee.genesis.controller.dto.SurveyUnitDto; +import fr.insee.genesis.controller.dto.SurveyUnitQualityToolDto; +import fr.insee.genesis.controller.dto.VariableQualityToolDto; +import fr.insee.genesis.controller.dto.VariableDto; +import lombok.experimental.UtilityClass; + +import java.util.ArrayList; +import java.util.List; + +@UtilityClass +public class DataTransformer { + + public static SurveyUnitQualityToolDto transformSurveyUnitDto(SurveyUnitDto dto){ + + List transformedCollectedVariables = new ArrayList<>(); + if (dto.getCollectedVariables() != null) { + transformedCollectedVariables = dto.getCollectedVariables() + .stream() + .map(DataTransformer::transformVariable) + .toList(); + } + + List transformedExternalVariables = new ArrayList<>(); + if (dto.getExternalVariables() != null) { + transformedExternalVariables = dto.getExternalVariables() + .stream() + .map(DataTransformer::transformVariable) + .toList(); + } + + return SurveyUnitQualityToolDto.builder() + .surveyUnitId(dto.getSurveyUnitId()) + .collectedVariables(transformedCollectedVariables) + .externalVariables(transformedExternalVariables) + .build(); + } + + private static VariableQualityToolDto transformVariable(VariableDto variable) { + return VariableQualityToolDto.builder() + .variableName(variable.getVariableName()) + .iteration(variable.getIteration()) + .variableStateDtoList(variable.getVariableStateDtoList()) + .build(); + } + +} diff --git a/src/main/java/fr/insee/genesis/domain/model/surveyunit/IdLoopTuple.java b/src/main/java/fr/insee/genesis/domain/model/surveyunit/IdLoopTuple.java index 6d1ac551..c004dc98 100644 --- a/src/main/java/fr/insee/genesis/domain/model/surveyunit/IdLoopTuple.java +++ b/src/main/java/fr/insee/genesis/domain/model/surveyunit/IdLoopTuple.java @@ -1,4 +1,4 @@ package fr.insee.genesis.domain.model.surveyunit; -public record IdLoopTuple(String idVar, String idLoop) { +public record IdLoopTuple(String varId, String loopId) { } diff --git a/src/main/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModel.java b/src/main/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModel.java index 13d1b389..7f019fd1 100644 --- a/src/main/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModel.java +++ b/src/main/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModel.java @@ -16,9 +16,9 @@ @AllArgsConstructor public class SurveyUnitModel { - private String idQuest; - private String idCampaign; - private String idUE; + private String questionnaireId; + private String campaignId; + private String interrogationId; private DataState state; private Mode mode; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'hh:mm") @@ -31,8 +31,8 @@ public class SurveyUnitModel { private String modifiedBy; - public SurveyUnitModel(String idUE, Mode mode) { - this.idUE = idUE; + public SurveyUnitModel(String interrogationId, Mode mode) { + this.interrogationId = interrogationId; this.mode = mode; } @@ -45,11 +45,11 @@ public boolean equals(Object o) { return false; } SurveyUnitModel that = (SurveyUnitModel) o; - return Objects.equals(idUE, that.idUE) && Objects.equals(mode, that.mode); + return Objects.equals(interrogationId, that.interrogationId) && Objects.equals(mode, that.mode); } @Override public int hashCode() { - return Objects.hash(idUE) + Objects.hash(mode); + return Objects.hash(interrogationId) + Objects.hash(mode); } } diff --git a/src/main/java/fr/insee/genesis/domain/model/surveyunit/VariableModel.java b/src/main/java/fr/insee/genesis/domain/model/surveyunit/VariableModel.java index c78e7e75..8a6f2bcf 100644 --- a/src/main/java/fr/insee/genesis/domain/model/surveyunit/VariableModel.java +++ b/src/main/java/fr/insee/genesis/domain/model/surveyunit/VariableModel.java @@ -2,12 +2,11 @@ import lombok.Builder; -import java.util.List; - @Builder public record VariableModel( - String idVar, - List values, - String idLoop, - String idParent + String varId, + String value, + String scope, + Integer iteration, + String parentId ) {} diff --git a/src/main/java/fr/insee/genesis/domain/ports/api/SurveyUnitApiPort.java b/src/main/java/fr/insee/genesis/domain/ports/api/SurveyUnitApiPort.java index f7a4d79e..63a8dab0 100644 --- a/src/main/java/fr/insee/genesis/domain/ports/api/SurveyUnitApiPort.java +++ b/src/main/java/fr/insee/genesis/domain/ports/api/SurveyUnitApiPort.java @@ -7,7 +7,7 @@ import fr.insee.genesis.domain.model.surveyunit.Mode; import fr.insee.genesis.controller.dto.QuestionnaireWithCampaign; import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel; -import fr.insee.genesis.controller.dto.SurveyUnitId; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.exceptions.GenesisException; import java.util.List; @@ -19,34 +19,34 @@ public interface SurveyUnitApiPort { void saveSurveyUnits(List suList); - List findByIdsUEAndQuestionnaire(String idUE, String idQuest); + List findByIdsInterrogationAndQuestionnaire(String interrogationId, String questionnaireId); - List findByIdUE(String idUE); + List findByInterrogationId(String interrogationId); - Stream findByIdQuestionnaire(String idQuestionnaire); + Stream findByQuestionnaireId(String questionnaireId); - List findLatestByIdAndByIdQuestionnaire(String idUE, String idQuest); - SurveyUnitDto findLatestValuesByStateByIdAndByIdQuestionnaire(String idUE, String idQuest); + List findLatestByIdAndByQuestionnaireId(String interrogationId, String questionnaireId); + SurveyUnitDto findLatestValuesByStateByIdAndByQuestionnaireId(String interrogationId, String questionnaireId); - List findIdUEsAndModesByIdQuestionnaire(String idQuestionnaire); + List findInterrogationIdsAndModesByQuestionnaireId(String questionnaireId); - List findDistinctIdUEsByIdQuestionnaire(String idQuestionnaire); + List findDistinctInterrogationIdsByQuestionnaireId(String questionnaireId); - List findModesByIdQuestionnaire(String idQuestionnaire); + List findModesByQuestionnaireId(String questionnaireId); - List findModesByIdCampaign(String idCampaign); + List findModesByCampaignId(String campaignId); - Long deleteByIdQuestionnaire(String idQuestionnaire); + Long deleteByQuestionnaireId(String questionnaireId); long countResponses(); - Set findIdQuestionnairesByIdCampaign(String idCampaign); + Set findQuestionnaireIdsByCampaignId(String campaignId); - Set findDistinctIdCampaigns(); + Set findDistinctCampaignIds(); - long countResponsesByIdCampaign(String idCampaign); + long countResponsesByCampaignId(String campaignId); - Set findDistinctIdQuestionnaires(); + Set findDistinctQuestionnaireIds(); List findCampaignsWithQuestionnaires(); diff --git a/src/main/java/fr/insee/genesis/domain/ports/spi/SurveyUnitPersistencePort.java b/src/main/java/fr/insee/genesis/domain/ports/spi/SurveyUnitPersistencePort.java index af4aa319..093a1867 100644 --- a/src/main/java/fr/insee/genesis/domain/ports/spi/SurveyUnitPersistencePort.java +++ b/src/main/java/fr/insee/genesis/domain/ports/spi/SurveyUnitPersistencePort.java @@ -10,29 +10,29 @@ public interface SurveyUnitPersistencePort { void saveAll(List suList); - List findByIds(String idUE, String idQuest); + List findByIds(String interrogationId, String questionnaireId); - List findByIdUE(String idUE); + List findByInterrogationId(String interrogationId); - List findByIdUEsAndIdQuestionnaire(List idUEs, String idQuestionnaire); + List findByInterrogationIdsAndQuestionnaireId(List interrogationIds, String questionnaireId); - Stream findByIdQuestionnaire(String idQuestionnaire); + Stream findByQuestionnaireId(String questionnaireId); - List findIdUEsByIdQuestionnaire(String idQuestionnaire); + List findInterrogationIdsByQuestionnaireId(String questionnaireId); - List findIdUEsByIdCampaign(String idCampaign); + List findInterrogationIdsByCampaignId(String campaignId); - Long deleteByIdQuestionnaire(String idQuestionnaire); + Long deleteByQuestionnaireId(String questionnaireId); long count(); - Set findIdQuestionnairesByIdCampaign(String idCampaign); + Set findQuestionnaireIdsByCampaignId(String campaignId); - Set findDistinctIdCampaigns(); + Set findDistinctCampaignIds(); - long countByIdCampaign(String idCampaign); + long countByCampaignId(String campaignId); - Set findDistinctIdQuestionnaires(); + Set findDistinctQuestionnaireIds(); - Set findIdCampaignsByIdQuestionnaire(String idQuestionnaire); + Set findCampaignIdsByQuestionnaireId(String questionnaireId); } diff --git a/src/main/java/fr/insee/genesis/domain/service/surveyunit/SurveyUnitService.java b/src/main/java/fr/insee/genesis/domain/service/surveyunit/SurveyUnitService.java index b4d8125f..c008b77f 100644 --- a/src/main/java/fr/insee/genesis/domain/service/surveyunit/SurveyUnitService.java +++ b/src/main/java/fr/insee/genesis/domain/service/surveyunit/SurveyUnitService.java @@ -2,9 +2,9 @@ import fr.insee.bpm.metadata.model.VariablesMap; import fr.insee.genesis.controller.dto.CampaignWithQuestionnaire; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.controller.dto.QuestionnaireWithCampaign; import fr.insee.genesis.controller.dto.SurveyUnitDto; -import fr.insee.genesis.controller.dto.SurveyUnitId; import fr.insee.genesis.controller.dto.SurveyUnitInputDto; import fr.insee.genesis.controller.dto.VariableDto; import fr.insee.genesis.controller.dto.VariableInputDto; @@ -47,32 +47,32 @@ public void saveSurveyUnits(List surveyUnitModels) { } @Override - public List findByIdsUEAndQuestionnaire(String idUE, String idQuest) { - return surveyUnitPersistencePort.findByIds(idUE, idQuest); + public List findByIdsInterrogationAndQuestionnaire(String interrogationId, String questionnaireId) { + return surveyUnitPersistencePort.findByIds(interrogationId, questionnaireId); } @Override - public List findByIdUE(String idUE) { - return surveyUnitPersistencePort.findByIdUE(idUE); + public List findByInterrogationId(String interrogationId) { + return surveyUnitPersistencePort.findByInterrogationId(interrogationId); } @Override - public Stream findByIdQuestionnaire(String idQuestionnaire) { - return surveyUnitPersistencePort.findByIdQuestionnaire(idQuestionnaire); + public Stream findByQuestionnaireId(String questionnaireId) { + return surveyUnitPersistencePort.findByQuestionnaireId(questionnaireId); } /** * In this method we want to get the latest update for each variable of a survey unit * But we need to separate the updates by mode * So we will calculate the latest state for a given collection mode - * @param idUE : Survey unit id - * @param idQuest : Questionnaire id + * @param interrogationId : Survey unit id + * @param questionnaireId : Questionnaire id * @return the latest update for each variable of a survey unit */ @Override - public List findLatestByIdAndByIdQuestionnaire(String idUE, String idQuest) { + public List findLatestByIdAndByQuestionnaireId(String interrogationId, String questionnaireId) { List latestUpdatesbyVariables = new ArrayList<>(); - List surveyUnitModels = surveyUnitPersistencePort.findByIds(idUE, idQuest); + List surveyUnitModels = surveyUnitPersistencePort.findByIds(interrogationId, questionnaireId); List modes = getDistinctsModes(surveyUnitModels); modes.forEach(mode ->{ List suByMode = surveyUnitModels.stream() @@ -92,26 +92,26 @@ public List findLatestByIdAndByIdQuestionnaire(String idUE, Str if(latestUpdate.getExternalVariables() == null){ latestUpdate.setExternalVariables(new ArrayList<>()); } - latestUpdate.getCollectedVariables().forEach(colVar -> addedVariables.add(new IdLoopTuple(colVar.idVar(), - colVar.idLoop()))); - latestUpdate.getExternalVariables().forEach(extVar -> addedVariables.add(new IdLoopTuple(extVar.idVar(), ""))); + latestUpdate.getCollectedVariables().forEach(colVar -> addedVariables.add(new IdLoopTuple(colVar.varId(), + colVar.scope()))); + latestUpdate.getExternalVariables().forEach(extVar -> addedVariables.add(new IdLoopTuple(extVar.varId(), ""))); suByMode.forEach(surveyUnitModel -> { List collectedVariablesToKeep = new ArrayList<>(); List externalVariablesToKeep = new ArrayList<>(); // We iterate over the variables of the update and add them to the list if they are not already added surveyUnitModel.getCollectedVariables().stream() - .filter(colVar -> !addedVariables.contains(new IdLoopTuple(colVar.idVar(), colVar.idLoop()))) + .filter(colVar -> !addedVariables.contains(new IdLoopTuple(colVar.varId(), colVar.scope()))) .forEach(colVar -> { collectedVariablesToKeep.add(colVar); - addedVariables.add(new IdLoopTuple(colVar.idVar(), colVar.idLoop())); + addedVariables.add(new IdLoopTuple(colVar.varId(), colVar.scope())); }); if (surveyUnitModel.getExternalVariables() != null){ surveyUnitModel.getExternalVariables().stream() - .filter(extVar -> !addedVariables.contains(new IdLoopTuple(extVar.idVar(), ""))) + .filter(extVar -> !addedVariables.contains(new IdLoopTuple(extVar.varId(), ""))) .forEach(extVar -> { externalVariablesToKeep.add(extVar); - addedVariables.add(new IdLoopTuple(extVar.idVar(), "")); + addedVariables.add(new IdLoopTuple(extVar.varId(), "")); }); } @@ -127,9 +127,9 @@ public List findLatestByIdAndByIdQuestionnaire(String idUE, Str } @Override - public SurveyUnitDto findLatestValuesByStateByIdAndByIdQuestionnaire(String idUE, String idQuest) { + public SurveyUnitDto findLatestValuesByStateByIdAndByQuestionnaireId(String interrogationId, String questionnaireId) { SurveyUnitDto surveyUnitDto = SurveyUnitDto.builder() - .surveyUnitId(idUE) + .surveyUnitId(interrogationId) .collectedVariables(new ArrayList<>()) .externalVariables(new ArrayList<>()) .build(); @@ -137,7 +137,7 @@ public SurveyUnitDto findLatestValuesByStateByIdAndByIdQuestionnaire(String idUE //Extract variables Map collectedVariableMap = new HashMap<>(); Map externalVariableMap = new HashMap<>(); - List surveyUnitModels = surveyUnitPersistencePort.findByIds(idUE, idQuest); + List surveyUnitModels = surveyUnitPersistencePort.findByIds(interrogationId, questionnaireId); List modes = getDistinctsModes(surveyUnitModels); modes.forEach(mode -> { List suByMode = surveyUnitModels.stream() @@ -152,38 +152,38 @@ public SurveyUnitDto findLatestValuesByStateByIdAndByIdQuestionnaire(String idUE } @Override - public List findDistinctIdUEsByIdQuestionnaire(String idQuestionnaire) { - List surveyUnitModels = surveyUnitPersistencePort.findIdUEsByIdQuestionnaire(idQuestionnaire); - List suIds = new ArrayList<>(); - surveyUnitModels.forEach(surveyUnitDto -> suIds.add(new SurveyUnitId(surveyUnitDto.getIdUE()))); + public List findDistinctInterrogationIdsByQuestionnaireId(String questionnaireId) { + List surveyUnitModels = surveyUnitPersistencePort.findInterrogationIdsByQuestionnaireId(questionnaireId); + List suIds = new ArrayList<>(); + surveyUnitModels.forEach(surveyUnitDto -> suIds.add(new InterrogationId(surveyUnitDto.getInterrogationId()))); return suIds.stream().distinct().toList(); } @Override - public List findIdUEsAndModesByIdQuestionnaire(String idQuestionnaire) { - List surveyUnitModels = surveyUnitPersistencePort.findIdUEsByIdQuestionnaire(idQuestionnaire); + public List findInterrogationIdsAndModesByQuestionnaireId(String questionnaireId) { + List surveyUnitModels = surveyUnitPersistencePort.findInterrogationIdsByQuestionnaireId(questionnaireId); return surveyUnitModels.stream().distinct().toList(); } @Override - public List findModesByIdQuestionnaire(String idQuestionnaire) { - List surveyUnitModels = surveyUnitPersistencePort.findIdUEsByIdQuestionnaire(idQuestionnaire); + public List findModesByQuestionnaireId(String questionnaireId) { + List surveyUnitModels = surveyUnitPersistencePort.findInterrogationIdsByQuestionnaireId(questionnaireId); List sources = new ArrayList<>(); surveyUnitModels.forEach(surveyUnitDto -> sources.add(surveyUnitDto.getMode())); return sources.stream().distinct().toList(); } @Override - public List findModesByIdCampaign(String idCampaign) { - List surveyUnitModels = surveyUnitPersistencePort.findIdUEsByIdCampaign(idCampaign); + public List findModesByCampaignId(String campaignId) { + List surveyUnitModels = surveyUnitPersistencePort.findInterrogationIdsByCampaignId(campaignId); List sources = new ArrayList<>(); surveyUnitModels.forEach(surveyUnitDto -> sources.add(surveyUnitDto.getMode())); return sources.stream().distinct().toList(); } @Override - public Long deleteByIdQuestionnaire(String idQuestionnaire) { - return surveyUnitPersistencePort.deleteByIdQuestionnaire(idQuestionnaire); + public Long deleteByQuestionnaireId(String questionnaireId) { + return surveyUnitPersistencePort.deleteByQuestionnaireId(questionnaireId); } @Override @@ -192,42 +192,42 @@ public long countResponses() { } @Override - public Set findIdQuestionnairesByIdCampaign(String idCampaign) { - return surveyUnitPersistencePort.findIdQuestionnairesByIdCampaign(idCampaign); + public Set findQuestionnaireIdsByCampaignId(String campaignId) { + return surveyUnitPersistencePort.findQuestionnaireIdsByCampaignId(campaignId); } @Override - public Set findDistinctIdCampaigns() { - return surveyUnitPersistencePort.findDistinctIdCampaigns(); + public Set findDistinctCampaignIds() { + return surveyUnitPersistencePort.findDistinctCampaignIds(); } @Override public List findCampaignsWithQuestionnaires() { List campaignsWithQuestionnaireList = new ArrayList<>(); - for(String idCampaign : findDistinctIdCampaigns()){ - Set questionnaires = findIdQuestionnairesByIdCampaign(idCampaign); - campaignsWithQuestionnaireList.add(new CampaignWithQuestionnaire(idCampaign,questionnaires)); + for(String campaignId : findDistinctCampaignIds()){ + Set questionnaires = findQuestionnaireIdsByCampaignId(campaignId); + campaignsWithQuestionnaireList.add(new CampaignWithQuestionnaire(campaignId,questionnaires)); } return campaignsWithQuestionnaireList; } @Override - public long countResponsesByIdCampaign(String idCampaign){ - return surveyUnitPersistencePort.countByIdCampaign(idCampaign); + public long countResponsesByCampaignId(String campaignId){ + return surveyUnitPersistencePort.countByCampaignId(campaignId); } @Override - public Set findDistinctIdQuestionnaires() { - return surveyUnitPersistencePort.findDistinctIdQuestionnaires(); + public Set findDistinctQuestionnaireIds() { + return surveyUnitPersistencePort.findDistinctQuestionnaireIds(); } @Override public List findQuestionnairesWithCampaigns() { List questionnaireWithCampaignList = new ArrayList<>(); - for(String idQuestionnaire : findDistinctIdQuestionnaires()){ - Set campaigns = surveyUnitPersistencePort.findIdCampaignsByIdQuestionnaire(idQuestionnaire); + for(String questionnaireId : findDistinctQuestionnaireIds()){ + Set campaigns = surveyUnitPersistencePort.findCampaignIdsByQuestionnaireId(questionnaireId); questionnaireWithCampaignList.add(new QuestionnaireWithCampaign( - idQuestionnaire, + questionnaireId, campaigns) ); @@ -255,10 +255,10 @@ public List parseEditedVariables( for (DataState state : statesReceived){ SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder() - .idCampaign(surveyUnitInputDto.getCampaignId()) + .campaignId(surveyUnitInputDto.getCampaignId()) .mode(surveyUnitInputDto.getMode()) - .idQuest(surveyUnitInputDto.getIdQuestionnaire()) - .idUE(surveyUnitInputDto.getSurveyUnitId()) + .questionnaireId(surveyUnitInputDto.getIdQuestionnaire()) + .interrogationId(surveyUnitInputDto.getSurveyUnitId()) .state(state) .recordDate(LocalDateTime.now()) .collectedVariables(new ArrayList<>()) @@ -273,14 +273,13 @@ public List parseEditedVariables( //Collected variables management for(VariableInputDto editedVariableDto : editedCollectedVariables){ VariableModel collectedVariable = VariableModel.builder() - .idVar(editedVariableDto.getVariableName()) - .values(new ArrayList<>()) - .idParent(LoopIdentifier.getRelatedVariableName(editedVariableDto.getVariableName(), variablesMap)) - .idLoop(editedVariableDto.getIdLoop()) + .varId(editedVariableDto.getVariableName()) + .value(editedVariableDto.getVariableStateInputDto().getValue()) + .parentId(LoopIdentifier.getRelatedVariableName(editedVariableDto.getVariableName(), variablesMap)) + .scope(variablesMap.getVariable(editedVariableDto.getVariableName()).getGroupName()) + .iteration(editedVariableDto.getIteration()) .build(); - collectedVariable.values().add(editedVariableDto.getVariableStateInputDto().getValue()); - surveyUnitModel.getCollectedVariables().add(collectedVariable); } @@ -311,25 +310,26 @@ private void extractVariables(SurveyUnitModel surveyUnitModel, surveyUnitModel.setCollectedVariables(new ArrayList<>()); } for (VariableModel collectedVariable : surveyUnitModel.getCollectedVariables()) { - IdLoopTuple idLoopTuple = new IdLoopTuple(collectedVariable.idVar(), collectedVariable.idLoop()); - VariableDto variableDto = collectedVariableMap.get(idLoopTuple); + IdLoopTuple loopIdTuple = new IdLoopTuple(collectedVariable.varId(), collectedVariable.scope()); + VariableDto variableDto = collectedVariableMap.get(loopIdTuple); //Create variable into map if not exists if (variableDto == null) { variableDto = VariableDto.builder() - .variableName(collectedVariable.idVar()) - .idLoop(collectedVariable.idLoop()) + .variableName(collectedVariable.varId()) + .scope(collectedVariable.scope()) + .iteration(collectedVariable.iteration()) .variableStateDtoList(new ArrayList<>()) .build(); - collectedVariableMap.put(idLoopTuple, variableDto); + collectedVariableMap.put(loopIdTuple, variableDto); } //Extract variable state - if (!collectedVariable.values().isEmpty() && isMostRecentForSameState(surveyUnitModel, variableDto)) { + if (!collectedVariable.value().isEmpty() && isMostRecentForSameState(surveyUnitModel, variableDto)) { variableDto.getVariableStateDtoList().add( VariableStateDto.builder() .state(surveyUnitModel.getState()) .active(isLastVariableState(surveyUnitModel, variableDto)) - .value(collectedVariable.values().getFirst()) + .value(collectedVariable.value()) .date(surveyUnitModel.getRecordDate()) .build() ); @@ -340,25 +340,25 @@ private void extractVariables(SurveyUnitModel surveyUnitModel, surveyUnitModel.setExternalVariables(new ArrayList<>()); } for(VariableModel externalVariable : surveyUnitModel.getExternalVariables()){ - IdLoopTuple idLoopTuple = new IdLoopTuple(externalVariable.idVar(), externalVariable.idLoop()); - VariableDto variableDto = externalVariableMap.get(idLoopTuple); + IdLoopTuple loopIdTuple = new IdLoopTuple(externalVariable.varId(), externalVariable.scope()); + VariableDto variableDto = externalVariableMap.get(loopIdTuple); //Create variable into map if not exists if(variableDto == null){ variableDto = VariableDto.builder() - .variableName(externalVariable.idVar()) - .idLoop(externalVariable.idLoop()) + .variableName(externalVariable.varId()) + .scope(externalVariable.scope()) .variableStateDtoList(new ArrayList<>()) .build(); - externalVariableMap.put(idLoopTuple, variableDto); + externalVariableMap.put(loopIdTuple, variableDto); } //Extract variable state - if(!externalVariable.values().isEmpty() && isMostRecentForSameState(surveyUnitModel, variableDto)){ + if(!externalVariable.value().isEmpty() && isMostRecentForSameState(surveyUnitModel, variableDto)){ variableDto.getVariableStateDtoList().add( VariableStateDto.builder() .state(surveyUnitModel.getState()) .active(isLastVariableState(surveyUnitModel, variableDto)) - .value(externalVariable.values().getFirst()) + .value(externalVariable.value()) .date(surveyUnitModel.getRecordDate()) .build() ); diff --git a/src/main/java/fr/insee/genesis/domain/service/volumetry/VolumetryLogService.java b/src/main/java/fr/insee/genesis/domain/service/volumetry/VolumetryLogService.java index a4600ca0..e324e61b 100644 --- a/src/main/java/fr/insee/genesis/domain/service/volumetry/VolumetryLogService.java +++ b/src/main/java/fr/insee/genesis/domain/service/volumetry/VolumetryLogService.java @@ -39,9 +39,9 @@ public void writeVolumetries(SurveyUnitApiPort surveyUnitApiPort) throws IOExcep Files.writeString(logFilePath, "campaign;volumetry\n"); //Write lines - Set campaigns = surveyUnitApiPort.findDistinctIdCampaigns(); + Set campaigns = surveyUnitApiPort.findDistinctCampaignIds(); for (String campaignId : campaigns) { - long countResult = surveyUnitApiPort.countResponsesByIdCampaign(campaignId); + long countResult = surveyUnitApiPort.countResponsesByCampaignId(campaignId); String line = campaignId + ";" + countResult + "\n"; diff --git a/src/main/java/fr/insee/genesis/domain/utils/DataVerifier.java b/src/main/java/fr/insee/genesis/domain/utils/DataVerifier.java index 72953946..53ee0262 100644 --- a/src/main/java/fr/insee/genesis/domain/utils/DataVerifier.java +++ b/src/main/java/fr/insee/genesis/domain/utils/DataVerifier.java @@ -47,7 +47,7 @@ public static void verifySurveyUnits(List suDtosList, Variables List suDtosListForced = new ArrayList<>(); // Created FORCED SU DTOs for(String idUE : getIdUEs(suDtosList)) { // For each id of the list - List srcSuDtosOfIdUE = suDtosList.stream().filter(element -> element.getIdUE().equals(idUE)).toList(); + List srcSuDtosOfIdUE = suDtosList.stream().filter(element -> element.getInterrogationId().equals(idUE)).toList(); List correctedCollectedVariables = new ArrayList<>(); List correctedExternalVariables = new ArrayList<>(); @@ -70,11 +70,11 @@ private static SurveyUnitModel createForcedDto( List correctedCollectedVariables, List correctedExternalVariables ) { - SurveyUnitModel sampleSuDto = suDtosList.stream().filter(element -> element.getIdUE().equals(idUE)).toList().getFirst(); + SurveyUnitModel sampleSuDto = suDtosList.stream().filter(element -> element.getInterrogationId().equals(idUE)).toList().getFirst(); SurveyUnitModel newForcedSuDto = SurveyUnitModel.builder() - .idQuest(sampleSuDto.getIdQuest()) - .idCampaign(sampleSuDto.getIdCampaign()) - .idUE(idUE) + .questionnaireId(sampleSuDto.getQuestionnaireId()) + .campaignId(sampleSuDto.getCampaignId()) + .interrogationId(idUE) .state(DataState.FORCED) .mode(sampleSuDto.getMode()) .recordDate(LocalDateTime.now()) @@ -86,10 +86,11 @@ private static SurveyUnitModel createForcedDto( for(VariableModel correctedCollectedVariable : correctedCollectedVariables){ newForcedSuDto.getCollectedVariables().add( VariableModel.builder() - .idVar(correctedCollectedVariable.idVar()) - .values(correctedCollectedVariable.values()) - .idLoop(correctedCollectedVariable.idLoop()) - .idParent(correctedCollectedVariable.idParent()) + .varId(correctedCollectedVariable.varId()) + .value(correctedCollectedVariable.value()) + .scope(correctedCollectedVariable.scope()) + .iteration(correctedCollectedVariable.iteration()) + .parentId(correctedCollectedVariable.parentId()) .build() ); } @@ -97,10 +98,11 @@ private static SurveyUnitModel createForcedDto( for(VariableModel correctedExternalVariable : correctedExternalVariables){ newForcedSuDto.getExternalVariables().add( VariableModel.builder() - .idVar(correctedExternalVariable.idVar()) - .values(correctedExternalVariable.values()) - .idLoop(correctedExternalVariable.idLoop()) - .idParent(correctedExternalVariable.idParent()) + .varId(correctedExternalVariable.varId()) + .value(correctedExternalVariable.value()) + .scope(correctedExternalVariable.scope()) + .iteration(correctedExternalVariable.iteration()) + .parentId(correctedExternalVariable.parentId()) .build() ); } @@ -116,7 +118,7 @@ private static SurveyUnitModel createForcedDto( private static Set getIdUEs(List suDtosList) { Set idUEs = new HashSet<>(); for(SurveyUnitModel surveyUnitModel : suDtosList){ - idUEs.add(surveyUnitModel.getIdUE()); + idUEs.add(surveyUnitModel.getInterrogationId()); } return idUEs; @@ -124,22 +126,22 @@ private static Set getIdUEs(List suDtosList) { /** * Adds the collected variables for the FORCED document - * @param srcSuDtosOfIdUE source Survey Unit documents associated with IdUE + * @param srcSuModels source Survey Unit documents associated with IdUE * @param variablesMap variables definitions * @param correctedCollectedVariables FORCED document variables */ - private static void collectedVariablesManagement(List srcSuDtosOfIdUE, VariablesMap variablesMap, List correctedCollectedVariables){ + private static void collectedVariablesManagement(List srcSuModels, VariablesMap variablesMap, List correctedCollectedVariables){ Set variableNames = new HashSet<>(); List variablesToVerify = new ArrayList<>(); //Sort from more priority to less - List sortedSuDtos = srcSuDtosOfIdUE.stream().sorted(Comparator.comparing(surveyUnitDto -> dataStatesPriority.get(surveyUnitDto.getState()))).toList(); + List sortedSuModels = srcSuModels.stream().sorted(Comparator.comparing(surveyUnitDto -> dataStatesPriority.get(surveyUnitDto.getState()))).toList(); //Get more priority variables to verify - for(SurveyUnitModel srcSuDto : sortedSuDtos){ - for(VariableModel collectedVariable : srcSuDto.getCollectedVariables()){ - if(!variableNames.contains(collectedVariable.idVar())){ - variableNames.add(collectedVariable.idVar()); + for(SurveyUnitModel surveyUnitModel : sortedSuModels){ + for(VariableModel collectedVariable : surveyUnitModel.getCollectedVariables()){ + if(!variableNames.contains(collectedVariable.varId())){ + variableNames.add(collectedVariable.varId()); variablesToVerify.add(collectedVariable); } } @@ -147,11 +149,11 @@ private static void collectedVariablesManagement(List srcSuDtos //Verify variables for(VariableModel collectedVariableToVerify : variablesToVerify){ - if(variablesMap.hasVariable(collectedVariableToVerify.idVar())) + if(variablesMap.hasVariable(collectedVariableToVerify.varId())) { - VariableModel correctedCollectedVariable = verifyCollectedVariable( + VariableModel correctedCollectedVariable = verifyVariable( collectedVariableToVerify, - variablesMap.getVariable(collectedVariableToVerify.idVar()) + variablesMap.getVariable(collectedVariableToVerify.varId()) ); if(correctedCollectedVariable != null){ @@ -161,41 +163,32 @@ private static void collectedVariablesManagement(List srcSuDtos } } - private static VariableModel verifyCollectedVariable(VariableModel collectedVariable, fr.insee.bpm.metadata.model.Variable variableDefinition) { - List newValues = new ArrayList<>(); - boolean isInvalid = false; - - for (String value : collectedVariable.values()){ - if(isParseError(value, variableDefinition.getType())){ - isInvalid = true; - newValues.add(""); - }else{ - newValues.add(value); - } + private static VariableModel verifyVariable(VariableModel variableModel, fr.insee.bpm.metadata.model.Variable variableDefinition) { + if(isParseError(variableModel.value(), variableDefinition.getType())){ + return VariableModel.builder() + .varId(variableModel.varId()) + .value("") + .scope(variableModel.scope()) + .iteration(variableModel.iteration()) + .parentId(variableModel.parentId()) + .build(); } - - - return isInvalid ? VariableModel.builder() - .idVar(collectedVariable.idVar()) - .values(newValues) - .idLoop(collectedVariable.idLoop()) - .idParent(collectedVariable.idParent()) - .build() : null; + return null; } - private static void externalVariablesManagement(List srcSuDtosOfIdUE, VariablesMap variablesMap, List correctedExternalVariables) { + private static void externalVariablesManagement(List srcSuModels, VariablesMap variablesMap, List correctedExternalVariables) { //COLLECTED only - Optional collectedSuDtoOpt = srcSuDtosOfIdUE.stream().filter( + Optional surveyUnitModelOptional = srcSuModels.stream().filter( suDto -> suDto.getState().equals(DataState.COLLECTED) ).findFirst(); //Verify variables - if(collectedSuDtoOpt.isPresent()){ - for(VariableModel variable: collectedSuDtoOpt.get().getExternalVariables()){ - if(variablesMap.hasVariable(variable.idVar())) { - VariableModel correctedExternalVariable = verifyExternalVariable( - variable, - variablesMap.getVariable(variable.idVar()) + if(surveyUnitModelOptional.isPresent()){ + for(VariableModel externalVariable: surveyUnitModelOptional.get().getExternalVariables()){ + if(variablesMap.hasVariable(externalVariable.varId())) { + VariableModel correctedExternalVariable = verifyVariable( + externalVariable, + variablesMap.getVariable(externalVariable.varId()) ); if (correctedExternalVariable != null) { correctedExternalVariables.add(correctedExternalVariable); @@ -205,31 +198,6 @@ private static void externalVariablesManagement(List srcSuDtosO } } - /** - * Verify one external variable - * @param externalVariable external variable DTO to verify - * @param variableDefinition variable definition of the variable - * @return a corrected external variable if there is any parsing error, null otherwise - */ - private static VariableModel verifyExternalVariable(VariableModel externalVariable, fr.insee.bpm.metadata.model.Variable variableDefinition) { - List newValues = new ArrayList<>(); - boolean isInvalid = false; - - for (String value : externalVariable.values()){ - if(isParseError(value, variableDefinition.getType())){ - isInvalid = true; - newValues.add(""); - }else{ - newValues.add(value); - } - } - - return isInvalid ? VariableModel.builder() - .idVar(externalVariable.idVar()) - .values(newValues) - .build() : null; - } - /** * Use the correct parser and try to parse * @param value value to verify diff --git a/src/main/java/fr/insee/genesis/domain/utils/LoopIdentifier.java b/src/main/java/fr/insee/genesis/domain/utils/LoopIdentifier.java index eb0d77e1..994d2036 100644 --- a/src/main/java/fr/insee/genesis/domain/utils/LoopIdentifier.java +++ b/src/main/java/fr/insee/genesis/domain/utils/LoopIdentifier.java @@ -15,7 +15,7 @@ private LoopIdentifier() { throw new IllegalStateException("Utility class"); } - public static String getLoopIdentifier(String variableName, VariablesMap variablesMap, int index) { + public static String getLoopIdentifier(String variableName, VariablesMap variablesMap) { Variable variable = variablesMap.getVariable(variableName); if (variable == null) { if(variableName.startsWith(Constants.FILTER_RESULT_PREFIX) @@ -31,10 +31,7 @@ public static String getLoopIdentifier(String variableName, VariablesMap variabl log.debug("Variable {} not found in variablesMap and assigned in root group", variableName); return Constants.ROOT_GROUP_NAME; } - if (variable.getGroup().isRoot()) { - return variable.getGroup().getName(); - } - return String.format("%s_%d", variable.getGroup().getName() ,index); + return variable.getGroup().getName(); } private static String getRelatedVariableGroupName(VariablesMap variablesMap, String variableName, String constantToReplace) { diff --git a/src/main/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitMongoAdapter.java b/src/main/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitMongoAdapter.java index d8a64d10..57c5ab1a 100644 --- a/src/main/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitMongoAdapter.java +++ b/src/main/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitMongoAdapter.java @@ -43,23 +43,23 @@ public void saveAll(List suListDto) { } @Override - public List findByIds(String idUE, String idQuest) { - List surveyUnits = mongoRepository.findByIdUEAndIdQuestionnaire(idUE, idQuest); + public List findByIds(String interrogationId, String questionnaireId) { + List surveyUnits = mongoRepository.findByInterrogationIdAndQuestionnaireId(interrogationId, questionnaireId); return surveyUnits.isEmpty() ? Collections.emptyList() : SurveyUnitDocumentMapper.INSTANCE.listDocumentToListModel(surveyUnits); } @Override - public List findByIdUE(String idUE) { - List surveyUnits = mongoRepository.findByIdUE(idUE); + public List findByInterrogationId(String questionnaireId) { + List surveyUnits = mongoRepository.findByInterrogationId(questionnaireId); return surveyUnits.isEmpty() ? Collections.emptyList() : SurveyUnitDocumentMapper.INSTANCE.listDocumentToListModel(surveyUnits); } @Override - public List findByIdUEsAndIdQuestionnaire(List idUEs, String idQuestionnaire) { + public List findByInterrogationIdsAndQuestionnaireId(List questionnaireIds, String questionnaireId) { List surveyUnits= new ArrayList<>(); // TODO: 18-10-2023 : find a way to do this in one query - idUEs.forEach(su -> { - List docs = mongoRepository.findByIdUEAndIdQuestionnaire(su.getIdUE(), idQuestionnaire); + questionnaireIds.forEach(su -> { + List docs = mongoRepository.findByInterrogationIdAndQuestionnaireId(su.getInterrogationId(), questionnaireId); surveyUnits.addAll(docs); }); return surveyUnits.isEmpty() ? Collections.emptyList() : SurveyUnitDocumentMapper.INSTANCE.listDocumentToListModel(surveyUnits); @@ -67,14 +67,14 @@ public List findByIdUEsAndIdQuestionnaire(List @Override - public Stream findByIdQuestionnaire(String idQuestionnaire) { - Stream surveyUnits = mongoRepository.findByIdQuestionnaire(idQuestionnaire); + public Stream findByQuestionnaireId(String questionnaireId) { + Stream surveyUnits = mongoRepository.findByQuestionnaireId(questionnaireId); return surveyUnits.map(SurveyUnitDocumentMapper.INSTANCE::documentToModel); } @Override - public Long deleteByIdQuestionnaire(String idQuestionnaire) { - return mongoRepository.deleteByIdQuestionnaire(idQuestionnaire); + public Long deleteByQuestionnaireId(String questionnaireId) { + return mongoRepository.deleteByQuestionnaireId(questionnaireId); } @Override @@ -83,80 +83,80 @@ public long count() { } @Override - public Set findIdQuestionnairesByIdCampaign(String idCampaign){ + public Set findQuestionnaireIdsByCampaignId(String campaignId){ Set mongoResponse = - mongoRepository.findIdQuestionnairesByIdCampaign(idCampaign); + mongoRepository.findQuestionnaireIdsByCampaignId(campaignId); - //Extract idQuestionnaires from JSON response - Set idQuestionnaires = new HashSet<>(); + //Extract questionnaireIds from JSON response + Set questionnaireIds = new HashSet<>(); for(String line : mongoResponse){ ObjectMapper objectMapper = new ObjectMapper(); try{ JsonNode jsonNode = objectMapper.readTree(line); - idQuestionnaires.add(jsonNode.get("idQuestionnaire").asText()); + questionnaireIds.add(jsonNode.get("questionnaireId").asText()); }catch (JsonProcessingException e){ log.error(e.getMessage()); } } - return idQuestionnaires; + return questionnaireIds; } @Override - public Set findDistinctIdCampaigns() { - Set idCampaigns = new HashSet<>(); - for(String idCampaign : mongoTemplate.getCollection(Constants.MONGODB_RESPONSE_COLLECTION_NAME).distinct("idCampaign", + public Set findDistinctCampaignIds() { + Set campaignIds = new HashSet<>(); + for(String campaignId : mongoTemplate.getCollection(Constants.MONGODB_RESPONSE_COLLECTION_NAME).distinct("campaignId", String.class)){ - idCampaigns.add(idCampaign); + campaignIds.add(campaignId); } - return idCampaigns; + return campaignIds; } @Override - public List findIdUEsByIdQuestionnaire(String idQuestionnaire) { - List surveyUnits = mongoRepository.findIdUEsByIdQuestionnaire(idQuestionnaire); + public List findInterrogationIdsByQuestionnaireId(String questionnaireId) { + List surveyUnits = mongoRepository.findInterrogationIdsByQuestionnaireId(questionnaireId); return surveyUnits.isEmpty() ? Collections.emptyList() : SurveyUnitDocumentMapper.INSTANCE.listDocumentToListModel(surveyUnits); } @Override - public List findIdUEsByIdCampaign(String idCampaign) { - List surveyUnits = mongoRepository.findIdUEsByIdCampaign(idCampaign); + public List findInterrogationIdsByCampaignId(String campaignId) { + List surveyUnits = mongoRepository.findInterrogationIdsByCampaignId(campaignId); return surveyUnits.isEmpty() ? Collections.emptyList() : SurveyUnitDocumentMapper.INSTANCE.listDocumentToListModel(surveyUnits); } - public long countByIdCampaign(String idCampaign){ - return mongoRepository.countByIdCampaign(idCampaign); + public long countByCampaignId(String campaignId){ + return mongoRepository.countByCampaignId(campaignId); } @Override - public Set findDistinctIdQuestionnaires() { - Set idQuestionnaires = new HashSet<>(); - for(String idQuestionnaire : mongoTemplate.getCollection(Constants.MONGODB_RESPONSE_COLLECTION_NAME).distinct( - "idQuestionnaire", + public Set findDistinctQuestionnaireIds() { + Set questionnaireIds = new HashSet<>(); + for(String questionnaireId : mongoTemplate.getCollection(Constants.MONGODB_RESPONSE_COLLECTION_NAME).distinct( + "questionnaireId", String.class)){ - idQuestionnaires.add(idQuestionnaire); + questionnaireIds.add(questionnaireId); } - return idQuestionnaires; + return questionnaireIds; } @Override - public Set findIdCampaignsByIdQuestionnaire(String idQuestionnaire) { + public Set findCampaignIdsByQuestionnaireId(String questionnaireId) { List mongoResponse = - mongoRepository.findIdCampaignsByIdQuestionnaire(idQuestionnaire).stream().distinct().toList(); + mongoRepository.findCampaignIdsByQuestionnaireId(questionnaireId).stream().distinct().toList(); //Extract idCampagigns from JSON response - Set idCampaigns = new HashSet<>(); + Set campaignIds = new HashSet<>(); for(String line : mongoResponse){ ObjectMapper objectMapper = new ObjectMapper(); try{ JsonNode jsonNode = objectMapper.readTree(line); - idCampaigns.add(jsonNode.get("idCampaign").asText()); + campaignIds.add(jsonNode.get("campaignId").asText()); }catch (JsonProcessingException e){ log.error(e.getMessage()); } } - return idCampaigns; + return campaignIds; } } diff --git a/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/SurveyUnitDocument.java b/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/SurveyUnitDocument.java index 2f7e47e1..03f019d4 100644 --- a/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/SurveyUnitDocument.java +++ b/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/SurveyUnitDocument.java @@ -14,9 +14,9 @@ @CompoundIndex(name = "idQuestionnaire_1_idCampaign_1", def = "{'idQuestionnaire': 1, 'idCampaign': 1}") @CompoundIndex(name = "idQuestionnaire_1_idUE_1", def = "{'idQuestionnaire': 1, 'idUE': 1}") public class SurveyUnitDocument { - private String idCampaign; - private String idUE; - private String idQuestionnaire; + private String campaignId; + private String interrogationId; + private String questionnaireId; private String state; private String mode; private LocalDateTime recordDate; diff --git a/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/VariableDocument.java b/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/VariableDocument.java index cb562581..a840326a 100644 --- a/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/VariableDocument.java +++ b/src/main/java/fr/insee/genesis/infrastructure/document/surveyunit/VariableDocument.java @@ -2,7 +2,6 @@ import java.io.Serial; import java.io.Serializable; -import java.util.List; import lombok.Data; @@ -11,8 +10,9 @@ public class VariableDocument implements Serializable { @Serial private static final long serialVersionUID = -1576556180669134053L; - private String idVar; - private String idLoop; - private String idParent; - private List values; + private String varId; + private String scope; + private Integer iteration; + private String parentId; + private String value; } \ No newline at end of file diff --git a/src/main/java/fr/insee/genesis/infrastructure/mappers/SurveyUnitDocumentMapper.java b/src/main/java/fr/insee/genesis/infrastructure/mappers/SurveyUnitDocumentMapper.java index db0ada3b..f89ba3e1 100644 --- a/src/main/java/fr/insee/genesis/infrastructure/mappers/SurveyUnitDocumentMapper.java +++ b/src/main/java/fr/insee/genesis/infrastructure/mappers/SurveyUnitDocumentMapper.java @@ -12,10 +12,8 @@ public interface SurveyUnitDocumentMapper { SurveyUnitDocumentMapper INSTANCE = Mappers.getMapper(SurveyUnitDocumentMapper.class); - @Mapping(source = "idQuestionnaire", target = "idQuest") SurveyUnitModel documentToModel(SurveyUnitDocument surveyUnit); - @Mapping(source = "idQuest", target = "idQuestionnaire") SurveyUnitDocument modelToDocument(SurveyUnitModel surveyUnitModel); List listDocumentToListModel(List surveyUnits); diff --git a/src/main/java/fr/insee/genesis/infrastructure/repository/SurveyUnitMongoDBRepository.java b/src/main/java/fr/insee/genesis/infrastructure/repository/SurveyUnitMongoDBRepository.java index 18c2152b..88624365 100644 --- a/src/main/java/fr/insee/genesis/infrastructure/repository/SurveyUnitMongoDBRepository.java +++ b/src/main/java/fr/insee/genesis/infrastructure/repository/SurveyUnitMongoDBRepository.java @@ -13,28 +13,28 @@ @Repository public interface SurveyUnitMongoDBRepository extends MongoRepository { - List findByIdUE(String idUE); + List findByInterrogationId(String interrogationId); - List findByIdUEAndIdQuestionnaire(String idUE, String idQuestionnaire); + List findByInterrogationIdAndQuestionnaireId(String interrogationId, String questionnaireId); - @Query(value = "{ 'idQuestionnaire' : ?0 }", fields = "{ 'idUE' : 1, 'mode' : 1 }") - List findIdUEsByIdQuestionnaire(String idQuestionnaire); + @Query(value = "{ 'questionnaireId' : ?0 }", fields = "{ 'interrogationId' : 1, 'mode' : 1 }") + List findInterrogationIdsByQuestionnaireId(String questionnaireId); - @Query(value = "{ 'idCampaign' : ?0 }", fields = "{ 'idUE' : 1, 'mode' : 1 }") - List findIdUEsByIdCampaign(String idCampaign); + @Query(value = "{ 'campaignId' : ?0 }", fields = "{ 'interrogationId' : 1, 'mode' : 1 }") + List findInterrogationIdsByCampaignId(String campaignId); - Long deleteByIdQuestionnaire(String idQuestionnaire); + Long deleteByQuestionnaireId(String questionnaireId); @Meta(cursorBatchSize = 20) - Stream findByIdQuestionnaire(String idQuestionnaire); + Stream findByQuestionnaireId(String questionnaireId); long count(); - @Query(value = "{ 'idCampaign' : ?0 }", fields = "{ _id : 0, 'idQuestionnaire' : 1 }") - Set findIdQuestionnairesByIdCampaign(String idCampaign); + @Query(value = "{ 'campaignId' : ?0 }", fields = "{ _id : 0, 'questionnaireId' : 1 }") + Set findQuestionnaireIdsByCampaignId(String campaignId); - long countByIdCampaign(String idCampaign); + long countByCampaignId(String campaignId); - @Query(value = "{ 'idQuestionnaire' : ?0 }", fields = "{ _id : 0, 'idCampaign' : 1 }") - Set findIdCampaignsByIdQuestionnaire(String idQuestionnaire); + @Query(value = "{ 'questionnaireId' : ?0 }", fields = "{ _id : 0, 'campaignId' : 1 }") + Set findCampaignIdsByQuestionnaireId(String questionnaireId); } \ No newline at end of file diff --git a/src/test/java/cucumber/functional_tests/MainDefinitions.java b/src/test/java/cucumber/functional_tests/MainDefinitions.java index 11e8f5c3..aa6d4348 100644 --- a/src/test/java/cucumber/functional_tests/MainDefinitions.java +++ b/src/test/java/cucumber/functional_tests/MainDefinitions.java @@ -14,8 +14,8 @@ import fr.insee.genesis.controller.utils.ControllerUtils; import fr.insee.genesis.domain.model.surveyunit.DataState; import fr.insee.genesis.domain.model.surveyunit.Mode; -import fr.insee.genesis.domain.model.surveyunit.VariableModel; import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel; +import fr.insee.genesis.domain.model.surveyunit.VariableModel; import fr.insee.genesis.domain.service.rawdata.LunaticJsonRawDataService; import fr.insee.genesis.domain.service.rawdata.LunaticXmlRawDataService; import fr.insee.genesis.domain.service.surveyunit.SurveyUnitQualityService; @@ -28,7 +28,6 @@ import fr.insee.genesis.stubs.SurveyUnitPersistencePortStub; import io.cucumber.java.After; import io.cucumber.java.Before; -import io.cucumber.java.en.And; import io.cucumber.java.en.Given; import io.cucumber.java.en.Then; import io.cucumber.java.en.When; @@ -45,7 +44,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; -import java.util.Optional; public class MainDefinitions { String directory; @@ -133,7 +131,7 @@ public void check_surveyunits_by_state(int expectedCount, String expectedStatus) public void check_expected_datastate_dto(String surveyUnitId, String expectedDataState) { Assertions.assertThat(this.surveyUnitModels).filteredOn(surveyUnitDto -> surveyUnitDto.getState().toString().equals(expectedDataState) - && surveyUnitDto.getIdUE().equals(surveyUnitId) + && surveyUnitDto.getInterrogationId().equals(surveyUnitId) ).isNotEmpty(); } @@ -141,139 +139,67 @@ public void check_expected_datastate_dto(String surveyUnitId, String expectedDat public void check_unexpected_datastate_dto(String surveyUnitId, String unexpectedDataState) { Assertions.assertThat(this.surveyUnitModels).filteredOn(surveyUnitDto -> surveyUnitDto.getState().toString().equals(unexpectedDataState) - && surveyUnitDto.getIdUE().equals(surveyUnitId) + && surveyUnitDto.getInterrogationId().equals(surveyUnitId) ).isEmpty(); } - @Then("We should have a {string} DTO for survey unit {string} with {string} filled with {string} at index {int}") - public void check_survey_unit_dto_content(String dataState, String surveyUnitId, String variableName, String expectedValue, int expectedIndex) { - //Get DTO - Assertions.assertThat(this.surveyUnitModels).filteredOn(surveyUnitDto -> - surveyUnitDto.getState().toString().equals(dataState) - && surveyUnitDto.getIdUE().equals(surveyUnitId) - ).isNotEmpty(); - - Optional concernedSurveyUnitModelOptional = this.surveyUnitModels.stream().filter(dto -> + @Then("We should have a {string} DTO for survey unit {string} with {string} filled with {string} for iteration " + + "{int}") + public void check_survey_unit_dto_content(String dataState, String surveyUnitId, String variableName, + String expectedValue, int iteration) { + //Get model + List concernedSurveyUnitModels = this.surveyUnitModels.stream().filter(dto -> dto.getState().toString().equals(dataState) - && dto.getIdUE().equals(surveyUnitId) - ).findFirst(); - - Assertions.assertThat(concernedSurveyUnitModelOptional).isPresent(); + && dto.getInterrogationId().equals(surveyUnitId) + ).toList(); - SurveyUnitModel concernedSurveyUnitModel = concernedSurveyUnitModelOptional.get(); + Assertions.assertThat(concernedSurveyUnitModels).isNotEmpty(); + SurveyUnitModel concernedSurveyUnitModel = concernedSurveyUnitModels.getFirst(); //Get Variable - Assertions.assertThat(concernedSurveyUnitModel.getCollectedVariables()).filteredOn(collectedvariableModel -> - collectedvariableModel.idVar().equals(variableName)).isNotEmpty(); + List concernedCollectedVariables = + concernedSurveyUnitModel.getCollectedVariables().stream().filter(variable -> + variable.varId().equals(variableName) + && variable.iteration().equals(iteration) + ).toList(); - Optional concernedCollectedVariableOptional = concernedSurveyUnitModel.getCollectedVariables().stream().filter(variable -> - variable.idVar().equals(variableName) - ).findFirst(); + Assertions.assertThat(concernedCollectedVariables).isNotEmpty().hasSize(1); - Assertions.assertThat(concernedCollectedVariableOptional).isPresent(); - - VariableModel concernedCollectedVariable = concernedCollectedVariableOptional.get(); + VariableModel concernedCollectedVariable = concernedCollectedVariables.getFirst(); //Value assertion - Assertions.assertThat(concernedCollectedVariable.values()).hasSizeGreaterThan(expectedIndex); - - Assertions.assertThat(concernedCollectedVariable.values().get(expectedIndex)).isEqualTo(expectedValue); + Assertions.assertThat(concernedCollectedVariable.value()).isEqualTo(expectedValue); } - @Then("We should have {int} values for external variable {string} for survey unit {string}") - public void external_variable_volumetric_check(int expectedNumberOfValues, String externalVariableName, - String interrogationId) { - //Get SurveyUnitModel - Assertions.assertThat(surveyUnitPersistence.getMongoStub()).filteredOn(surveyUnitModel -> - surveyUnitModel.getState().equals(DataState.COLLECTED) - && surveyUnitModel.getIdUE().equals(interrogationId) - ).isNotEmpty().hasSize(1); - - SurveyUnitModel surveyUnitModel = surveyUnitPersistence.getMongoStub().stream().filter(surveyUnitModel1 -> - surveyUnitModel1.getState().equals(DataState.COLLECTED) - && surveyUnitModel1.getIdUE().equals(interrogationId) - ).toList().getFirst(); - - //Get Variable - Assertions.assertThat(surveyUnitModel.getExternalVariables()).filteredOn(variableModel -> - variableModel.idVar().equals(externalVariableName)).isNotEmpty(); - - Optional concernedVariableOptional = surveyUnitModel.getExternalVariables().stream().filter(variable -> - variable.idVar().equals(externalVariableName) - ).findFirst(); - - Assertions.assertThat(concernedVariableOptional).isPresent(); - - VariableModel concernedVariable = concernedVariableOptional.get(); - - //Values count assertion - Assertions.assertThat(concernedVariable.values()).hasSize(expectedNumberOfValues); - - } - - @And("For external variable {string} in survey unit {string} we should have {string} and loopId {string}") + @Then("For external variable {string} in survey unit {string} we should have {string} and scope {string} for " + + "iteration {int}") public void forExternalVariableInSurveyUnitWeShouldHaveForLoop(String externalVariableName, String interrogationId, String expectedValue, - String expectedLoopId) { + String expectedLoopId, + Integer iteration + ) { //Get SurveyUnitModel - Assertions.assertThat(surveyUnitPersistence.getMongoStub()).filteredOn(surveyUnitDto -> - surveyUnitDto.getState().equals(DataState.COLLECTED) - && surveyUnitDto.getIdUE().equals(interrogationId) - ).isNotEmpty().hasSize(1); - - SurveyUnitModel surveyUnitModel = surveyUnitPersistence.getMongoStub().stream().filter(dto -> + List concernedSurveyUnitModels = surveyUnitPersistence.getMongoStub().stream().filter(dto -> dto.getState().equals(DataState.COLLECTED) - && dto.getIdUE().equals(interrogationId) - ).toList().getFirst(); - - //Get Variable - Assertions.assertThat(surveyUnitModel.getExternalVariables()).filteredOn(variableModel -> - variableModel.idVar().equals(externalVariableName) - && Objects.equals(variableModel.idLoop(), expectedLoopId) - ).isNotEmpty().hasSize(1); + && dto.getInterrogationId().equals(interrogationId) + ).toList(); + Assertions.assertThat(concernedSurveyUnitModels).hasSize(1); - VariableModel concernedExternalVariable = surveyUnitModel.getExternalVariables().stream().filter(variableModel -> - variableModel.idVar().equals(externalVariableName) - && Objects.equals(variableModel.idLoop(), expectedLoopId) - ).toList().getFirst(); - - //Value content assertion - Assertions.assertThat(concernedExternalVariable.values()).hasSize(1); - Assertions.assertThat(concernedExternalVariable.values().getFirst()).isEqualTo(expectedValue); - Assertions.assertThat(concernedExternalVariable.idLoop()).isNotNull().isEqualTo(expectedLoopId); - } - - @Then("For external variable {string} in survey unit {string} we should have {string} as idLoop and {string} as first " + - "value") - public void check_idLoop_and_value(String externalVariableName, String interrogationId, String expectedLoopId, - String expectedValue) { - //Get SurveyUnitModel - Assertions.assertThat(surveyUnitPersistence.getMongoStub()).filteredOn(surveyUnitDto -> - surveyUnitDto.getState().equals(DataState.COLLECTED) - && surveyUnitDto.getIdUE().equals(interrogationId) - ).isNotEmpty().hasSize(1); - - SurveyUnitModel surveyUnitModel = surveyUnitPersistence.getMongoStub().stream().filter(dto -> - dto.getState().equals(DataState.COLLECTED) - && dto.getIdUE().equals(interrogationId) - ).toList().getFirst(); + SurveyUnitModel surveyUnitModel = concernedSurveyUnitModels.getFirst(); //Get Variable - Assertions.assertThat(surveyUnitModel.getExternalVariables()).filteredOn(variableModel -> - variableModel.idVar().equals(externalVariableName) - && Objects.equals(variableModel.idLoop(), expectedLoopId) - ).isNotEmpty().hasSize(1); + List concernedExternalVariables = + surveyUnitModel.getExternalVariables().stream().filter(variableModel -> + variableModel.varId().equals(externalVariableName) + && Objects.equals(variableModel.scope(), expectedLoopId) + && variableModel.iteration().equals(iteration) + ).toList(); - VariableModel concernedExternalVariable = surveyUnitModel.getExternalVariables().stream().filter(variableModel -> - variableModel.idVar().equals(externalVariableName) - && Objects.equals(variableModel.idLoop(), expectedLoopId) - ).toList().getFirst(); + VariableModel variableModel = concernedExternalVariables.getFirst(); //Value content assertion - Assertions.assertThat(concernedExternalVariable.idLoop()).isNotNull().isEqualTo(expectedLoopId); - Assertions.assertThat(concernedExternalVariable.values()).hasSize(1); - Assertions.assertThat(concernedExternalVariable.values().getFirst()).isEqualTo(expectedValue); + Assertions.assertThat(variableModel.value()).isEqualTo(expectedValue); } @After diff --git a/src/test/java/fr/insee/genesis/TestConstants.java b/src/test/java/fr/insee/genesis/TestConstants.java index f0d78aee..88892875 100644 --- a/src/test/java/fr/insee/genesis/TestConstants.java +++ b/src/test/java/fr/insee/genesis/TestConstants.java @@ -7,4 +7,7 @@ public class TestConstants { public static final String TEST_RESOURCES_DIRECTORY = "src/test/resources"; public static final String UNIT_TESTS_DDI_DIRECTORY = TEST_RESOURCES_DIRECTORY + "/specs"; + + public static final String DEFAULT_INTERROGATION_ID = "TESTIDUE"; + public static final String DEFAULT_QUESTIONNAIRE_ID = "TESTIDQUESTIONNAIRE"; } diff --git a/src/test/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapterTest.java b/src/test/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapterTest.java index 3d84db65..b460de4b 100644 --- a/src/test/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapterTest.java +++ b/src/test/java/fr/insee/genesis/controller/adapter/LunaticXmlAdapterTest.java @@ -230,7 +230,7 @@ void test02() { // When List suDtos = LunaticXmlAdapter.convert(lunaticXmlSurveyUnit1, metadataModel.getVariables(), ID_CAMPAIGN, Mode.WEB); // Then - Assertions.assertThat(suDtos.getFirst().getIdQuest()).isEqualTo("idQuest1"); + Assertions.assertThat(suDtos.getFirst().getQuestionnaireId()).isEqualTo("idQuest1"); } @Test @@ -239,7 +239,7 @@ void test03() { // When List suDtos = LunaticXmlAdapter.convert(lunaticXmlSurveyUnit1, metadataModel.getVariables(), ID_CAMPAIGN, Mode.WEB); // Then - Assertions.assertThat(suDtos.getFirst().getIdUE()).isEqualTo("idUE1"); + Assertions.assertThat(suDtos.getFirst().getInterrogationId()).isEqualTo("idUE1"); } @Test @@ -269,7 +269,8 @@ void test05() { //Content check for (VariableModel collectedVariable : editedDTO.get().getCollectedVariables()) { - Assertions.assertThat(collectedVariable.values()).containsAnyOf("1e", "2e").doesNotContain("1", "2"); + Assertions.assertThat(collectedVariable.value()).containsAnyOf("1e","2e").isNotEqualTo("1").isNotEqualTo( + "2"); } } @@ -331,11 +332,11 @@ void test09() { Assertions.assertThat(suDtos).hasSize(1); Assertions.assertThat(suDtos.getFirst().getCollectedVariables()).filteredOn(collectedVariableDto -> - collectedVariableDto.idVar().equals("var3")).isNotEmpty(); + collectedVariableDto.varId().equals("var3")).isNotEmpty(); Assertions.assertThat(suDtos.getFirst().getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals("var3")).toList().getFirst().idParent()).isNull(); + collectedVariableDto.varId().equals("var3")).toList().getFirst().parentId()).isNull(); Assertions.assertThat(suDtos.getFirst().getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals("var3")).toList().getFirst().idLoop()).isEqualTo(Constants.ROOT_GROUP_NAME); + collectedVariableDto.varId().equals("var3")).toList().getFirst().scope()).isEqualTo(Constants.ROOT_GROUP_NAME); } @Test @@ -348,11 +349,11 @@ void test10() { Assertions.assertThat(suDtos).hasSize(1); Assertions.assertThat(suDtos.getFirst().getCollectedVariables()).filteredOn(collectedVariableDto -> - collectedVariableDto.idVar().equals("var1_MISSING")).isNotEmpty(); + collectedVariableDto.varId().equals("var1_MISSING")).isNotEmpty(); Assertions.assertThat(suDtos.getFirst().getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals("var1_MISSING")).toList().getFirst().idParent()).isNotNull().isEqualTo("var1"); + collectedVariableDto.varId().equals("var1_MISSING")).toList().getFirst().parentId()).isNotNull().isEqualTo("var1"); Assertions.assertThat(suDtos.getFirst().getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals("var1_MISSING")).toList().getFirst().idLoop()).isNotEqualTo(Constants.ROOT_GROUP_NAME).isEqualTo(LOOP_NAME); + collectedVariableDto.varId().equals("var1_MISSING")).toList().getFirst().scope()).isNotEqualTo(Constants.ROOT_GROUP_NAME).isEqualTo(LOOP_NAME); } @Test @@ -364,14 +365,19 @@ void test11(){ Assertions.assertThat(suDtos).hasSize(1); Assertions.assertThat(suDtos.getFirst().getCollectedVariables()).hasSize(3); Assertions.assertThat(suDtos.getFirst().getCollectedVariables()).filteredOn(collectedVariableDto -> - collectedVariableDto.idVar().equals("var1")).isNotEmpty(); + collectedVariableDto.varId().equals("var1")).isNotEmpty(); Assertions.assertThat(suDtos.getFirst().getCollectedVariables()).filteredOn(collectedVariableDto -> - collectedVariableDto.idLoop().equals("BOUCLE1_1")).isEmpty(); + collectedVariableDto.scope().equals("BOUCLE1") + && collectedVariableDto.iteration().equals(1) + ).isEmpty(); Assertions.assertThat(suDtos.getFirst().getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idLoop().equals("BOUCLE1_2")).toList().getFirst().values().getFirst()).isEqualTo("1"); + collectedVariableDto.scope().equals("BOUCLE1") + && collectedVariableDto.iteration().equals(2) + ).toList().getFirst().value()).isEqualTo("1"); Assertions.assertThat(suDtos.getFirst().getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idLoop().equals("BOUCLE1_3")).toList().getFirst().values().getFirst()).isEqualTo("2"); - + collectedVariableDto.scope().equals("BOUCLE1") + && collectedVariableDto.iteration().equals(3) + ).toList().getFirst().value()).isEqualTo("2"); } @Test @@ -383,10 +389,10 @@ void test12(){ Assertions.assertThat(suDtos).hasSize(1); Assertions.assertThat(suDtos.getFirst().getCollectedVariables()).isEmpty(); Assertions.assertThat(suDtos.getFirst().getExternalVariables()).hasSize(1); - Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().idVar()).isEqualTo("extvar1"); - Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().values()).hasSize(1); - Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().values().getFirst()).isEqualTo("ext"); - Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().idLoop()).isEqualTo(LOOP_NAME+"_1"); - Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().idParent()).isEqualTo(Constants.ROOT_GROUP_NAME); + Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().varId()).isEqualTo("extvar1"); + Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().value()).isEqualTo("ext"); + Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().scope()).isEqualTo(LOOP_NAME); + Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().iteration()).isEqualTo(1); + Assertions.assertThat(suDtos.getFirst().getExternalVariables().getFirst().parentId()).isEqualTo(Constants.ROOT_GROUP_NAME); } } diff --git a/src/test/java/fr/insee/genesis/controller/rest/HealthCheckControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/HealthCheckControllerTest.java index 1dd54314..71072b41 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/HealthCheckControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/HealthCheckControllerTest.java @@ -30,24 +30,41 @@ static void init() { surveyUnitPersistencePortStub = new SurveyUnitPersistencePortStub(); SurveyUnitApiPort surveyUnitApiPort = new SurveyUnitService(surveyUnitPersistencePortStub); List externalVariableList = new ArrayList<>(); - VariableModel variable = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(variable); + variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(variable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariable); + collectedVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); - - collectedVariableList.add(collectedVariable); surveyUnitPersistencePortStub.getMongoStub().add(SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE("TESTIDUE") - .idQuest("TESTIDQUESTIONNAIRE") + .interrogationId("TESTIDUE") + .questionnaireId("TESTIDQUESTIONNAIRE") .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023, 1, 1, 0, 0, 0)) .recordDate(LocalDateTime.of(2024, 1, 1, 0, 0, 0)) diff --git a/src/test/java/fr/insee/genesis/controller/rest/UtilsControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/UtilsControllerTest.java index 74e1a571..a0d6d665 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/UtilsControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/UtilsControllerTest.java @@ -2,7 +2,7 @@ import cucumber.TestConstants; import fr.insee.genesis.Constants; -import fr.insee.genesis.controller.dto.SurveyUnitId; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.domain.model.surveyunit.DataState; import fr.insee.genesis.domain.model.surveyunit.Mode; import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel; @@ -35,7 +35,7 @@ class UtilsControllerTest { static UtilsController utilsControllerStatic; static SurveyUnitPersistencePortStub surveyUnitPersistencePortStub; - static List surveyUnitIdList; + static List interrogationIdList; //Constants static final String defaultIdUE = "TESTIDUE"; static final String defaultIdQuest = "TESTIDQUESTIONNAIRE"; @@ -50,8 +50,8 @@ static void init() { , new VolumetryLogService(new ConfigStub()) ); - surveyUnitIdList = new ArrayList<>(); - surveyUnitIdList.add(new SurveyUnitId(defaultIdUE)); + interrogationIdList = new ArrayList<>(); + interrogationIdList.add(new InterrogationId(defaultIdUE)); } @BeforeEach @@ -60,23 +60,42 @@ void reset() throws IOException { surveyUnitPersistencePortStub.getMongoStub().clear(); List externalVariableList = new ArrayList<>(); - VariableModel variable = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(variable); + variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(variable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariable); + collectedVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); - collectedVariableList.add(collectedVariable); + surveyUnitPersistencePortStub.getMongoStub().add(SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE(defaultIdUE) - .idQuest(defaultIdQuest) + .interrogationId(defaultIdUE) + .questionnaireId(defaultIdQuest) .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023, 1, 1, 0, 0, 0)) .recordDate(LocalDateTime.of(2024, 1, 1, 0, 0, 0)) @@ -353,23 +372,42 @@ private void addAdditionalDtoToMongoStub(String idQuestionnaire) { private void addAdditionalDtoToMongoStub(String idCampaign, String idQuestionnaire) { List externalVariableList = new ArrayList<>(); - VariableModel variable = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(variable); + variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(variable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariable); + collectedVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); collectedVariableList.add(collectedVariable); SurveyUnitModel recentDTO = SurveyUnitModel.builder() - .idCampaign(idCampaign) + .campaignId(idCampaign) .mode(Mode.WEB) - .idUE(defaultIdUE) - .idQuest(idQuestionnaire) + .interrogationId(defaultIdUE) + .questionnaireId(idQuestionnaire) .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023, 2, 2, 0, 0, 0)) .recordDate(LocalDateTime.of(2024, 2, 2, 0, 0, 0)) diff --git a/src/test/java/fr/insee/genesis/controller/rest/responses/IdUEControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/responses/InterrogationControllerTest.java similarity index 67% rename from src/test/java/fr/insee/genesis/controller/rest/responses/IdUEControllerTest.java rename to src/test/java/fr/insee/genesis/controller/rest/responses/InterrogationControllerTest.java index c750f9d1..d731e939 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/responses/IdUEControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/responses/InterrogationControllerTest.java @@ -1,6 +1,6 @@ package fr.insee.genesis.controller.rest.responses; -import fr.insee.genesis.controller.dto.SurveyUnitId; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort; import fr.insee.genesis.domain.service.surveyunit.SurveyUnitService; import fr.insee.genesis.stubs.SurveyUnitPersistencePortStub; @@ -13,20 +13,20 @@ import java.io.IOException; import java.util.List; -class IdUEControllerTest { +import static fr.insee.genesis.TestConstants.DEFAULT_INTERROGATION_ID; +import static fr.insee.genesis.TestConstants.DEFAULT_QUESTIONNAIRE_ID; + +class InterrogationControllerTest { //Given - static IdUEController idUeControllerStatic; + static InterrogationController interrogationControllerStatic; static SurveyUnitPersistencePortStub surveyUnitPersistencePortStub; - //Constants - static final String defaultIdUE = "TESTIDUE"; - static final String defaultIdQuest = "TESTIDQUESTIONNAIRE"; @BeforeAll static void init() { surveyUnitPersistencePortStub = new SurveyUnitPersistencePortStub(); SurveyUnitApiPort surveyUnitApiPort = new SurveyUnitService(surveyUnitPersistencePortStub); - idUeControllerStatic = new IdUEController( surveyUnitApiPort ); + interrogationControllerStatic = new InterrogationController( surveyUnitApiPort ); } @@ -39,11 +39,11 @@ void reset() throws IOException { //When + Then @Test void getAllIdUEsByQuestionnaireTest() { - ResponseEntity> response = idUeControllerStatic.getAllIdUEsByQuestionnaire(defaultIdQuest); + ResponseEntity> response = interrogationControllerStatic.getAllInterrogationIdsByQuestionnaire(DEFAULT_QUESTIONNAIRE_ID); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty(); - Assertions.assertThat(response.getBody().getFirst().getIdUE()).isEqualTo(defaultIdUE); + Assertions.assertThat(response.getBody().getFirst().getInterrogationId()).isEqualTo(DEFAULT_INTERROGATION_ID); } diff --git a/src/test/java/fr/insee/genesis/controller/rest/responses/ModeControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/responses/ModeControllerTest.java index 06376ccd..914e91c7 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/responses/ModeControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/responses/ModeControllerTest.java @@ -13,15 +13,13 @@ import java.io.IOException; import java.util.List; +import static fr.insee.genesis.TestConstants.DEFAULT_QUESTIONNAIRE_ID; + class ModeControllerTest { //Given static ModeController modeControllerStatic; static SurveyUnitPersistencePortStub surveyUnitPersistencePortStub; - //Constants - static final String defaultIdUE = "TESTIDUE"; - static final String defaultIdQuest = "TESTIDQUESTIONNAIRE"; - @BeforeAll static void init() { surveyUnitPersistencePortStub = new SurveyUnitPersistencePortStub(); @@ -40,7 +38,7 @@ void reset() throws IOException { //When + Then @Test void getModesByQuestionnaireTest() { - ResponseEntity> response = modeControllerStatic.getModesByQuestionnaire(defaultIdQuest); + ResponseEntity> response = modeControllerStatic.getModesByQuestionnaire(DEFAULT_QUESTIONNAIRE_ID); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty().hasSize(1); diff --git a/src/test/java/fr/insee/genesis/controller/rest/responses/QuestionnaireControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/responses/QuestionnaireControllerTest.java index 17caeb3b..fb89a31f 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/responses/QuestionnaireControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/responses/QuestionnaireControllerTest.java @@ -14,15 +14,13 @@ import java.util.List; import java.util.Set; +import static fr.insee.genesis.TestConstants.DEFAULT_QUESTIONNAIRE_ID; + class QuestionnaireControllerTest { //Given static QuestionnaireController questionnaireControllerStatic; static SurveyUnitPersistencePortStub surveyUnitPersistencePortStub; - //Constants - static final String defaultIdUE = "TESTIDUE"; - static final String defaultIdQuest = "TESTIDQUESTIONNAIRE"; - @BeforeAll static void init() { surveyUnitPersistencePortStub = new SurveyUnitPersistencePortStub(); @@ -48,7 +46,7 @@ void getQuestionnairesTest() { Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty().containsExactly( - defaultIdQuest,"TESTQUESTIONNAIRE2"); + DEFAULT_QUESTIONNAIRE_ID,"TESTQUESTIONNAIRE2"); } @Test @@ -59,7 +57,7 @@ void getQuestionnairesByCampaignTest() { Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty().containsExactly( - defaultIdQuest,"TESTQUESTIONNAIRE2"); + DEFAULT_QUESTIONNAIRE_ID,"TESTQUESTIONNAIRE2"); } @@ -75,12 +73,12 @@ void getQuestionnairesWithCampaignsTest() { Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty(); Assertions.assertThat(response.getBody().stream().filter(questionnaireWithCampaign -> - questionnaireWithCampaign.getIdQuestionnaire().equals(defaultIdQuest) + questionnaireWithCampaign.getIdQuestionnaire().equals(DEFAULT_QUESTIONNAIRE_ID) || questionnaireWithCampaign.getIdQuestionnaire().equals("TESTQUESTIONNAIRE2") )).isNotNull().isNotEmpty().hasSize(2); Assertions.assertThat(response.getBody().stream().filter( - questionnaireWithCampaign -> questionnaireWithCampaign.getIdQuestionnaire().equals(defaultIdQuest) + questionnaireWithCampaign -> questionnaireWithCampaign.getIdQuestionnaire().equals(DEFAULT_QUESTIONNAIRE_ID) ).findFirst().get().getCampaigns()).containsExactly("TESTIDCAMPAIGN"); Assertions.assertThat(response.getBody().stream().filter( diff --git a/src/test/java/fr/insee/genesis/controller/rest/responses/ResponseControllerTest.java b/src/test/java/fr/insee/genesis/controller/rest/responses/ResponseControllerTest.java index 3745e026..8ebc223f 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/responses/ResponseControllerTest.java +++ b/src/test/java/fr/insee/genesis/controller/rest/responses/ResponseControllerTest.java @@ -3,9 +3,9 @@ import cucumber.TestConstants; import fr.insee.genesis.Constants; import fr.insee.genesis.configuration.Config; -import fr.insee.genesis.controller.dto.SurveyUnitDto; -import fr.insee.genesis.controller.dto.SurveyUnitId; +import fr.insee.genesis.controller.dto.InterrogationId; import fr.insee.genesis.controller.dto.SurveyUnitInputDto; +import fr.insee.genesis.controller.dto.SurveyUnitQualityToolDto; import fr.insee.genesis.controller.dto.SurveyUnitSimplified; import fr.insee.genesis.controller.dto.VariableInputDto; import fr.insee.genesis.controller.dto.VariableStateInputDto; @@ -43,6 +43,9 @@ import java.util.ArrayList; import java.util.List; +import static fr.insee.genesis.TestConstants.DEFAULT_INTERROGATION_ID; +import static fr.insee.genesis.TestConstants.DEFAULT_QUESTIONNAIRE_ID; + class ResponseControllerTest { //Given static ResponseController responseControllerStatic; @@ -50,7 +53,7 @@ class ResponseControllerTest { static LunaticXmlPersistanceStub lunaticXmlPersistanceStub; static LunaticJsonPersistanceStub lunaticJsonPersistanceStub; - static List surveyUnitIdList; + static List interrogationIdList; //Constants static final String DEFAULT_ID_UE = "TESTIDUE"; static final String DEFAULT_ID_QUEST = "TESTIDQUESTIONNAIRE"; @@ -80,8 +83,8 @@ static void init() { , new AuthUtils(config) ); - surveyUnitIdList = new ArrayList<>(); - surveyUnitIdList.add(new SurveyUnitId(DEFAULT_ID_UE)); + interrogationIdList = new ArrayList<>(); + interrogationIdList.add(new InterrogationId(DEFAULT_INTERROGATION_ID)); } @BeforeEach @@ -208,21 +211,21 @@ void saveResponsesFromAllCampaignFoldersTests(){ //Gets @Test void findResponsesByUEAndQuestionnaireTest() { - ResponseEntity> response = responseControllerStatic.findResponsesByUEAndQuestionnaire(DEFAULT_ID_UE, DEFAULT_ID_QUEST); + ResponseEntity> response = responseControllerStatic.findResponsesByInterrogationAndQuestionnaire(DEFAULT_INTERROGATION_ID, DEFAULT_QUESTIONNAIRE_ID); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty(); - Assertions.assertThat(response.getBody().getFirst().getIdUE()).isEqualTo(DEFAULT_ID_UE); - Assertions.assertThat(response.getBody().getFirst().getIdQuest()).isEqualTo(DEFAULT_ID_QUEST); + Assertions.assertThat(response.getBody().getFirst().getInterrogationId()).isEqualTo(DEFAULT_INTERROGATION_ID); + Assertions.assertThat(response.getBody().getFirst().getQuestionnaireId()).isEqualTo(DEFAULT_QUESTIONNAIRE_ID); } @Test void findAllResponsesByQuestionnaireTest() { - Path path = Path.of(TestConstants.TEST_RESOURCES_DIRECTORY, "OUT", DEFAULT_ID_QUEST); + Path path = Path.of(TestConstants.TEST_RESOURCES_DIRECTORY, "OUT", DEFAULT_QUESTIONNAIRE_ID); File dir = new File(String.valueOf(path)); FileSystemUtils.deleteRecursively(dir); - ResponseEntity response = responseControllerStatic.findAllResponsesByQuestionnaire(DEFAULT_ID_QUEST); + ResponseEntity response = responseControllerStatic.findAllResponsesByQuestionnaire(DEFAULT_QUESTIONNAIRE_ID); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull(); @@ -240,14 +243,14 @@ void getAllResponsesByQuestionnaireTestSequential() throws IOException { surveyUnitPersistencePortStub.getMongoStub().clear(); for (int i = 0; i < Constants.BATCH_SIZE + 2; i++) { - Utils.addAdditionalDtoToMongoStub("TESTIDCAMPAIGN", DEFAULT_ID_UE + i, + Utils.addAdditionalDtoToMongoStub("TESTIDCAMPAIGN", DEFAULT_INTERROGATION_ID + i, LocalDateTime.of(2023, 1, 1, 0, 0, 0), LocalDateTime.of(2024, 1, 1, 0, 0, 0), surveyUnitPersistencePortStub); } //When - ResponseEntity response = responseControllerStatic.findAllResponsesByQuestionnaire(DEFAULT_ID_QUEST); + ResponseEntity response = responseControllerStatic.findAllResponsesByQuestionnaire(DEFAULT_QUESTIONNAIRE_ID); //Then Assertions.assertThat(response).isNotNull(); @@ -264,32 +267,32 @@ void getAllResponsesByQuestionnaireTestSequential() throws IOException { void getLatestByUETest() { Utils.addAdditionalDtoToMongoStub(surveyUnitPersistencePortStub); - ResponseEntity> response = responseControllerStatic.getLatestByUE(DEFAULT_ID_UE, DEFAULT_ID_QUEST); + ResponseEntity> response = responseControllerStatic.getLatestByInterrogation(DEFAULT_INTERROGATION_ID, DEFAULT_QUESTIONNAIRE_ID); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty(); - Assertions.assertThat(response.getBody().getFirst().getIdUE()).isEqualTo(DEFAULT_ID_UE); - Assertions.assertThat(response.getBody().getFirst().getIdQuest()).isEqualTo(DEFAULT_ID_QUEST); + Assertions.assertThat(response.getBody().getFirst().getInterrogationId()).isEqualTo(DEFAULT_INTERROGATION_ID); + Assertions.assertThat(response.getBody().getFirst().getQuestionnaireId()).isEqualTo(DEFAULT_QUESTIONNAIRE_ID); Assertions.assertThat(response.getBody().getFirst().getFileDate()).hasMonth(Month.FEBRUARY); } @Test void getLatestByUEOneObjectTest() { - ResponseEntity response = responseControllerStatic.getLatestByUEOneObject(DEFAULT_ID_UE, DEFAULT_ID_QUEST, Mode.WEB); + ResponseEntity response = responseControllerStatic.getLatestByInterrogationOneObject(DEFAULT_INTERROGATION_ID, DEFAULT_QUESTIONNAIRE_ID, Mode.WEB); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull(); - Assertions.assertThat(response.getBody().getIdUE()).isEqualTo(DEFAULT_ID_UE); - Assertions.assertThat(response.getBody().getIdQuest()).isEqualTo(DEFAULT_ID_QUEST); + Assertions.assertThat(response.getBody().getInterrogationId()).isEqualTo(DEFAULT_INTERROGATION_ID); + Assertions.assertThat(response.getBody().getQuestionnaireId()).isEqualTo(DEFAULT_QUESTIONNAIRE_ID); } @Test void getLatestForUEListTest() { - ResponseEntity> response = responseControllerStatic.getLatestForUEList(DEFAULT_ID_QUEST, surveyUnitIdList); + ResponseEntity> response = responseControllerStatic.getLatestForInterrogationList(DEFAULT_QUESTIONNAIRE_ID, interrogationIdList); Assertions.assertThat(response.getStatusCode().is2xxSuccessful()).isTrue(); Assertions.assertThat(response.getBody()).isNotNull().isNotEmpty(); - Assertions.assertThat(response.getBody().getFirst().getIdUE()).isEqualTo(DEFAULT_ID_UE); + Assertions.assertThat(response.getBody().getFirst().getInterrogationId()).isEqualTo(DEFAULT_INTERROGATION_ID); } // Perret tests @@ -326,17 +329,17 @@ void getLatestByStatesSurveyDataTest(){ //WHEN - ResponseEntity response = responseControllerStatic.findResponsesByUEAndQuestionnaireLatestStates( - DEFAULT_ID_UE, - DEFAULT_ID_QUEST + ResponseEntity response = responseControllerStatic.findResponsesByInterrogationAndQuestionnaireLatestStates( + DEFAULT_INTERROGATION_ID, + DEFAULT_QUESTIONNAIRE_ID ); //THEN - SurveyUnitDto surveyUnitDto = response.getBody(); + SurveyUnitQualityToolDto surveyUnitDto = response.getBody(); Assertions.assertThat(surveyUnitDto).isNotNull(); - Assertions.assertThat(surveyUnitDto.getSurveyUnitId()).isEqualTo(DEFAULT_ID_UE); + Assertions.assertThat(surveyUnitDto.getSurveyUnitId()).isEqualTo(DEFAULT_INTERROGATION_ID); Assertions.assertThat(surveyUnitDto.getCollectedVariables().getFirst().getVariableName()) .isEqualTo("TESTIDVAR"); @@ -392,14 +395,14 @@ void saveEditedTest() { surveyUnitPersistencePortStub.getMongoStub().clear(); String campaignId = ID_CAMPAIGN_WITH_DDI; String idQuest = ID_QUEST_WITH_DDI; - String idVar = "PRENOM_C"; - String idLoop = "BOUCLE_VAL_ANNAISS_1"; + String varId = "PRENOM_C"; + String loopId = "B_PRENOMREP"; String editedValue = "TESTPRENOMEDITED"; List newVariables = new ArrayList<>(); VariableInputDto variableInputDto = VariableInputDto.builder() - .variableName(idVar) - .idLoop(idLoop) + .variableName(varId) + .iteration(1) .build(); variableInputDto.setVariableStateInputDto(VariableStateInputDto.builder() @@ -423,8 +426,8 @@ void saveEditedTest() { //THEN Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub()).hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getIdCampaign()).isEqualTo(campaignId); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getIdQuest()).isEqualTo(idQuest); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCampaignId()).isEqualTo(campaignId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getQuestionnaireId()).isEqualTo(idQuest); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getMode()).isEqualTo(Mode.WEB); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getState()).isEqualTo(DataState.EDITED); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getFileDate()).isNull(); @@ -432,11 +435,10 @@ void saveEditedTest() { Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getExternalVariables()).isEmpty(); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables()).hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().idVar()).isEqualTo(idVar); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().idLoop()).isEqualTo(idLoop); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().idParent()).isEqualTo(Constants.ROOT_GROUP_NAME); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().values()).hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().values().getFirst()).isEqualTo(editedValue); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().varId()).isEqualTo(varId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().scope()).isEqualTo(loopId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().parentId()).isEqualTo(Constants.ROOT_GROUP_NAME); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().value()).isEqualTo(editedValue); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getModifiedBy()).isNull(); } @@ -447,16 +449,16 @@ void saveEditedTest_DocumentEdited() { surveyUnitPersistencePortStub.getMongoStub().clear(); String campaignId = ID_CAMPAIGN_WITH_DDI; String idQuest = ID_QUEST_WITH_DDI; - String idVar = "PRENOM_C"; - String idVar2 = "NB_SOEURS"; - String idLoop = "BOUCLE_VAL_ANNAISS_1"; + String varId = "PRENOM_C"; + String varId2 = "NB_SOEURS"; + String loopId = "B_PRENOMREP"; String editedValue = "NOT A INT"; //Variable 1 List newVariables = new ArrayList<>(); VariableInputDto variableInputDto = VariableInputDto.builder() - .variableName(idVar) - .idLoop(idLoop) + .variableName(varId) + .iteration(1) .variableStateInputDto(VariableStateInputDto.builder() .state(DataState.EDITED) .value(editedValue) @@ -466,8 +468,8 @@ void saveEditedTest_DocumentEdited() { //Variable 2 VariableInputDto variableInputDto2 = VariableInputDto.builder() - .variableName(idVar2) - .idLoop(idLoop) + .variableName(varId2) + .iteration(1) .variableStateInputDto(VariableStateInputDto.builder() .state(DataState.EDITED) .value(editedValue) @@ -489,8 +491,8 @@ void saveEditedTest_DocumentEdited() { //THEN //EDITED document assertions Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub()).hasSize(2); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getIdCampaign()).isEqualTo(campaignId); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getIdQuest()).isEqualTo(idQuest); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCampaignId()).isEqualTo(campaignId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getQuestionnaireId()).isEqualTo(idQuest); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getState()).isEqualTo(DataState.EDITED); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getMode()).isEqualTo(Mode.WEB); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getFileDate()).isNull(); @@ -498,11 +500,10 @@ void saveEditedTest_DocumentEdited() { Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getExternalVariables()).isEmpty(); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables()).hasSize(2); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().idVar()).isEqualTo(idVar); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().idLoop()).isEqualTo(idLoop); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().idParent()).isEqualTo(Constants.ROOT_GROUP_NAME); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().values()).hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().values().getFirst()).isEqualTo(editedValue); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().varId()).isEqualTo(varId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().scope()).isEqualTo(loopId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().parentId()).isEqualTo(Constants.ROOT_GROUP_NAME); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getCollectedVariables().getFirst().value()).isEqualTo(editedValue); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getFirst().getModifiedBy()).isNull(); } @@ -512,16 +513,16 @@ void saveEditedTest_DocumentForced() { surveyUnitPersistencePortStub.getMongoStub().clear(); String campaignId = ID_CAMPAIGN_WITH_DDI; String idQuest = ID_QUEST_WITH_DDI; - String idVar = "PRENOM_C"; - String idVar2 = "NB_SOEURS"; - String idLoop = "BOUCLE_VAL_ANNAISS_1"; + String varId = "PRENOM_C"; + String varId2 = "NB_SOEURS"; + String loopId = "B_PRENOMREP"; String editedValue = "NOT A INT"; //Variable 1 List newVariables = new ArrayList<>(); VariableInputDto variableInputDto = VariableInputDto.builder() - .variableName(idVar) - .idLoop(idLoop) + .variableName(varId) + .iteration(1) .variableStateInputDto(VariableStateInputDto.builder() .state(DataState.EDITED) .value(editedValue) @@ -531,8 +532,8 @@ void saveEditedTest_DocumentForced() { //Variable 2 VariableInputDto variableInputDto2 = VariableInputDto.builder() - .variableName(idVar2) - .idLoop(idLoop) + .variableName(varId2) + .iteration(1) .variableStateInputDto(VariableStateInputDto.builder() .state(DataState.EDITED) .value(editedValue) @@ -555,8 +556,8 @@ void saveEditedTest_DocumentForced() { Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub()).hasSize(2); //FORCED document assertions - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getIdCampaign()).isEqualTo(campaignId); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getIdQuest()).isEqualTo(idQuest); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCampaignId()).isEqualTo(campaignId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getQuestionnaireId()).isEqualTo(idQuest); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getState()).isEqualTo(DataState.FORCED); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getMode()).isEqualTo(Mode.WEB); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getFileDate()).isNull(); @@ -564,11 +565,10 @@ void saveEditedTest_DocumentForced() { Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getExternalVariables()).isEmpty(); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables()).hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().idVar()).isEqualTo(idVar2); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().idLoop()).isEqualTo(idLoop); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().idParent()).isEqualTo(Constants.ROOT_GROUP_NAME); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().values()).hasSize(1); - Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().values().getFirst()).isNotNull().isEmpty(); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().varId()).isEqualTo(varId2); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().scope()).isEqualTo(loopId); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().parentId()).isEqualTo(Constants.ROOT_GROUP_NAME); + Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getCollectedVariables().getFirst().value()).isNotNull().isEmpty(); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub().getLast().getModifiedBy()).isNull(); } @Test @@ -576,15 +576,14 @@ void saveEditedTest_No_Metadata_Error() { //GIVEN surveyUnitPersistencePortStub.getMongoStub().clear(); String campaignId = "TEST"; - String idVar = "PRENOM_C"; - String idLoop = "BOUCLE_VAL_ANNAISS_1"; + String varId = "PRENOM_C"; String editedValue = "TESTVALUE"; //Variable 1 List newVariables = new ArrayList<>(); VariableInputDto variableInputDto = VariableInputDto.builder() - .variableName(idVar) - .idLoop(idLoop) + .variableName(varId) + .iteration(1) .variableStateInputDto(VariableStateInputDto.builder() .state(DataState.EDITED) .value(editedValue) @@ -611,19 +610,18 @@ void saveEditedTest_No_Metadata_Error() { void saveTest_With_Collected_State_Error(){ //GIVEN surveyUnitPersistencePortStub.getMongoStub().clear(); - String idVar = "PRENOM_C"; - String idLoop = "BOUCLE_VAL_ANNAISS_1"; + String varId = "PRENOM_C"; String editedValue = "TESTVALUE"; //Variable 1 List newVariables = new ArrayList<>(); VariableInputDto variableInputDto = VariableInputDto.builder() - .variableName(idVar) - .idLoop(idLoop) + .variableName(varId) .variableStateInputDto(VariableStateInputDto.builder() .state(DataState.COLLECTED) //Collected instead of EDITED .value(editedValue) .build()) + .iteration(1) .build(); newVariables.add(variableInputDto); diff --git a/src/test/java/fr/insee/genesis/controller/rest/responses/Utils.java b/src/test/java/fr/insee/genesis/controller/rest/responses/Utils.java index e3681493..b96fcab6 100644 --- a/src/test/java/fr/insee/genesis/controller/rest/responses/Utils.java +++ b/src/test/java/fr/insee/genesis/controller/rest/responses/Utils.java @@ -184,25 +184,42 @@ static void addAdditionalDtoToMongoStub(String idCampaign, String idQuestionnair LocalDateTime fileDate, LocalDateTime recordDate, SurveyUnitPersistencePortStub surveyUnitPersistencePortStub) { List externalVariableList = new ArrayList<>(); - VariableModel externalVariable = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel externalVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(externalVariable); + externalVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(externalVariable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariable); + collectedVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); - - collectedVariableList.add(collectedVariable); SurveyUnitModel recentDTO = SurveyUnitModel.builder() - .idCampaign(idCampaign) + .campaignId(idCampaign) .mode(Mode.WEB) - .idUE(defaultIdUE) - .idQuest(idQuestionnaire) + .interrogationId(defaultIdUE) + .questionnaireId(idQuestionnaire) .state(DataState.COLLECTED) .fileDate(fileDate) .recordDate(recordDate) @@ -221,24 +238,29 @@ static void addAdditionalDtoToMongoStub(DataState state, LocalDateTime recordDate, SurveyUnitPersistencePortStub surveyUnitPersistencePortStub) { List externalVariableList = new ArrayList<>(); - VariableModel variable = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{externalVariableValue})).build(); + VariableModel variable = VariableModel.builder() + .varId("TESTIDVAR") + .value(externalVariableValue) + .iteration(1) + .build(); externalVariableList.add(variable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{collectedVariableValue})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value(collectedVariableValue) + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") .build(); collectedVariableList.add(collectedVariable); SurveyUnitModel recentDTO = SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE(defaultIdUE) - .idQuest(defaultIdQuest) + .interrogationId(defaultIdUE) + .questionnaireId(defaultIdQuest) .state(state) .fileDate(fileDate) .recordDate(recordDate) diff --git a/src/test/java/fr/insee/genesis/controller/utils/DataVerifierTest.java b/src/test/java/fr/insee/genesis/controller/utils/DataVerifierTest.java deleted file mode 100644 index de6f3006..00000000 --- a/src/test/java/fr/insee/genesis/controller/utils/DataVerifierTest.java +++ /dev/null @@ -1,332 +0,0 @@ -package fr.insee.genesis.controller.utils; - - -import fr.insee.bpm.metadata.model.MetadataModel; -import fr.insee.bpm.metadata.model.VariableType; -import fr.insee.bpm.metadata.model.VariablesMap; -import fr.insee.genesis.domain.model.surveyunit.DataState; -import fr.insee.genesis.domain.model.surveyunit.Mode; -import fr.insee.genesis.domain.model.surveyunit.SurveyUnitModel; -import fr.insee.genesis.domain.model.surveyunit.VariableModel; -import fr.insee.genesis.domain.utils.DataVerifier; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; - -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; - -import static org.assertj.core.api.Assertions.assertThat; - -class DataVerifierTest { - static List testSurveyUnitModels = new ArrayList<>(); - static MetadataModel metadataModel; - - // Given - @BeforeAll - static void setUp() { - //Variable definitions - metadataModel = new MetadataModel(); - - //Invalid Collected Variables only - //1 Variable 1 State 1 Value - createCase(1,1,1,true,false,"TestUE1", testSurveyUnitModels,metadataModel.getVariables()); - - //1 Variable 1 State 2 Values - createCase(1,1,2,true,false,"TestUE2", testSurveyUnitModels,metadataModel.getVariables()); - - //1 Variable 2 States 1 Value - createCase(1,2,1,true,false,"TestUE3", testSurveyUnitModels,metadataModel.getVariables()); - - //1 Variable 2 States 2 Values - createCase(1,2,2,true,false,"TestUE4", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 1 State 1 Value - createCase(2,1,1,true,false,"TestUE5", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 1 State 2 Values - createCase(2,1,2,true,false,"TestUE6", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 2 States 1 Value - createCase(2,2,1,true,false,"TestUE7", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 2 State 2 Value - createCase(2,2,2,true,false,"TestUE8", testSurveyUnitModels,metadataModel.getVariables()); - - - //With invalid ExternalVariables - createCase(1,1,1,true,true,"TestUE9", testSurveyUnitModels,metadataModel.getVariables()); - - //1 Variable 1 State 2 Values - createCase(1,1,2,true,true,"TestUE10", testSurveyUnitModels,metadataModel.getVariables()); - - //1 Variable 2 States 1 Value - createCase(1,2,1,true,true,"TestUE11", testSurveyUnitModels,metadataModel.getVariables()); - - //1 Variable 2 States 2 Values - createCase(1,2,2,true,true,"TestUE12", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 1 State 1 Value - createCase(2,1,1,true,true,"TestUE13", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 1 State 2 Values - createCase(2,1,2,true,true,"TestUE14", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 2 States 1 Value - createCase(2,2,1,true,true,"TestUE15", testSurveyUnitModels,metadataModel.getVariables()); - - //2 Variables 2 State 2 Value - createCase(2,2,2,true,true,"TestUE16", testSurveyUnitModels,metadataModel.getVariables()); - - - //Valid variables only - createCase(1,1,1,false,true,"TestUE17", testSurveyUnitModels,metadataModel.getVariables()); - createCase(2,2,2,false,true,"TestUE18", testSurveyUnitModels,metadataModel.getVariables()); - - //Manual modifications - //Valid 2nd variable on 5th and 13th case - SurveyUnitModel suDto = testSurveyUnitModels.stream().filter(surveyUnitDto -> - surveyUnitDto.getIdUE().equals("TestUE5") - ).toList().getFirst(); - - suDto.getCollectedVariables().get(1).values().set(0,"1"); - - suDto = testSurveyUnitModels.stream().filter(surveyUnitDto -> - surveyUnitDto.getIdUE().equals("TestUE13") - ).toList().getFirst(); - - suDto.getCollectedVariables().get(1).values().set(0,"1"); - suDto.getExternalVariables().get(1).values().set(0,"1"); - - - //Valid EDITED variables on 3rd and 7th case for priority test - SurveyUnitModel suDtoEdited = testSurveyUnitModels.stream().filter(surveyUnitDto -> - surveyUnitDto.getIdUE().equals("TestUE3") - && surveyUnitDto.getState().equals(DataState.EDITED) - ).toList().getFirst(); - - suDtoEdited.getCollectedVariables().getFirst().values().set(0,"1"); - - suDtoEdited = testSurveyUnitModels.stream().filter(surveyUnitDto -> - surveyUnitDto.getIdUE().equals("TestUE7") - && surveyUnitDto.getState().equals(DataState.EDITED) - ).toList().getFirst(); - - suDtoEdited.getCollectedVariables().get(0).values().set(0,"1"); - suDtoEdited.getCollectedVariables().get(1).values().set(0,"1"); - - //Remove EDITED variable on 8th case - suDtoEdited = testSurveyUnitModels.stream().filter(surveyUnitDto -> - surveyUnitDto.getIdUE().equals("TestUE8") - && surveyUnitDto.getState().equals(DataState.EDITED) - ).toList().getFirst(); - - suDtoEdited.getCollectedVariables().remove(1); - - //When - DataVerifier.verifySurveyUnits(testSurveyUnitModels,metadataModel.getVariables()); - } - - private static void createCase(int variableNumber, int stateNumber, int valueNumber, boolean hasIncorrectValues, boolean hasExternalVariables, String idUE, List testSurveyUnitModels, VariablesMap variablesMap) { - for(int stateIndex = 0; stateIndex < stateNumber; stateIndex++){ - List collectedVariables = new ArrayList<>(); - List externalVariables = new ArrayList<>(); - - for(int variableIndex = 0; variableIndex < variableNumber; variableIndex++){ - List values = new ArrayList<>(); - - if(!variablesMap.hasVariable("testInteger" + variableIndex)) { - fr.insee.bpm.metadata.model.Variable varTest = new fr.insee.bpm.metadata.model.Variable("testInteger" + variableIndex, metadataModel.getRootGroup(), VariableType.INTEGER, "10"); - variablesMap.putVariable(varTest); - } - - for(int valueIndex = 0; valueIndex < valueNumber; valueIndex++){ - values.add(hasIncorrectValues - && valueIndex % 2 == 0 // Only 1 wrong value if multiple - ? "?" : String.valueOf(valueIndex + 1)); - } - - collectedVariables.add(VariableModel.builder() - .idVar("testInteger" + variableIndex) - .values(new ArrayList<>(values)) - .build() - ); - - if(hasExternalVariables){ - externalVariables.add(VariableModel.builder() - .idVar("testInteger" + variableIndex) - .values(new ArrayList<>(values)) - .build() - ); - } - } - - SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder() - .idQuest("IdQuest1") - .idCampaign("IdCampaign1") - .idUE(idUE) - .state(stateIndex % 2 == 0 ? DataState.COLLECTED : DataState.EDITED) - .mode(Mode.WEB) - .recordDate(LocalDateTime.now()) - .collectedVariables(new ArrayList<>(collectedVariables)) - .externalVariables(new ArrayList<>(externalVariables)) - .build(); - - collectedVariables.clear(); - externalVariables.clear(); - - testSurveyUnitModels.add(surveyUnitModel); - } - } - - //Then - //Assertions - private void assertForcedExistence(List testSurveyUnitModels, String idUE, boolean hasToExist) { - if(hasToExist) - assertThat(testSurveyUnitModels).filteredOn(surveyUnit -> - surveyUnit.getIdUE().equals(idUE) - && surveyUnit.getState() == DataState.FORCED) - .hasSize(1); - else - assertThat(testSurveyUnitModels).filteredOn(surveyUnit -> - surveyUnit.getIdUE().equals(idUE) - && surveyUnit.getState() == DataState.FORCED) - .isEmpty(); - } - - private void assertCollectedVariableContent(List testSurveyUnitModels, String idUE, String variableName, int valueIndex, String expectedContent) { - assertForcedExistence(testSurveyUnitModels,idUE,true); - - Optional suDtoOpt = testSurveyUnitModels.stream().filter(surveyUnit -> - surveyUnit.getIdUE().equals(idUE) - && surveyUnit.getState() == DataState.FORCED).findFirst(); - - assertThat(suDtoOpt).isPresent(); - - - SurveyUnitModel suDto = suDtoOpt.get(); - - assertThat(suDto.getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals(variableName) - )).isNotEmpty(); - - assertThat(suDto.getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals(variableName) - ).findFirst()).isPresent(); - - assertThat(suDto.getCollectedVariables().stream().filter(collectedVariableDto -> - collectedVariableDto.idVar().equals(variableName) - ).findFirst().get().values().get(valueIndex)).isEqualTo(expectedContent); - } - - private void assertForcedCollectedVariableExistence(List testSurveyUnitModels, String idUE, String variableName, boolean hasToExist) { - assertForcedExistence(testSurveyUnitModels,idUE, true); - Optional suDtoOpt = testSurveyUnitModels.stream().filter(surveyUnit -> - surveyUnit.getIdUE().equals(idUE) - && surveyUnit.getState() == DataState.FORCED).findFirst(); - assertThat(suDtoOpt).isPresent(); - - SurveyUnitModel suDto = suDtoOpt.get(); - - if(hasToExist) - assertThat(suDto.getCollectedVariables().stream().filter(collectedVariableDto -> collectedVariableDto.idVar().equals(variableName)).toList()).isNotEmpty(); - else - assertThat(suDto.getCollectedVariables().stream().filter(collectedVariableDto -> collectedVariableDto.idVar().equals(variableName)).toList()).isEmpty(); - } - - private void assertForcedExternalVariableExistence(List testSurveyUnitModels, String idUE, String variableName, boolean hasToExist) { - assertForcedExistence(testSurveyUnitModels,idUE, true); - Optional suDtoOpt = testSurveyUnitModels.stream().filter(surveyUnit -> - surveyUnit.getIdUE().equals(idUE) - && surveyUnit.getState() == DataState.FORCED).findFirst(); - assertThat(suDtoOpt).isPresent(); - - SurveyUnitModel suDto = suDtoOpt.get(); - - if(hasToExist) - assertThat(suDto.getExternalVariables().stream().filter(variableDto -> variableDto.idVar().equals(variableName)).toList()).isNotEmpty(); - else - assertThat(suDto.getExternalVariables().stream().filter(variableDto -> variableDto.idVar().equals(variableName)).toList()).isEmpty(); - } - - private void assertExternalVariableContent(List testSurveyUnitModels, String idUE, String variableName, int valueIndex, String expectedContent) { - assertForcedExistence(testSurveyUnitModels,idUE,true); - - Optional suDtoOpt = testSurveyUnitModels.stream().filter(surveyUnit -> - surveyUnit.getIdUE().equals(idUE) - && surveyUnit.getState() == DataState.FORCED).findFirst(); - - assertThat(suDtoOpt).isPresent(); - - - SurveyUnitModel suDto = suDtoOpt.get(); - - assertThat(suDto.getExternalVariables().stream().filter(variableDto -> - variableDto.idVar().equals(variableName) - )).isNotEmpty(); - - assertThat(suDto.getExternalVariables().stream().filter(variableDto -> - variableDto.idVar().equals(variableName) - ).findFirst()).isPresent(); - - assertThat(suDto.getExternalVariables().stream().filter(variableDto -> - variableDto.idVar().equals(variableName) - ).findFirst().get().values().get(valueIndex)).isEqualTo(expectedContent); - } - - //Tests - @Test - @DisplayName("If there is invalid values, there must be one FORCED document") - void forcedExistenceTest(){ - assertForcedExistence(testSurveyUnitModels, "TestUE1", true); - } - - @Test - @DisplayName("If there is no invalid values, there must be one FORCED document") - void forcedNoExistenceTest(){ - assertForcedExistence(testSurveyUnitModels, "TestUE17", false); - } - - @Test - @DisplayName("The invalid values must be replaced by empty string") - void invalidValueReplaceTest(){ - assertCollectedVariableContent(testSurveyUnitModels,"TestUE1","testInteger0",0,""); - assertCollectedVariableContent(testSurveyUnitModels,"TestUE2","testInteger0",0,""); - assertCollectedVariableContent(testSurveyUnitModels,"TestUE6","testInteger0",0,""); - - assertExternalVariableContent(testSurveyUnitModels,"TestUE9","testInteger0",0,""); - assertExternalVariableContent(testSurveyUnitModels,"TestUE10","testInteger0",0,""); - assertExternalVariableContent(testSurveyUnitModels,"TestUE14","testInteger0",0,""); - - } - - @Test - @DisplayName("The FORCED document must contain only the invalid variables") - void variableCountTest(){ - //Collected - //5 à 8 - assertForcedCollectedVariableExistence(testSurveyUnitModels, "TestUE5", "testInteger0", true); - assertForcedCollectedVariableExistence(testSurveyUnitModels, "TestUE5", "testInteger1", false); - - //External - //13 à 16 - assertForcedExternalVariableExistence(testSurveyUnitModels, "TestUE13", "testInteger0", true); - assertForcedExternalVariableExistence(testSurveyUnitModels, "TestUE13", "testInteger1", false); - } - - @Test - @DisplayName("The dataverifier must verify only the most priority variables") - void priorityTest(){ - assertForcedExistence(testSurveyUnitModels, "TestUE3",false); - assertForcedExistence(testSurveyUnitModels, "TestUE7",false); - } - - @Test - @DisplayName("If a variable is absent in more priority variable but invalid in less priority," + - "the variable must be present in FORCED") - void priorityVariableAbsenceTest(){ - assertForcedCollectedVariableExistence(testSurveyUnitModels,"TestUE8","testInteger1",true); - } -} diff --git a/src/test/java/fr/insee/genesis/controller/utils/LoopIdentifierTest.java b/src/test/java/fr/insee/genesis/controller/utils/LoopIdentifierTest.java index 42175d75..c4e2da6e 100644 --- a/src/test/java/fr/insee/genesis/controller/utils/LoopIdentifierTest.java +++ b/src/test/java/fr/insee/genesis/controller/utils/LoopIdentifierTest.java @@ -29,24 +29,24 @@ void setUp() { } @Test - @DisplayName("Should return _2") + @DisplayName("Should return ") void test01() { //When + Then - Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var1", metadataModel.getVariables(), 2)).isEqualTo(String.format("%s_2",LOOP_NAME)); + Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var1", metadataModel.getVariables())).isEqualTo(LOOP_NAME); } @Test @DisplayName("Should return the root group name") void test02() { //When + Then - Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var2", metadataModel.getVariables(), 1)).isEqualTo(Constants.ROOT_GROUP_NAME); + Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var2", metadataModel.getVariables())).isEqualTo(Constants.ROOT_GROUP_NAME); } @Test @DisplayName("Should return the root group name if the variable is not present in the variables map") void test03(){ //When + Then - Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var3", metadataModel.getVariables(), 2)).isEqualTo(Constants.ROOT_GROUP_NAME); + Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var3", metadataModel.getVariables())).isEqualTo(Constants.ROOT_GROUP_NAME); } @Test @@ -67,7 +67,7 @@ void test05(){ @DisplayName("Should return var1 group if missing suffix") void test06(){ //When + Then - Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var1_MISSING", metadataModel.getVariables(),1)).isEqualTo(LOOP_NAME); + Assertions.assertThat(LoopIdentifier.getLoopIdentifier("var1_MISSING", metadataModel.getVariables())).isEqualTo(LOOP_NAME); } @Test @@ -81,7 +81,7 @@ void test07(){ @DisplayName("Should return var1 group if filter result prefix") void test08(){ //When + Then - Assertions.assertThat(LoopIdentifier.getLoopIdentifier("FILTER_RESULT_var1", metadataModel.getVariables(),1)).isEqualTo(LOOP_NAME); + Assertions.assertThat(LoopIdentifier.getLoopIdentifier("FILTER_RESULT_var1", metadataModel.getVariables())).isEqualTo(LOOP_NAME); } @Test diff --git a/src/test/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModelTest.java b/src/test/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModelTest.java deleted file mode 100644 index 6daa991f..00000000 --- a/src/test/java/fr/insee/genesis/domain/model/surveyunit/SurveyUnitModelTest.java +++ /dev/null @@ -1,54 +0,0 @@ -package fr.insee.genesis.domain.model.surveyunit; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.Test; -import org.junit.jupiter.api.Assertions; - -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -public class SurveyUnitModelTest { - @Test - public void toJSONTest() throws JsonProcessingException { - List externalVariableList = new ArrayList<>(); - VariableModel externalVariable = VariableModel.builder() - .idVar("TESTIDVAREXT") - .values(List.of(new String[]{"V1","V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") - .build(); - externalVariableList.add(externalVariable); - - List collectedVariableList = new ArrayList<>(); - VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1","V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") - .build(); - collectedVariableList.add(collectedVariable); - - SurveyUnitModel surveyUnitModel = SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") - .idQuest("TESTIDQUEST") - .idUE("TESTIDUE") - .mode(Mode.WEB) - .state(DataState.COLLECTED) - .fileDate(LocalDateTime.of(2000,1,1,0,0,0)) - .recordDate(LocalDateTime.of(2000,1,1,0,0,0)) - .collectedVariables(collectedVariableList) - .externalVariables(externalVariableList) - .build(); - - Assertions.assertNotNull(surveyUnitModel); - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.findAndRegisterModules(); - Assertions.assertEquals( - objectMapper.readTree("{\"idQuest\":\"TESTIDQUEST\",\"idCampaign\":\"TESTIDCAMPAIGN\",\"idUE\":\"TESTIDUE\",\"state\":\"COLLECTED\",\"mode\":\"WEB\",\"recordDate\":\"2000-01-01T12:00\",\"fileDate\":\"2000-01-01T12:00\",\"collectedVariables\":[{\"idVar\":\"TESTIDVAR\",\"values\":[\"V1\",\"V2\"],\"idLoop\":\"TESTIDLOOP\",\"idParent\":\"TESTIDPARENT\"}],\"externalVariables\":[{\"idVar\":\"TESTIDVAREXT\",\"values\":[\"V1\",\"V2\"],\"idLoop\":\"TESTIDLOOP\",\"idParent\":\"TESTIDPARENT\"}],\"modifiedBy\": null}"), - objectMapper.readTree(objectMapper.writeValueAsString(surveyUnitModel)) - ); - } - -} diff --git a/src/test/java/fr/insee/genesis/domain/model/surveyunit/VariableModelTest.java b/src/test/java/fr/insee/genesis/domain/model/surveyunit/VariableModelTest.java deleted file mode 100644 index 37c67adb..00000000 --- a/src/test/java/fr/insee/genesis/domain/model/surveyunit/VariableModelTest.java +++ /dev/null @@ -1,27 +0,0 @@ -package fr.insee.genesis.domain.model.surveyunit; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import java.util.ArrayList; -import java.util.List; - -class VariableModelTest { - @Test - void toJSONTest() throws JsonProcessingException { - VariableModel variable = VariableModel.builder() - .idVar("TESTIDVAR") - .idParent("TESTIDPARENT") - .idLoop("TESTIDLOOP") - .values(new ArrayList<>(List.of(new String[]{"V1", "V2"}))) - .build(); - - ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.findAndRegisterModules(); - - Assertions.assertEquals(objectMapper.readTree(objectMapper.writeValueAsString(variable)), - objectMapper.readTree("{\"values\":[\"V1\",\"V2\"],\"idVar\":\"TESTIDVAR\",\"idLoop\":\"TESTIDLOOP\",\"idParent\":\"TESTIDPARENT\"}")); - } -} \ No newline at end of file diff --git a/src/test/java/fr/insee/genesis/domain/service/SurveyUnitServiceTest.java b/src/test/java/fr/insee/genesis/domain/service/SurveyUnitServiceTest.java index 82fa9cf4..8e8cb14a 100644 --- a/src/test/java/fr/insee/genesis/domain/service/SurveyUnitServiceTest.java +++ b/src/test/java/fr/insee/genesis/domain/service/SurveyUnitServiceTest.java @@ -43,25 +43,40 @@ void reset(){ surveyUnitPersistencePortStub.getMongoStub().clear(); List externalVariableList = new ArrayList<>(); VariableModel variable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})).build(); + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(variable); + variable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(variable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariable); + collectedVariable = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); - - collectedVariableList.add(collectedVariable); surveyUnitPersistencePortStub.getMongoStub().add(SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE(DEFAULT_ID_UE) - .idQuest(DEFAULT_ID_QUEST) + .interrogationId(DEFAULT_ID_UE) + .questionnaireId(DEFAULT_ID_QUEST) .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023,1,1,0,0,0)) .recordDate(LocalDateTime.of(2024,1,1,0,0,0)) @@ -78,26 +93,43 @@ void saveAllTest(){ List externalVariableList = new ArrayList<>(); VariableModel externalVariableModel = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})).build(); + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(externalVariableModel); + externalVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(externalVariableModel); + List collectedVariableList = new ArrayList<>(); VariableModel collectedVariableModel = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariableModel); + collectedVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); - collectedVariableList.add(collectedVariableModel); newSurveyUnitModelList.add( SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE("TESTIDUE2") - .idQuest(DEFAULT_ID_QUEST) + .interrogationId("TESTIDUE2") + .questionnaireId(DEFAULT_ID_QUEST) .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023,1,1,0,0,0)) .recordDate(LocalDateTime.of(2024,1,1,0,0,0)) @@ -109,45 +141,47 @@ void saveAllTest(){ surveyUnitServiceStatic.saveSurveyUnits(newSurveyUnitModelList); Assertions.assertThat(surveyUnitPersistencePortStub.getMongoStub()).filteredOn(surveyUnitModel -> - surveyUnitModel.getIdCampaign().equals("TESTIDCAMPAIGN") + surveyUnitModel.getCampaignId().equals("TESTIDCAMPAIGN") && surveyUnitModel.getMode().equals(Mode.WEB) - && surveyUnitModel.getIdUE().equals("TESTIDUE2") - && surveyUnitModel.getIdQuest().equals(DEFAULT_ID_QUEST) + && surveyUnitModel.getInterrogationId().equals("TESTIDUE2") + && surveyUnitModel.getQuestionnaireId().equals(DEFAULT_ID_QUEST) && surveyUnitModel.getState().equals(DataState.COLLECTED) && surveyUnitModel.getFileDate().equals(LocalDateTime.of(2023,1,1,0,0,0)) && surveyUnitModel.getRecordDate().equals(LocalDateTime.of(2024,1,1,0,0,0)) && !surveyUnitModel.getExternalVariables().stream().filter( - externalVariable -> externalVariable.idVar().equals("TESTIDVAR") - && externalVariable.values().containsAll(List.of(new String[]{"V1", "V2"})) + externalVariable -> externalVariable.varId().equals("TESTIDVAR") + && externalVariable.iteration().equals(1) + && externalVariable.value().equals("V1") ).toList().isEmpty() && !surveyUnitModel.getCollectedVariables().stream().filter( - collectedVariable -> collectedVariable.idVar().equals("TESTIDVAR") - && collectedVariable.values().containsAll(List.of(new String[]{"V1", "V2"})) + collectedVariable -> collectedVariable.varId().equals("TESTIDVAR") + && collectedVariable.iteration().equals(2) + && collectedVariable.value().equals("V2") ).toList().isEmpty() ).isNotEmpty(); } @Test void findByIdsUEAndQuestionnaireTest(){ - Assertions.assertThat(surveyUnitServiceStatic.findByIdsUEAndQuestionnaire(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( + Assertions.assertThat(surveyUnitServiceStatic.findByIdsInterrogationAndQuestionnaire(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( surveyUnitDto -> - surveyUnitDto.getIdUE().equals(DEFAULT_ID_UE) - && surveyUnitDto.getIdQuest().equals(DEFAULT_ID_QUEST) + surveyUnitDto.getInterrogationId().equals(DEFAULT_ID_UE) + && surveyUnitDto.getQuestionnaireId().equals(DEFAULT_ID_QUEST) ).isNotEmpty(); } @Test void findByIdUETest(){ - Assertions.assertThat(surveyUnitServiceStatic.findByIdUE(DEFAULT_ID_UE)).filteredOn( + Assertions.assertThat(surveyUnitServiceStatic.findByInterrogationId(DEFAULT_ID_UE)).filteredOn( surveyUnitDto -> - surveyUnitDto.getIdUE().equals(DEFAULT_ID_UE) + surveyUnitDto.getInterrogationId().equals(DEFAULT_ID_UE) ).isNotEmpty(); } @Test void findByIdQuestionnaireTest(){ - Assertions.assertThat(surveyUnitServiceStatic.findByIdQuestionnaire(DEFAULT_ID_QUEST)).filteredOn( - surveyUnitDto -> surveyUnitDto.getIdQuest().equals(DEFAULT_ID_QUEST) + Assertions.assertThat(surveyUnitServiceStatic.findByQuestionnaireId(DEFAULT_ID_QUEST)).filteredOn( + surveyUnitDto -> surveyUnitDto.getQuestionnaireId().equals(DEFAULT_ID_QUEST) ).isNotEmpty(); } @@ -155,9 +189,9 @@ void findByIdQuestionnaireTest(){ void findLatestByIdAndByModeTest(){ addAdditionnalDtoToMongoStub(); - Assertions.assertThat(surveyUnitServiceStatic.findLatestByIdAndByIdQuestionnaire(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( - surveyUnitDto -> surveyUnitDto.getIdUE().equals(DEFAULT_ID_UE) - && surveyUnitDto.getIdQuest().equals(DEFAULT_ID_QUEST) + Assertions.assertThat(surveyUnitServiceStatic.findLatestByIdAndByQuestionnaireId(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( + surveyUnitDto -> surveyUnitDto.getInterrogationId().equals(DEFAULT_ID_UE) + && surveyUnitDto.getQuestionnaireId().equals(DEFAULT_ID_QUEST) && surveyUnitDto.getFileDate().getMonth().equals(Month.FEBRUARY) ).isNotEmpty(); } @@ -172,9 +206,9 @@ void findResponsesByUEAndQuestionnaireTest_null_collectedVariables() { ); surveyUnitPersistencePortStub.getMongoStub().getLast().setCollectedVariables(null); - Assertions.assertThat(surveyUnitServiceStatic.findLatestByIdAndByIdQuestionnaire(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( - surveyUnitDto -> surveyUnitDto.getIdUE().equals(DEFAULT_ID_UE) - && surveyUnitDto.getIdQuest().equals(DEFAULT_ID_QUEST) + Assertions.assertThat(surveyUnitServiceStatic.findLatestByIdAndByQuestionnaireId(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( + surveyUnitDto -> surveyUnitDto.getInterrogationId().equals(DEFAULT_ID_UE) + && surveyUnitDto.getQuestionnaireId().equals(DEFAULT_ID_QUEST) && surveyUnitDto.getFileDate().getMonth().equals(Month.FEBRUARY) ).isNotEmpty(); } @@ -188,25 +222,25 @@ void findResponsesByUEAndQuestionnaireTest_null_externalVariables() { ); surveyUnitPersistencePortStub.getMongoStub().getLast().setExternalVariables(null); - Assertions.assertThat(surveyUnitServiceStatic.findLatestByIdAndByIdQuestionnaire(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( - surveyUnitDto -> surveyUnitDto.getIdUE().equals(DEFAULT_ID_UE) - && surveyUnitDto.getIdQuest().equals(DEFAULT_ID_QUEST) + Assertions.assertThat(surveyUnitServiceStatic.findLatestByIdAndByQuestionnaireId(DEFAULT_ID_UE, DEFAULT_ID_QUEST)).filteredOn( + surveyUnitDto -> surveyUnitDto.getInterrogationId().equals(DEFAULT_ID_UE) + && surveyUnitDto.getQuestionnaireId().equals(DEFAULT_ID_QUEST) && surveyUnitDto.getFileDate().getMonth().equals(Month.FEBRUARY) ).isNotEmpty(); } @Test - void findDistinctIdUEsByIdQuestionnaireTest(){ + void findDistinctIdUEsByQuestionnaireIdTest(){ addAdditionnalDtoToMongoStub(); - Assertions.assertThat(surveyUnitServiceStatic.findDistinctIdUEsByIdQuestionnaire(DEFAULT_ID_QUEST)).filteredOn( - surveyUnitId -> surveyUnitId.getIdUE().equals(DEFAULT_ID_UE) + Assertions.assertThat(surveyUnitServiceStatic.findDistinctInterrogationIdsByQuestionnaireId(DEFAULT_ID_QUEST)).filteredOn( + surveyUnitId -> surveyUnitId.getInterrogationId().equals(DEFAULT_ID_UE) ).isNotEmpty().hasSize(1); } @Test - void findIdUEsByIdQuestionnaireTest(){ - Assertions.assertThat(surveyUnitServiceStatic.findModesByIdQuestionnaire(DEFAULT_ID_QUEST)).filteredOn( + void findIdUEsByQuestionnaireIdTest(){ + Assertions.assertThat(surveyUnitServiceStatic.findModesByQuestionnaireId(DEFAULT_ID_QUEST)).filteredOn( mode -> mode.equals(Mode.WEB) ).isNotEmpty(); } @@ -215,17 +249,17 @@ void findIdUEsByIdQuestionnaireTest(){ void getQuestionnairesByCampaignTest() { addAdditionnalDtoToMongoStub("TESTQUESTIONNAIRE2"); - Assertions.assertThat(surveyUnitServiceStatic.findIdQuestionnairesByIdCampaign("TESTIDCAMPAIGN")).isNotEmpty().hasSize(2); + Assertions.assertThat(surveyUnitServiceStatic.findQuestionnaireIdsByCampaignId("TESTIDCAMPAIGN")).isNotEmpty().hasSize(2); } @Test void getAllCampaignsTest() { - Assertions.assertThat(surveyUnitServiceStatic.findDistinctIdCampaigns()).contains("TESTIDCAMPAIGN"); + Assertions.assertThat(surveyUnitServiceStatic.findDistinctCampaignIds()).contains("TESTIDCAMPAIGN"); } @Test - void findLatestByIdAndByIdQuestionnairePerretTest(){ + void findLatestByIdAndByQuestionnaireIdPerretTest(){ //Given //Recent Collected already in stub //Old Collected @@ -254,7 +288,7 @@ void findLatestByIdAndByIdQuestionnairePerretTest(){ //When - SurveyUnitDto surveyUnitDto = surveyUnitServiceStatic.findLatestValuesByStateByIdAndByIdQuestionnaire( + SurveyUnitDto surveyUnitDto = surveyUnitServiceStatic.findLatestValuesByStateByIdAndByQuestionnaireId( DEFAULT_ID_UE, DEFAULT_ID_QUEST ); @@ -311,7 +345,7 @@ void findLatestByIdAndByIdQuestionnairePerretTest(){ } @Test - void findLatestByIdAndByIdQuestionnairePerretTest_null_collectedVariables(){ + void findLatestByIdAndByQuestionnaireIdPerretTest_null_collectedVariables(){ //Given addAdditionnalDtoToMongoStub(DataState.EDITED, "C NEW E", @@ -323,7 +357,7 @@ void findLatestByIdAndByIdQuestionnairePerretTest_null_collectedVariables(){ //When - SurveyUnitDto surveyUnitDto = surveyUnitServiceStatic.findLatestValuesByStateByIdAndByIdQuestionnaire( + SurveyUnitDto surveyUnitDto = surveyUnitServiceStatic.findLatestValuesByStateByIdAndByQuestionnaireId( DEFAULT_ID_UE, DEFAULT_ID_QUEST ); @@ -370,7 +404,7 @@ void findLatestByIdAndByIdQuestionnairePerretTest_null_collectedVariables(){ } @Test - void findLatestByIdAndByIdQuestionnairePerretTest_null_externalVariables(){ + void findLatestByIdAndByQuestionnaireIdPerretTest_null_externalVariables(){ //Given addAdditionnalDtoToMongoStub(DataState.EDITED, "C NEW E", @@ -382,7 +416,7 @@ void findLatestByIdAndByIdQuestionnairePerretTest_null_externalVariables(){ //When - SurveyUnitDto surveyUnitDto = surveyUnitServiceStatic.findLatestValuesByStateByIdAndByIdQuestionnaire( + SurveyUnitDto surveyUnitDto = surveyUnitServiceStatic.findLatestValuesByStateByIdAndByQuestionnaireId( DEFAULT_ID_UE, DEFAULT_ID_QUEST ); @@ -430,23 +464,34 @@ void findLatestByIdAndByIdQuestionnairePerretTest_null_externalVariables(){ private void addAdditionnalDtoToMongoStub(){ List externalVariableList = new ArrayList<>(); - VariableModel externalVariableModel = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel externalVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(externalVariableModel); + externalVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(externalVariableModel); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariableModel = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") .build(); collectedVariableList.add(collectedVariableModel); SurveyUnitModel recentDTO = SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE(DEFAULT_ID_UE) - .idQuest(DEFAULT_ID_QUEST) + .interrogationId(DEFAULT_ID_UE) + .questionnaireId(DEFAULT_ID_QUEST) .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023,2,2,0,0,0)) .recordDate(LocalDateTime.of(2024,2,2,0,0,0)) @@ -458,23 +503,42 @@ private void addAdditionnalDtoToMongoStub(){ private void addAdditionnalDtoToMongoStub(String idQuestionnaire) { List externalVariableList = new ArrayList<>(); - VariableModel externalVariableModel = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel externalVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V1") + .iteration(1) + .build(); + externalVariableList.add(externalVariableModel); + externalVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .iteration(2) + .build(); externalVariableList.add(externalVariableModel); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariableModel = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") + .build(); + collectedVariableList.add(collectedVariableModel); + collectedVariableModel = VariableModel.builder() + .varId("TESTIDVAR") + .value("V2") + .scope("TESTIDLOOP") + .iteration(2) + .parentId("TESTIDPARENT") .build(); collectedVariableList.add(collectedVariableModel); SurveyUnitModel recentDTO = SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE(DEFAULT_ID_UE) - .idQuest(idQuestionnaire) + .interrogationId(DEFAULT_ID_UE) + .questionnaireId(idQuestionnaire) .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023, 2, 2, 0, 0, 0)) .recordDate(LocalDateTime.of(2024, 2, 2, 0, 0, 0)) @@ -490,23 +554,29 @@ private void addAdditionnalDtoToMongoStub(DataState state, LocalDateTime fileDate, LocalDateTime recordDate) { List externalVariableList = new ArrayList<>(); - VariableModel externalVariableModel = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{externalVariableValue})).build(); + VariableModel externalVariableModel = + VariableModel.builder() + .varId("TESTIDVAR") + .value(externalVariableValue) + .iteration(1) + .build(); externalVariableList.add(externalVariableModel); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{collectedVariableValue})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value(collectedVariableValue) + .scope("TESTIDLOOP") + .iteration(1) + .parentId("TESTIDPARENT") .build(); collectedVariableList.add(collectedVariable); SurveyUnitModel recentDTO = SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE(DEFAULT_ID_UE) - .idQuest(DEFAULT_ID_QUEST) + .interrogationId(DEFAULT_ID_UE) + .questionnaireId(DEFAULT_ID_QUEST) .state(state) .fileDate(fileDate) .recordDate(recordDate) diff --git a/src/test/java/fr/insee/genesis/domain/utils/DataVerifierTest.java b/src/test/java/fr/insee/genesis/domain/utils/DataVerifierTest.java index 87acbb92..265732dd 100644 --- a/src/test/java/fr/insee/genesis/domain/utils/DataVerifierTest.java +++ b/src/test/java/fr/insee/genesis/domain/utils/DataVerifierTest.java @@ -36,23 +36,25 @@ void setUp() { // Setup survey units VariableModel collectedVariable1 = VariableModel.builder() - .idVar("var1") - .values(List.of("123")) - .idLoop("loop1") - .idParent("parent1") + .varId("var1") + .value("123") + .scope("loop1") + .iteration(1) + .parentId("parent1") .build(); VariableModel collectedVariable2 = VariableModel.builder() - .idVar("var2") - .values(List.of("true")) - .idLoop("loop2") - .idParent("parent2") + .varId("var2") + .value("true") + .scope("loop2") + .iteration(1) + .parentId("parent2") .build(); SurveyUnitModel surveyUnit = SurveyUnitModel.builder() - .idUE("UE1100000001") - .idQuest("Quest1") - .idCampaign("Camp1") + .interrogationId("UE1100000001") + .questionnaireId("Quest1") + .campaignId("Camp1") .state(DataState.COLLECTED) .collectedVariables(List.of(collectedVariable1, collectedVariable2)) .externalVariables(List.of()) @@ -78,21 +80,23 @@ void shouldAddForcedSurveyUnit_WhenInvalidCollectedVariable() { // Add invalid value surveyUnits.clear(); VariableModel collectedVariable1 = VariableModel.builder() - .idVar("var1") - .values(List.of("invalid")) - .idLoop("loop1") - .idParent("parent1") + .varId("var1") + .value("invalid") + .scope("loop1") + .iteration(1) + .parentId("parent1") .build(); VariableModel collectedVariable2 = VariableModel.builder() - .idVar("var2") - .values(List.of("true")) - .idLoop("loop2") - .idParent("parent2") + .varId("var2") + .value("true") + .scope("loop2") + .iteration(1) + .parentId("parent2") .build(); SurveyUnitModel surveyUnit = SurveyUnitModel.builder() - .idUE("UE1100000001") - .idQuest("Quest1") - .idCampaign("Camp1") + .interrogationId("UE1100000001") + .questionnaireId("Quest1") + .campaignId("Camp1") .state(DataState.COLLECTED) .collectedVariables(List.of(collectedVariable1, collectedVariable2)) .externalVariables(List.of()) @@ -120,15 +124,17 @@ void shouldNotAddForcedSurveyUnit_WhenAllVariablesAreValid() { @Test void shouldAddForcedSurveyUnit_WhenInvalidExternalVariable() { //Add surveyUnit with invalid external Variable - VariableModel extVar = VariableModel.builder().idVar("var2").values(List.of( - "notBoolean")).build(); + VariableModel extVar = VariableModel.builder() + .varId("var2") + .value("notBoolean") + .build(); List listVarExt = new ArrayList<>(); listVarExt.add(extVar); SurveyUnitModel surveyUnitWithInvalidExt = SurveyUnitModel.builder() - .idUE("UE1100000002") - .idQuest("Quest1") - .idCampaign("Camp1") + .interrogationId("UE1100000002") + .questionnaireId("Quest1") + .campaignId("Camp1") .state(DataState.COLLECTED) .collectedVariables(List.of()) .externalVariables(listVarExt) @@ -151,23 +157,32 @@ void shouldCorrectInvalidValuesInForcedSurveyUnit() { // ADD invalid values surveyUnits.clear(); VariableModel collectedVariable1 = VariableModel.builder() - .idVar("var1") - .values(List.of("invalid", "456")) - .idLoop("loop1") - .idParent("parent1") + .varId("var1") + .value("invalid") + .scope("loop1") + .iteration(1) + .parentId("parent1") .build(); VariableModel collectedVariable2 = VariableModel.builder() - .idVar("var2") - .values(List.of("false")) - .idLoop("loop2") - .idParent("parent2") + .varId("var1") + .value("456") + .scope("loop1") + .iteration(2) + .parentId("parent1") + .build(); + VariableModel collectedVariable3 = VariableModel.builder() + .varId("var2") + .value("false") + .scope("loop2") + .iteration(1) + .parentId("parent2") .build(); SurveyUnitModel surveyUnit = SurveyUnitModel.builder() - .idUE("UE1100000001") - .idQuest("Quest1") - .idCampaign("Camp1") + .interrogationId("UE1100000001") + .questionnaireId("Quest1") + .campaignId("Camp1") .state(DataState.COLLECTED) - .collectedVariables(List.of(collectedVariable1, collectedVariable2)) + .collectedVariables(List.of(collectedVariable1, collectedVariable2, collectedVariable3)) .externalVariables(List.of()) .build(); surveyUnits.add(surveyUnit); @@ -179,7 +194,7 @@ void shouldCorrectInvalidValuesInForcedSurveyUnit() { SurveyUnitModel forcedUnit = surveyUnits.get(1); Assertions.assertEquals(DataState.FORCED, forcedUnit.getState()); Assertions.assertEquals(1, forcedUnit.getCollectedVariables().size()); - Assertions.assertEquals("", forcedUnit.getCollectedVariables().getFirst().values().getFirst()); // Corrected values + Assertions.assertEquals("", forcedUnit.getCollectedVariables().getFirst().value()); // Corrected values } } diff --git a/src/test/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitModelMongoAdapterTest.java b/src/test/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitModelMongoAdapterTest.java index 9d65034f..cea57e60 100644 --- a/src/test/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitModelMongoAdapterTest.java +++ b/src/test/java/fr/insee/genesis/infrastructure/adapter/SurveyUnitModelMongoAdapterTest.java @@ -38,9 +38,9 @@ class SurveyUnitModelMongoAdapterTest { static void setUp() { surveyUnitMongoAdapter = new SurveyUnitMongoAdapter(mongoRepository, null); suDoc= new SurveyUnitDocument(); - suDoc.setIdCampaign("idCampaign"); - suDoc.setIdUE("UE1100000001"); - suDoc.setIdQuestionnaire("TEST2023X01"); + suDoc.setCampaignId("idCampaign"); + suDoc.setInterrogationId("UE1100000001"); + suDoc.setQuestionnaireId("TEST2023X01"); suDoc.setState("COLLECTED"); suDoc.setMode("WEB"); suDoc.setRecordDate(LocalDateTime.now()); @@ -48,9 +48,9 @@ static void setUp() { suDoc.setExternalVariables(List.of(new VariableDocument())); suDoc2= new SurveyUnitDocument(); - suDoc2.setIdCampaign("idCampaign"); - suDoc2.setIdUE("UE1100000001"); - suDoc2.setIdQuestionnaire("TEST2023X01"); + suDoc2.setCampaignId("idCampaign"); + suDoc2.setInterrogationId("UE1100000001"); + suDoc2.setQuestionnaireId("TEST2023X01"); suDoc2.setState("COLLECTED"); suDoc2.setMode("TEL"); suDoc2.setRecordDate(LocalDateTime.now()); @@ -58,9 +58,9 @@ static void setUp() { suDoc2.setExternalVariables(List.of(new VariableDocument())); suDoc3= new SurveyUnitDocument(); - suDoc3.setIdCampaign("idCampaign"); - suDoc3.setIdUE("UE1100000002"); - suDoc3.setIdQuestionnaire("TEST2023X01"); + suDoc3.setCampaignId("idCampaign"); + suDoc3.setInterrogationId("UE1100000002"); + suDoc3.setQuestionnaireId("TEST2023X01"); suDoc3.setState("COLLECTED"); suDoc3.setMode("WEB"); suDoc3.setRecordDate(LocalDateTime.now()); @@ -74,7 +74,7 @@ void shouldReturnListOfSurveyUnitDto_IfIdsFoundInDataBase() { List responses = new ArrayList<>(); responses.add(suDoc); responses.add(suDoc2); - when(mongoRepository.findByIdUEAndIdQuestionnaire(any(String.class), any(String.class))).thenReturn(responses); + when(mongoRepository.findByInterrogationIdAndQuestionnaireId(any(String.class), any(String.class))).thenReturn(responses); // When List updates = surveyUnitMongoAdapter.findByIds("UE1100000001", "TEST2023X01"); // Then @@ -85,7 +85,7 @@ void shouldReturnListOfSurveyUnitDto_IfIdsFoundInDataBase() { @Test void shouldReturnEmptyList_IfIdsNotFoundInDataBase() { //Given - when(mongoRepository.findByIdUEAndIdQuestionnaire(any(String.class), any(String.class))).thenReturn(List.of()); + when(mongoRepository.findByInterrogationIdAndQuestionnaireId(any(String.class), any(String.class))).thenReturn(List.of()); // When List updates = surveyUnitMongoAdapter.findByIds("UE1100000001", "TEST2023X01"); // Then @@ -93,83 +93,83 @@ void shouldReturnEmptyList_IfIdsNotFoundInDataBase() { } @Test - void shouldReturnListOfSurveyUnitDto_IfIdUEFoundInDataBase() { + void shouldReturnListOfSurveyUnitDto_IfInterrogationIdFoundInDataBase() { //Given List responses = new ArrayList<>(); responses.add(suDoc); responses.add(suDoc2); - when(mongoRepository.findByIdUE(any(String.class))).thenReturn(responses); + when(mongoRepository.findByInterrogationId(any(String.class))).thenReturn(responses); // When - List updates = surveyUnitMongoAdapter.findByIdUE("UE1100000001"); + List updates = surveyUnitMongoAdapter.findByInterrogationId("UE1100000001"); // Then Assertions.assertThat(updates).isNotNull().hasSize(2); Assertions.assertThat(updates.getFirst().getMode()).isEqualTo(Mode.WEB); } @Test - void shouldReturnEmptyList_IfIdUENotFoundInDataBase() { + void shouldReturnEmptyList_IfInterrogationIdNotFoundInDataBase() { //Given - when(mongoRepository.findByIdUE(any(String.class))).thenReturn(List.of()); + when(mongoRepository.findByInterrogationId(any(String.class))).thenReturn(List.of()); // When - List updates = surveyUnitMongoAdapter.findByIdUE("UE1100000001"); + List updates = surveyUnitMongoAdapter.findByInterrogationId("UE1100000001"); // Then Assertions.assertThat(updates).isEmpty(); } @Test - void shouldReturnListOfSurveyUnitDto_IfIdQuestionnaireFoundInDataBase() { + void shouldReturnListOfSurveyUnitDto_IfQuestionnaireIdFoundInDataBase() { //Given List responses = new ArrayList<>(); responses.add(suDoc); responses.add(suDoc2); responses.add(suDoc3); - when(mongoRepository.findByIdQuestionnaire(any(String.class))).thenReturn(responses.stream()); + when(mongoRepository.findByQuestionnaireId(any(String.class))).thenReturn(responses.stream()); // When - Stream updates = surveyUnitMongoAdapter.findByIdQuestionnaire("TEST2023X01"); + Stream updates = surveyUnitMongoAdapter.findByQuestionnaireId("TEST2023X01"); // Then Assertions.assertThat(updates).isNotNull().hasSize(3); //Assertions.assertThat(updates.get(2).getMode()).isEqualTo(Mode.WEB); } @Test - void shouldReturnEmptyList_IfIdQuestionnaireNotFoundInDataBase() { + void shouldReturnEmptyList_IfQuestionnaireIdNotFoundInDataBase() { //Given - when(mongoRepository.findByIdQuestionnaire(any(String.class))).thenReturn(Stream.empty()); + when(mongoRepository.findByQuestionnaireId(any(String.class))).thenReturn(Stream.empty()); // When - List updates = surveyUnitMongoAdapter.findByIdQuestionnaire("TEST2023X01").toList(); + List updates = surveyUnitMongoAdapter.findByQuestionnaireId("TEST2023X01").toList(); // Then Assertions.assertThat(updates).isEmpty(); } @Test - void shouldReturnListOfSurveyUnitDto_WhenGivenAListOfIdUEs() { + void shouldReturnListOfSurveyUnitDto_WhenGivenAListOfInterrogationIds() { //Given List responses1 = new ArrayList<>(); responses1.add(suDoc); responses1.add(suDoc2); List responses2 = new ArrayList<>(); responses2.add(suDoc3); - when(mongoRepository.findByIdUEAndIdQuestionnaire("UE1100000001", "TEST2023X01")).thenReturn(responses1); - when(mongoRepository.findByIdUEAndIdQuestionnaire("UE1100000002", "TEST2023X01")).thenReturn(responses2); - SurveyUnitModel id1 = SurveyUnitModel.builder().idUE("UE1100000001").build(); - SurveyUnitModel id2 = SurveyUnitModel.builder().idUE("UE1100000002").build(); + when(mongoRepository.findByInterrogationIdAndQuestionnaireId("UE1100000001", "TEST2023X01")).thenReturn(responses1); + when(mongoRepository.findByInterrogationIdAndQuestionnaireId("UE1100000002", "TEST2023X01")).thenReturn(responses2); + SurveyUnitModel id1 = SurveyUnitModel.builder().interrogationId("UE1100000001").build(); + SurveyUnitModel id2 = SurveyUnitModel.builder().interrogationId("UE1100000002").build(); List ids = List.of(id1, id2); // When - List updates = surveyUnitMongoAdapter.findByIdUEsAndIdQuestionnaire(ids, "TEST2023X01"); + List updates = surveyUnitMongoAdapter.findByInterrogationIdsAndQuestionnaireId(ids, "TEST2023X01"); // Then Assertions.assertThat(updates).isNotNull().hasSize(3); Assertions.assertThat(updates.getFirst().getMode()).isEqualTo(Mode.WEB); } @Test - void shouldReturnEmptyList_IfIdUEsNotFoundInDataBase() { + void shouldReturnEmptyList_IfInterrogationIdsNotFoundInDataBase() { //Given - when(mongoRepository.findByIdUEAndIdQuestionnaire(any(String.class),any(String.class))).thenReturn(List.of()); - SurveyUnitModel id1 = SurveyUnitModel.builder().idUE("UE1100000001").build(); - SurveyUnitModel id2 = SurveyUnitModel.builder().idUE("UE1100000002").build(); + when(mongoRepository.findByInterrogationIdAndQuestionnaireId(any(String.class),any(String.class))).thenReturn(List.of()); + SurveyUnitModel id1 = SurveyUnitModel.builder().interrogationId("UE1100000001").build(); + SurveyUnitModel id2 = SurveyUnitModel.builder().interrogationId("UE1100000002").build(); List ids = List.of(id1, id2); // When - List updates = surveyUnitMongoAdapter.findByIdUEsAndIdQuestionnaire(ids, "TEST2023X01"); + List updates = surveyUnitMongoAdapter.findByInterrogationIdsAndQuestionnaireId(ids, "TEST2023X01"); // Then Assertions.assertThat(updates).isEmpty(); } diff --git a/src/test/java/fr/insee/genesis/infrastructure/mapper/SurveyUnitDocumentMapperImplTest.java b/src/test/java/fr/insee/genesis/infrastructure/mapper/SurveyUnitDocumentMapperImplTest.java index 70d0ce0d..fb076726 100644 --- a/src/test/java/fr/insee/genesis/infrastructure/mapper/SurveyUnitDocumentMapperImplTest.java +++ b/src/test/java/fr/insee/genesis/infrastructure/mapper/SurveyUnitDocumentMapperImplTest.java @@ -30,46 +30,48 @@ static void init(){ surveyUnitDocumentMapperImplStatic = new SurveyUnitDocumentMapperImpl(); surveyUnitDocumentStatic = new SurveyUnitDocument(); - surveyUnitDocumentStatic.setIdCampaign("TESTIDCAMPAIGN"); + surveyUnitDocumentStatic.setCampaignId("TESTIDCAMPAIGN"); surveyUnitDocumentStatic.setMode("WEB"); - surveyUnitDocumentStatic.setIdUE("TESTIDUE"); - surveyUnitDocumentStatic.setIdQuestionnaire("TESTIDQUESTIONNAIRE"); + surveyUnitDocumentStatic.setInterrogationId("TESTIDUE"); + surveyUnitDocumentStatic.setQuestionnaireId("TESTIDQUESTIONNAIRE"); surveyUnitDocumentStatic.setState("COLLECTED"); surveyUnitDocumentStatic.setFileDate(LocalDateTime.of(2023,1,1,0,0,0)); List documentExternalVariableList = new ArrayList<>(); VariableDocument externalVariable = new VariableDocument(); - externalVariable.setIdVar("TESTIDVAR"); - externalVariable.setValues(List.of(new String[]{"V1", "V2"})); + externalVariable.setVarId("TESTIDVAR"); + externalVariable.setValue("V1"); documentExternalVariableList.add(externalVariable); surveyUnitDocumentStatic.setExternalVariables(documentExternalVariableList); List documentCollectedVariableList = new ArrayList<>(); VariableDocument variableDocument = new VariableDocument(); - variableDocument.setIdVar("TESTIDVAR"); - variableDocument.setValues(List.of(new String[]{"V1", "V2"})); + variableDocument.setVarId("TESTIDVAR"); + variableDocument.setValue("V1"); documentCollectedVariableList.add(variableDocument); surveyUnitDocumentStatic.setCollectedVariables(documentCollectedVariableList); List externalVariableDtoList = new ArrayList<>(); - VariableModel variable = VariableModel.builder().idVar("TESTIDVAR").values(List.of(new String[]{"V1", "V2"})).build(); + VariableModel variable = + VariableModel.builder().varId("TESTIDVAR").value("V1").build(); externalVariableDtoList.add(variable); List collectedVariableList = new ArrayList<>(); VariableModel collectedVariable = VariableModel.builder() - .idVar("TESTIDVAR") - .values(List.of(new String[]{"V1", "V2"})) - .idLoop("TESTIDLOOP") - .idParent("TESTIDPARENT") + .varId("TESTIDVAR") + .value("V1") + .scope("TESTIDLOOP") + .parentId("TESTIDPARENT") + .iteration(1) .build(); collectedVariableList.add(collectedVariable); surveyUnitStatic = SurveyUnitModel.builder() - .idCampaign("TESTIDCAMPAIGN") + .campaignId("TESTIDCAMPAIGN") .mode(Mode.WEB) - .idUE("TESTIDUE") - .idQuest("TESTIDQUESTIONNAIRE") + .interrogationId("TESTIDUE") + .questionnaireId("TESTIDQUESTIONNAIRE") .state(DataState.COLLECTED) .fileDate(LocalDateTime.of(2023,1,1,0,0,0)) .recordDate(LocalDateTime.of(2024,1,1,0,0,0)) @@ -94,21 +96,21 @@ void shouldReturnNull(){ void shouldReturnDocumentDtoFromDocument(){ SurveyUnitModel surveyUnit = surveyUnitDocumentMapperImplStatic.documentToModel(surveyUnitDocumentStatic); - Assertions.assertThat(surveyUnit.getIdCampaign()).isEqualTo("TESTIDCAMPAIGN"); + Assertions.assertThat(surveyUnit.getCampaignId()).isEqualTo("TESTIDCAMPAIGN"); Assertions.assertThat(surveyUnit.getMode()).isEqualTo(Mode.WEB); - Assertions.assertThat(surveyUnit.getIdUE()).isEqualTo("TESTIDUE"); - Assertions.assertThat(surveyUnit.getIdQuest()).isEqualTo("TESTIDQUESTIONNAIRE"); + Assertions.assertThat(surveyUnit.getInterrogationId()).isEqualTo("TESTIDUE"); + Assertions.assertThat(surveyUnit.getQuestionnaireId()).isEqualTo("TESTIDQUESTIONNAIRE"); Assertions.assertThat(surveyUnit.getState()).isEqualTo(DataState.COLLECTED); Assertions.assertThat(surveyUnit.getFileDate()).isEqualTo(LocalDateTime.of(2023,1,1,0,0,0)); Assertions.assertThat(surveyUnit.getExternalVariables()).filteredOn(externalVariableDto -> - externalVariableDto.idVar().equals("TESTIDVAR") - && externalVariableDto.values().containsAll(List.of(new String[]{"V1", "V2"})) + externalVariableDto.varId().equals("TESTIDVAR") + && externalVariableDto.value().equals("V1") ).isNotEmpty(); Assertions.assertThat(surveyUnit.getCollectedVariables()).filteredOn(variableStateDto -> - variableStateDto.idVar().equals("TESTIDVAR") - && variableStateDto.values().containsAll(List.of(new String[]{"V1", "V2"})) + variableStateDto.varId().equals("TESTIDVAR") + && variableStateDto.value().equals("V1") ).isNotEmpty(); } @@ -118,21 +120,21 @@ void shouldReturnDocumentDtoFromDocument(){ void shouldReturnDocumentFromDocumentDto(){ SurveyUnitDocument surveyUnitDocument = surveyUnitDocumentMapperImplStatic.modelToDocument(surveyUnitStatic); - Assertions.assertThat(surveyUnitDocument.getIdCampaign()).isEqualTo("TESTIDCAMPAIGN"); + Assertions.assertThat(surveyUnitDocument.getCampaignId()).isEqualTo("TESTIDCAMPAIGN"); Assertions.assertThat(surveyUnitDocument.getMode()).isEqualTo("WEB"); - Assertions.assertThat(surveyUnitDocument.getIdUE()).isEqualTo("TESTIDUE"); - Assertions.assertThat(surveyUnitDocument.getIdQuestionnaire()).isEqualTo("TESTIDQUESTIONNAIRE"); + Assertions.assertThat(surveyUnitDocument.getInterrogationId()).isEqualTo("TESTIDUE"); + Assertions.assertThat(surveyUnitDocument.getQuestionnaireId()).isEqualTo("TESTIDQUESTIONNAIRE"); Assertions.assertThat(surveyUnitDocument.getState()).isEqualTo("COLLECTED"); Assertions.assertThat(surveyUnitDocument.getFileDate()).isEqualTo(LocalDateTime.of(2023,1,1,0,0,0)); Assertions.assertThat(surveyUnitDocument.getExternalVariables()).filteredOn(externalVariableDto -> - externalVariableDto.getIdVar().equals("TESTIDVAR") - && externalVariableDto.getValues().containsAll(List.of(new String[]{"V1", "V2"})) + externalVariableDto.getVarId().equals("TESTIDVAR") + && externalVariableDto.getValue().equals("V1") ).isNotEmpty(); Assertions.assertThat(surveyUnitDocument.getCollectedVariables()).filteredOn(variableDocument -> - variableDocument.getIdVar().equals("TESTIDVAR") - && variableDocument.getValues().containsAll(List.of(new String[]{"V1", "V2"})) + variableDocument.getVarId().equals("TESTIDVAR") + && variableDocument.getValue().equals("V1") ).isNotEmpty(); } @@ -146,21 +148,21 @@ void shouldReturnDocumentLDtoListFromDocumentList(){ List surveyUnitList = surveyUnitDocumentMapperImplStatic.listDocumentToListModel(surveyUnitDocumentList); - Assertions.assertThat(surveyUnitList.getFirst().getIdCampaign()).isEqualTo("TESTIDCAMPAIGN"); + Assertions.assertThat(surveyUnitList.getFirst().getCampaignId()).isEqualTo("TESTIDCAMPAIGN"); Assertions.assertThat(surveyUnitList.getFirst().getMode()).isEqualTo(Mode.WEB); - Assertions.assertThat(surveyUnitList.getFirst().getIdUE()).isEqualTo("TESTIDUE"); - Assertions.assertThat(surveyUnitList.getFirst().getIdQuest()).isEqualTo("TESTIDQUESTIONNAIRE"); + Assertions.assertThat(surveyUnitList.getFirst().getInterrogationId()).isEqualTo("TESTIDUE"); + Assertions.assertThat(surveyUnitList.getFirst().getQuestionnaireId()).isEqualTo("TESTIDQUESTIONNAIRE"); Assertions.assertThat(surveyUnitList.getFirst().getState()).isEqualTo(DataState.COLLECTED); Assertions.assertThat(surveyUnitList.getFirst().getFileDate()).isEqualTo(LocalDateTime.of(2023,1,1,0,0,0)); Assertions.assertThat(surveyUnitList.getFirst().getExternalVariables()).filteredOn(externalVariableDto -> - externalVariableDto.idVar().equals("TESTIDVAR") - && externalVariableDto.values().containsAll(List.of(new String[]{"V1", "V2"})) + externalVariableDto.varId().equals("TESTIDVAR") + && externalVariableDto.value().equals("V1") ).isNotEmpty(); Assertions.assertThat(surveyUnitList.getFirst().getCollectedVariables()).filteredOn(variableStateDto -> - variableStateDto.idVar().equals("TESTIDVAR") - && variableStateDto.values().containsAll(List.of(new String[]{"V1", "V2"})) + variableStateDto.varId().equals("TESTIDVAR") + && variableStateDto.value().equals("V1") ).isNotEmpty(); } @@ -172,21 +174,21 @@ void shouldReturnDocumentListFromDocumentDtoList(){ List surveyUnitDocumentList = surveyUnitDocumentMapperImplStatic.listModelToListDocument(surveyUnitList); - Assertions.assertThat(surveyUnitDocumentList.getFirst().getIdCampaign()).isEqualTo("TESTIDCAMPAIGN"); + Assertions.assertThat(surveyUnitDocumentList.getFirst().getCampaignId()).isEqualTo("TESTIDCAMPAIGN"); Assertions.assertThat(surveyUnitDocumentList.getFirst().getMode()).isEqualTo("WEB"); - Assertions.assertThat(surveyUnitDocumentList.getFirst().getIdUE()).isEqualTo("TESTIDUE"); - Assertions.assertThat(surveyUnitDocumentList.getFirst().getIdQuestionnaire()).isEqualTo("TESTIDQUESTIONNAIRE"); + Assertions.assertThat(surveyUnitDocumentList.getFirst().getInterrogationId()).isEqualTo("TESTIDUE"); + Assertions.assertThat(surveyUnitDocumentList.getFirst().getQuestionnaireId()).isEqualTo("TESTIDQUESTIONNAIRE"); Assertions.assertThat(surveyUnitDocumentList.getFirst().getState()).isEqualTo("COLLECTED"); Assertions.assertThat(surveyUnitDocumentList.getFirst().getFileDate()).isEqualTo(LocalDateTime.of(2023,1,1,0,0,0)); Assertions.assertThat(surveyUnitDocumentList.getFirst().getExternalVariables()).filteredOn(externalVariableDto -> - externalVariableDto.getIdVar().equals("TESTIDVAR") - && externalVariableDto.getValues().containsAll(List.of(new String[]{"V1", "V2"})) + externalVariableDto.getVarId().equals("TESTIDVAR") + && externalVariableDto.getValue().equals("V1") ).isNotEmpty(); Assertions.assertThat(surveyUnitDocumentList.getFirst().getCollectedVariables()).filteredOn(variableDocument -> - variableDocument.getIdVar().equals("TESTIDVAR") - && variableDocument.getValues().containsAll(List.of(new String[]{"V1", "V2"})) + variableDocument.getVarId().equals("TESTIDVAR") + && variableDocument.getValue().equals("V1") ).isNotEmpty(); } } diff --git a/src/test/java/fr/insee/genesis/stubs/SurveyUnitPersistencePortStub.java b/src/test/java/fr/insee/genesis/stubs/SurveyUnitPersistencePortStub.java index b5852aa9..67a9e042 100644 --- a/src/test/java/fr/insee/genesis/stubs/SurveyUnitPersistencePortStub.java +++ b/src/test/java/fr/insee/genesis/stubs/SurveyUnitPersistencePortStub.java @@ -20,10 +20,10 @@ public void saveAll(List suList) { } @Override - public List findByIds(String idUE, String idQuest) { + public List findByIds(String interrogationId, String questionnaireId) { List surveyUnitModelList = new ArrayList<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdUE().equals(idUE) && SurveyUnitModel.getIdQuest().equals(idQuest)) + if(SurveyUnitModel.getInterrogationId().equals(interrogationId) && SurveyUnitModel.getQuestionnaireId().equals(questionnaireId)) surveyUnitModelList.add(SurveyUnitModel); } @@ -31,10 +31,10 @@ public List findByIds(String idUE, String idQuest) { } @Override - public List findByIdUE(String idUE) { + public List findByInterrogationId(String interrogationId) { List surveyUnitModelList = new ArrayList<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdUE().equals(idUE)) + if(SurveyUnitModel.getInterrogationId().equals(interrogationId)) surveyUnitModelList.add(SurveyUnitModel); } @@ -42,11 +42,11 @@ public List findByIdUE(String idUE) { } @Override - public List findByIdUEsAndIdQuestionnaire(List idUEs, String idQuestionnaire) { + public List findByInterrogationIdsAndQuestionnaireId(List interrogationIds, String questionnaireId) { List surveyUnitModelList = new ArrayList<>(); - for(SurveyUnitModel surveyUnitModel : idUEs) { + for(SurveyUnitModel surveyUnitModel : interrogationIds) { for (SurveyUnitModel document : mongoStub) { - if (surveyUnitModel.getIdUE().equals(document.getIdUE()) && document.getIdQuest().equals(idQuestionnaire)) + if (surveyUnitModel.getInterrogationId().equals(document.getInterrogationId()) && document.getQuestionnaireId().equals(questionnaireId)) surveyUnitModelList.add(document); } } @@ -55,10 +55,10 @@ public List findByIdUEsAndIdQuestionnaire(List } @Override - public Stream findByIdQuestionnaire(String idQuestionnaire) { + public Stream findByQuestionnaireId(String questionnaireId) { List surveyUnitModelList = new ArrayList<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdQuest().equals(idQuestionnaire)) + if(SurveyUnitModel.getQuestionnaireId().equals(questionnaireId)) surveyUnitModelList.add(SurveyUnitModel); } @@ -66,12 +66,12 @@ public Stream findByIdQuestionnaire(String idQuestionnaire) { } @Override - public List findIdUEsByIdQuestionnaire(String idQuestionnaire) { + public List findInterrogationIdsByQuestionnaireId(String questionnaireId) { List surveyUnitModelList = new ArrayList<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdQuest().equals(idQuestionnaire)) + if(SurveyUnitModel.getQuestionnaireId().equals(questionnaireId)) surveyUnitModelList.add( - new SurveyUnitModel(SurveyUnitModel.getIdUE(), SurveyUnitModel.getMode()) + new SurveyUnitModel(SurveyUnitModel.getInterrogationId(), SurveyUnitModel.getMode()) ); } @@ -79,12 +79,12 @@ public List findIdUEsByIdQuestionnaire(String idQuestionnaire) } @Override - public List findIdUEsByIdCampaign(String idCampaign) { + public List findInterrogationIdsByCampaignId(String campaignId) { List surveyUnitModelList = new ArrayList<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdCampaign().equals(idCampaign)) + if(SurveyUnitModel.getCampaignId().equals(campaignId)) surveyUnitModelList.add( - new SurveyUnitModel(SurveyUnitModel.getIdUE(), SurveyUnitModel.getMode()) + new SurveyUnitModel(SurveyUnitModel.getInterrogationId(), SurveyUnitModel.getMode()) ); } @@ -92,7 +92,7 @@ public List findIdUEsByIdCampaign(String idCampaign) { } @Override - public Long deleteByIdQuestionnaire(String idQuestionnaire) { + public Long deleteByQuestionnaireId(String questionnaireId) { return null; } @@ -102,49 +102,49 @@ public long count() { } @Override - public Set findIdQuestionnairesByIdCampaign(String idCampaign) { - Set idQuestionnaireSet = new HashSet<>(); + public Set findQuestionnaireIdsByCampaignId(String campaignId) { + Set questionnaireIdSet = new HashSet<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdCampaign().equals(idCampaign)) - idQuestionnaireSet.add(SurveyUnitModel.getIdQuest()); + if(SurveyUnitModel.getCampaignId().equals(campaignId)) + questionnaireIdSet.add(SurveyUnitModel.getQuestionnaireId()); } - return idQuestionnaireSet; + return questionnaireIdSet; } @Override - public Set findDistinctIdCampaigns() { + public Set findDistinctCampaignIds() { Set campaignIds = new HashSet<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - campaignIds.add(SurveyUnitModel.getIdCampaign()); + campaignIds.add(SurveyUnitModel.getCampaignId()); } return campaignIds; } @Override - public long countByIdCampaign(String idCampaign) { + public long countByCampaignId(String campaignId) { return mongoStub.stream().filter( - SurveyUnitDto -> SurveyUnitDto.getIdCampaign().equals(idCampaign)).toList().size(); + SurveyUnitDto -> SurveyUnitDto.getCampaignId().equals(campaignId)).toList().size(); } @Override - public Set findDistinctIdQuestionnaires() { + public Set findDistinctQuestionnaireIds() { Set questionnaireIds = new HashSet<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - questionnaireIds.add(SurveyUnitModel.getIdQuest()); + questionnaireIds.add(SurveyUnitModel.getQuestionnaireId()); } return questionnaireIds; } @Override - public Set findIdCampaignsByIdQuestionnaire(String idQuestionnaire) { - Set idCampaignSet = new HashSet<>(); + public Set findCampaignIdsByQuestionnaireId(String questionnaireId) { + Set campaignIdSet = new HashSet<>(); for(SurveyUnitModel SurveyUnitModel : mongoStub){ - if(SurveyUnitModel.getIdQuest().equals(idQuestionnaire)) - idCampaignSet.add(SurveyUnitModel.getIdCampaign()); + if(SurveyUnitModel.getQuestionnaireId().equals(questionnaireId)) + campaignIdSet.add(SurveyUnitModel.getCampaignId()); } - return idCampaignSet; + return campaignIdSet; } } diff --git a/src/test/resources/features/do_we_extract_data.feature b/src/test/resources/features/do_we_extract_data.feature index 3dacbb3f..54353c7b 100644 --- a/src/test/resources/features/do_we_extract_data.feature +++ b/src/test/resources/features/do_we_extract_data.feature @@ -37,25 +37,24 @@ Feature: Do we extract data ? Scenario Outline: Collected data extraction content Given We have data in directory "" When We create DTOs from file "" with DDI "" - Then We should have a "" DTO for survey unit "" with "" filled with "" at index + Then We should have a "" DTO for survey unit "" with "" filled with "" for iteration Examples: - | Directory | FileName | DDIFileName | ExpectedDataState | SurveyUnitId | VariableName | ExpectedValue | ExpectedIndex | - | SAMPLETEST-PARADATA-v1 | reponse-platine/data.complete.validated.STPDv1.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v1.xml | COLLECTED | 0000007 | PRENOM_C | TESTPRENOM7 | 0 | - | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | COLLECTED | 0000007 | PRENOM_C | TESTPRENOM7 | 0 | - | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | EDITED | 0000007 | SANTE_ENFLOG71 | TESTSANTE7E | 0 | - | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | INPUTED | 0000007 | PETIT_ENF | TESTPETITENF7I | 0 | - | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | FORCED | 0000007 | LANGUE2_ENTOU | FR | 0 | - | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | PREVIOUS | 0000007 | AVIS_FILTRE | 1 | 0 | + | Directory | FileName | DDIFileName | ExpectedDataState | SurveyUnitId | VariableName | ExpectedValue | Iteration | + | SAMPLETEST-PARADATA-v1 | reponse-platine/data.complete.validated.STPDv1.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v1.xml | COLLECTED | 0000007 | PRENOM_C | TESTPRENOM7 | 1 | + | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | COLLECTED | 0000007 | PRENOM_C | TESTPRENOM7 | 1 | + | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | EDITED | 0000007 | SANTE_ENFLOG71 | TESTSANTE7E | 1 | + | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | INPUTED | 0000007 | PETIT_ENF | TESTPETITENF7I | 1 | + | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | FORCED | 0000007 | LANGUE2_ENTOU | FR | 1 | + | SAMPLETEST-PARADATA-v2 | reponse-platine/data.complete.validated.STPDv2.20231122164209.xml |ddi-SAMPLETEST-PARADATA-v2.xml | PREVIOUS | 0000007 | AVIS_FILTRE | 1 | 1 | Scenario Outline: External data extraction Given We have data in directory "" Given We copy data file "data_backup/data.complete.validated.STPDv1.20231122164209.xml" to that directory When We save data from that directory - Then We should have 1 values for external variable "" for survey unit "" - And For external variable "" in survey unit "" we should have "" and loopId "" + Then For external variable "" in survey unit "" we should have "" and scope "" for iteration Examples: - | Directory | ExternalVariableName | LoopId | SurveyUnitId | ExpectedValue | - | SAMPLETEST | RPANAISCONJ | B_PRENOMREP_1 | 0000007 | 1986 | - | SAMPLETEST | RPPRENOM | B_PRENOMREP_1 | 0000007 | TESTRPRENOM7_2 | - | SAMPLETEST | RPPRENOM | B_PRENOMREP_2 | 0000007 | TESTRPRENOM7PAR1 | + | Directory | ExternalVariableName | Scope | SurveyUnitId | ExpectedValue | Iteration | + | SAMPLETEST | RPANAISCONJ | B_PRENOMREP | 0000007 | 1986 | 1 | + | SAMPLETEST | RPPRENOM | B_PRENOMREP | 0000007 | TESTRPRENOM7_2 | 1 | + | SAMPLETEST | RPPRENOM | B_PRENOMREP | 0000007 | TESTRPRENOM7PAR1 | 2 | diff --git a/src/test/resources/features/do_we_save_loops.feature b/src/test/resources/features/do_we_save_loops.feature index 87a78d14..c60d11f8 100644 --- a/src/test/resources/features/do_we_save_loops.feature +++ b/src/test/resources/features/do_we_save_loops.feature @@ -7,10 +7,10 @@ Feature: Do we save loops ? When We save data from that directory When We delete that directory - Then For external variable "" in survey unit "" we should have "" as idLoop and "" as first value + Then For external variable "" in survey unit "" we should have "" and scope "" for iteration Examples: - | VariableName | InterrogationId | ExpectedIdLoop | ExpectedValue | - | CODESA | AUTO11000 | TABESA_1 | AAA | - | CODESA | AUTO11000 | TABESA_2 | BBB | - | CODESA | AUTO11000 | TABESA_3 | CCC | - | CODESA | AUTO11000 | TABESA_4 | DDD | \ No newline at end of file + | VariableName | InterrogationId | ExpectedScope | ExpectedValue | Iteration | + | CODESA | AUTO11000 | TABESA | AAA | 1 | + | CODESA | AUTO11000 | TABESA | BBB | 2 | + | CODESA | AUTO11000 | TABESA | CCC | 3 | + | CODESA | AUTO11000 | TABESA | DDD | 4 | \ No newline at end of file