1+ package fr .insee .genesis .domain .service .context ;
2+
3+ import fr .insee .genesis .TestConstants ;
4+ import fr .insee .genesis .domain .model .context .DataProcessingContextModel ;
5+ import fr .insee .genesis .domain .model .surveyunit .SurveyUnitModel ;
6+ import fr .insee .genesis .domain .ports .spi .DataProcessingContextPersistancePort ;
7+ import fr .insee .genesis .domain .ports .spi .SurveyUnitPersistencePort ;
8+ import fr .insee .genesis .exceptions .GenesisException ;
9+ import lombok .SneakyThrows ;
10+ import org .assertj .core .api .Assertions ;
11+ import org .junit .jupiter .api .BeforeEach ;
12+ import org .junit .jupiter .api .Test ;
13+
14+ import java .util .ArrayList ;
15+ import java .util .Collections ;
16+ import java .util .List ;
17+
18+ import static org .mockito .ArgumentMatchers .any ;
19+ import static org .mockito .Mockito .doReturn ;
20+ import static org .mockito .Mockito .mock ;
21+
22+ class DataProcessingContextServiceUnitTest {
23+
24+ static DataProcessingContextService dataProcessingContextService ;
25+ static DataProcessingContextPersistancePort dataProcessingContextPersistancePort ;
26+ static SurveyUnitPersistencePort surveyUnitPersistencePort ;
27+
28+ @ BeforeEach
29+ void setUp () {
30+ dataProcessingContextPersistancePort = mock (DataProcessingContextPersistancePort .class );
31+ surveyUnitPersistencePort = mock (SurveyUnitPersistencePort .class );
32+ dataProcessingContextService = new DataProcessingContextService (
33+ dataProcessingContextPersistancePort ,
34+ surveyUnitPersistencePort
35+ );
36+ }
37+
38+ @ Test
39+ @ SneakyThrows
40+ void getContext_test () {
41+ //GIVEN
42+ String collectionInstrumentId = TestConstants .DEFAULT_COLLECTION_INSTRUMENT_ID ;
43+ String interrogationId = TestConstants .DEFAULT_INTERROGATION_ID ;
44+ SurveyUnitModel surveyUnitModel = SurveyUnitModel .builder ()
45+ .interrogationId (interrogationId )
46+ .collectionInstrumentId (collectionInstrumentId )
47+ .build ();
48+ doReturn (Collections .singletonList (surveyUnitModel ))
49+ .when (surveyUnitPersistencePort )
50+ .findByInterrogationId (any ());
51+ DataProcessingContextModel dataProcessingContextModel = DataProcessingContextModel .builder ()
52+ .collectionInstrumentId (collectionInstrumentId )
53+ .withReview (true )
54+ .build ();
55+ doReturn (dataProcessingContextModel ).when (dataProcessingContextPersistancePort ).findByCollectionInstrumentId (any ());
56+
57+ //WHEN
58+ DataProcessingContextModel returnedContext =
59+ dataProcessingContextService .getContext (interrogationId );
60+
61+ //THEN
62+ Assertions .assertThat (returnedContext .getCollectionInstrumentId ()).isEqualTo (collectionInstrumentId );
63+ Assertions .assertThat (returnedContext .isWithReview ()).isTrue ();
64+ }
65+
66+ @ Test
67+ @ SneakyThrows
68+ void getContext_no_surveyUnit_exception_test () {
69+ //GIVEN
70+ doReturn (new ArrayList <>())
71+ .when (surveyUnitPersistencePort )
72+ .findByInterrogationId (any ());
73+ //WHEN + THEN
74+ Assertions .assertThatThrownBy (() ->
75+ dataProcessingContextService .getContext (TestConstants .DEFAULT_INTERROGATION_ID ))
76+ .isInstanceOf (GenesisException .class );
77+ }
78+
79+ @ Test
80+ @ SneakyThrows
81+ void getContext_multiple_CollectionInstruementIds_test () {
82+ //GIVEN
83+ String collectionInstrumentId = TestConstants .DEFAULT_COLLECTION_INSTRUMENT_ID ;
84+ String interrogationId = TestConstants .DEFAULT_INTERROGATION_ID ;
85+ List <SurveyUnitModel > surveyUnitModelList = new ArrayList <>();
86+ SurveyUnitModel surveyUnitModel = SurveyUnitModel .builder ()
87+ .interrogationId (interrogationId )
88+ .collectionInstrumentId (collectionInstrumentId )
89+ .build ();
90+ surveyUnitModelList .add (surveyUnitModel );
91+ SurveyUnitModel surveyUnitModel2 = SurveyUnitModel .builder ()
92+ .interrogationId (interrogationId )
93+ .collectionInstrumentId (collectionInstrumentId + "2" )
94+ .build ();
95+ surveyUnitModelList .add (surveyUnitModel2 );
96+ doReturn (surveyUnitModelList )
97+ .when (surveyUnitPersistencePort )
98+ .findByInterrogationId (any ());
99+ DataProcessingContextModel dataProcessingContextModel = DataProcessingContextModel .builder ()
100+ .collectionInstrumentId (collectionInstrumentId )
101+ .withReview (true )
102+ .build ();
103+ doReturn (dataProcessingContextModel ).when (dataProcessingContextPersistancePort ).findByCollectionInstrumentId (any ());
104+
105+ //WHEN + THEN
106+ Assertions .assertThatThrownBy (() ->
107+ dataProcessingContextService .getContext (TestConstants .DEFAULT_INTERROGATION_ID ))
108+ .isInstanceOf (GenesisException .class );
109+ }
110+
111+ @ Test
112+ @ SneakyThrows
113+ void getContext_no_CollectionInstruementIds_test () {
114+ //GIVEN
115+ //GIVEN
116+ String collectionInstrumentId = TestConstants .DEFAULT_COLLECTION_INSTRUMENT_ID ;
117+ String interrogationId = TestConstants .DEFAULT_INTERROGATION_ID ;
118+ SurveyUnitModel surveyUnitModel = SurveyUnitModel .builder ()
119+ .interrogationId (interrogationId )
120+ .collectionInstrumentId (null )
121+ .build ();
122+ doReturn (Collections .singletonList (surveyUnitModel ))
123+ .when (surveyUnitPersistencePort )
124+ .findByInterrogationId (any ());
125+ DataProcessingContextModel dataProcessingContextModel = DataProcessingContextModel .builder ()
126+ .collectionInstrumentId (collectionInstrumentId )
127+ .withReview (true )
128+ .build ();
129+ doReturn (dataProcessingContextModel ).when (dataProcessingContextPersistancePort ).findByCollectionInstrumentId (any ());
130+
131+ //WHEN + THEN
132+ Assertions .assertThatThrownBy (() ->
133+ dataProcessingContextService .getContext (TestConstants .DEFAULT_INTERROGATION_ID ))
134+ .isInstanceOf (GenesisException .class );
135+ }
136+ }
0 commit comments