Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Changelog

## 2.2.1 [TODO]
### Fixed
- Get contexts with review uses collectionInstrumentId

## 2.2.0 [2026-02-05]
### Added
- add isCapturedIndirectly variable to responses
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public ResponseEntity<Set<String>> getQuestionnaires() {
public ResponseEntity<List<String>> getQuestionnairesWithReview(
@RequestParam(value = "withReview") boolean withReview
) {
List<String> questionnaires = dataProcessingContextService.getPartitionIds(withReview);
List<String> questionnaires = dataProcessingContextService.getCollectionInstrumentIds(withReview);
return ResponseEntity.ok(questionnaires);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,11 @@ void saveKraftwerkExecutionScheduleByCollectionInstrumentId(String collectionIns

DataProcessingContextModel getContextByCollectionInstrumentId(String collectionInstrumentId);

@Deprecated(forRemoval = true)
List<String> getPartitionIds(boolean withReview);

List<String> getCollectionInstrumentIds(boolean withReview);

/**
* Gets the review indicator for a partition
* @param partitionId id of the partition
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -256,11 +256,11 @@ public DataProcessingContextModel getContext(String interrogationId) throws Gene

@Override
public DataProcessingContextModel getContextByCollectionInstrumentId(String collectionInstrumentId){
return dataProcessingContextPersistancePort.findByCollectionInstrumentId(collectionInstrumentId)
;
return dataProcessingContextPersistancePort.findByCollectionInstrumentId(collectionInstrumentId);
}

@Override
@Deprecated(forRemoval = true)
public List<String> getPartitionIds(boolean withReview){
List<String> partitionIds = new ArrayList<>();
for(DataProcessingContextModel dataProcessingContextModel
Expand All @@ -272,6 +272,20 @@ public List<String> getPartitionIds(boolean withReview){
return partitionIds;
}

@Override
public List<String> getCollectionInstrumentIds(boolean withReview) {
List<String> collectionInstrumentIds = new ArrayList<>();
for(DataProcessingContextModel dataProcessingContextModel
: DataProcessingContextMapper.INSTANCE.listDocumentToListModel(
dataProcessingContextPersistancePort.findAllByReview(withReview)
)){
if(dataProcessingContextModel.getCollectionInstrumentId() != null) {
collectionInstrumentIds.add(dataProcessingContextModel.getCollectionInstrumentId());
}
}
return collectionInstrumentIds;
}

@Deprecated(forRemoval = true)
@Override
public boolean getReviewByPartitionId(String partitionId) throws GenesisException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ public class DataProcessingContextDocument{
@Id
private ObjectId id;
@Indexed
@Deprecated
private String partitionId; //ex Survey Name, campaignId
@Indexed
private String collectionInstrumentId; // QuestionnaireId
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ void getQuestionnairesWithReviewTest() {
Assertions.assertThat(response.getBody()).isNotNull().isEmpty();

DataProcessingContextDocument doc = new DataProcessingContextDocument();
doc.setPartitionId(DEFAULT_COLLECTION_INSTRUMENT_ID);
doc.setCollectionInstrumentId(DEFAULT_COLLECTION_INSTRUMENT_ID);
doc.setKraftwerkExecutionScheduleList(new ArrayList<>());
doc.setWithReview(true);
dataProcessingContextPersistancePortStub.getMongoStub().add(doc);
Expand All @@ -89,7 +89,7 @@ void getQuestionnairesWithReviewTest() {
DEFAULT_COLLECTION_INSTRUMENT_ID);

DataProcessingContextDocument doc2 = new DataProcessingContextDocument();
doc2.setPartitionId(questionnaireId);
doc2.setCollectionInstrumentId(questionnaireId);
doc2.setKraftwerkExecutionScheduleList(new ArrayList<>());
doc2.setWithReview(false);
dataProcessingContextPersistancePortStub.getMongoStub().add(doc2);
Expand All @@ -111,7 +111,7 @@ void getQuestionnairesWithoutReviewTest() {
Assertions.assertThat(response.getBody()).isNotNull().isEmpty();

DataProcessingContextDocument doc = new DataProcessingContextDocument();
doc.setPartitionId(DEFAULT_COLLECTION_INSTRUMENT_ID);
doc.setCollectionInstrumentId(DEFAULT_COLLECTION_INSTRUMENT_ID);
doc.setKraftwerkExecutionScheduleList(new ArrayList<>());
doc.setWithReview(false);
dataProcessingContextPersistancePortStub.getMongoStub().add(doc);
Expand All @@ -122,7 +122,7 @@ void getQuestionnairesWithoutReviewTest() {
DEFAULT_COLLECTION_INSTRUMENT_ID);

DataProcessingContextDocument doc2 = new DataProcessingContextDocument();
doc2.setPartitionId(questionnaireId);
doc2.setCollectionInstrumentId(questionnaireId);
doc2.setKraftwerkExecutionScheduleList(new ArrayList<>());
doc2.setWithReview(true);
dataProcessingContextPersistancePortStub.getMongoStub().add(doc2);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package fr.insee.genesis.controller.rest.responses;

import fr.insee.genesis.domain.ports.api.DataProcessingContextApiPort;
import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

class QuestionnaireControllerUnitTest {

private QuestionnaireController questionnaireController;
private DataProcessingContextApiPort dataProcessingContextApiPort;

@BeforeEach
void setUp() {
dataProcessingContextApiPort = mock(DataProcessingContextApiPort.class);
questionnaireController = new QuestionnaireController(
mock(SurveyUnitApiPort.class),
dataProcessingContextApiPort
);
}

@Test
void getQuestionnairesWithReviewTest() {
//WHEN
questionnaireController.getQuestionnairesWithReview(true);

verify(dataProcessingContextApiPort, times(1)).getCollectionInstrumentIds(anyBoolean());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import fr.insee.genesis.domain.ports.spi.DataProcessingContextPersistancePort;
import fr.insee.genesis.domain.ports.spi.SurveyUnitPersistencePort;
import fr.insee.genesis.exceptions.GenesisException;
import fr.insee.genesis.infrastructure.document.context.DataProcessingContextDocument;
import lombok.SneakyThrows;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
Expand All @@ -16,6 +17,7 @@
import java.util.List;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;

Expand Down Expand Up @@ -111,7 +113,6 @@ void getContext_multiple_CollectionInstruementIds_test() {
@Test
@SneakyThrows
void getContext_no_CollectionInstruementIds_test() {
//GIVEN
//GIVEN
String collectionInstrumentId = TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID;
String interrogationId = TestConstants.DEFAULT_INTERROGATION_ID;
Expand All @@ -133,4 +134,27 @@ void getContext_no_CollectionInstruementIds_test() {
dataProcessingContextService.getContext(TestConstants.DEFAULT_INTERROGATION_ID))
.isInstanceOf(GenesisException.class);
}

@Test
void getCollectionInstrumentIdsWithReview_test() {
//GIVEN
DataProcessingContextDocument dataProcessingContextDocument = new DataProcessingContextDocument();
dataProcessingContextDocument.setCollectionInstrumentId(TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID);
dataProcessingContextDocument.setWithReview(true);
//null collectionInstrumentId
DataProcessingContextDocument dataProcessingContextDocumentNull = new DataProcessingContextDocument();
dataProcessingContextDocumentNull.setCollectionInstrumentId(null);
dataProcessingContextDocumentNull.setWithReview(true);
List<DataProcessingContextDocument> documents = List.of(
dataProcessingContextDocument,
dataProcessingContextDocumentNull
);
doReturn(documents).when(dataProcessingContextPersistancePort).findAllByReview(anyBoolean());

//WHEN
List<String> collectionInstrumentIds = dataProcessingContextService.getCollectionInstrumentIds(true);

//THEN
Assertions.assertThat(collectionInstrumentIds).containsExactly(TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID);
}
}
Loading