-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathInterrogationControllerTest.java
More file actions
133 lines (115 loc) · 5 KB
/
Copy pathInterrogationControllerTest.java
File metadata and controls
133 lines (115 loc) · 5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package fr.insee.genesis.controller.rest.responses;
import fr.insee.genesis.TestConstants;
import fr.insee.genesis.controller.dto.InterrogationBatchResponse;
import fr.insee.genesis.domain.model.surveyunit.InterrogationId;
import fr.insee.genesis.domain.model.surveyunit.InterrogationInfo;
import fr.insee.genesis.domain.ports.api.SurveyUnitApiPort;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.http.ResponseEntity;
import java.time.Instant;
import java.util.List;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
@ExtendWith(MockitoExtension.class)
class InterrogationControllerTest {
@Mock
private SurveyUnitApiPort surveyUnitApiPort;
@InjectMocks
private InterrogationController interrogationController;
@Test
void getAllInterrogationIdsByQuestionnaire_test() {
//GIVEN
List<InterrogationId> interrogationIds = List.of(
new InterrogationId("test"),
new InterrogationId("test2"));
doReturn(interrogationIds).when(surveyUnitApiPort).findDistinctInterrogationIdsByQuestionnaireId(any());
//WHEN
ResponseEntity<List<InterrogationId>> response =
interrogationController.getAllInterrogationIdsByQuestionnaire(TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID);
//THEN
verify(surveyUnitApiPort, times(1)).findDistinctInterrogationIdsByQuestionnaireId(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID
);
Assertions.assertThat(response.getBody()).isEqualTo(interrogationIds);
}
@Test
void getAllInterrogationIdsByQuestionnaire_date_test() {
//GIVEN
Instant since = Instant.now();
List<InterrogationInfo> interrogationInfos = List.of(
new InterrogationInfo("test", Instant.now()));
doReturn(interrogationInfos).when(surveyUnitApiPort).searchInterrogations(
any(),
any(),
any()
);
//WHEN
ResponseEntity<InterrogationBatchResponse> response =
interrogationController.getAllInterrogationIdsByQuestionnaire(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID,
since,
null,
null,null
);
//THEN
verify(surveyUnitApiPort, times(1)).searchInterrogations(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID,
since,
null
);
Assertions.assertThat(response.getBody().getInterrogationIds().getFirst().getInterrogationId()).isEqualTo(interrogationInfos.getFirst().interrogationId());
}
@Test
void countAllInterrogationIdsByQuestionnaireOrCollectionInstrument() {
//GIVEN
long questionnaireCount = 2;
long collectionInstrumentCount = 3;
doReturn(questionnaireCount).when(surveyUnitApiPort).countResponsesByQuestionnaireId(any());
doReturn(collectionInstrumentCount).when(surveyUnitApiPort).countResponsesByCollectionInstrumentId(any());
//WHEN
ResponseEntity<Long> response = interrogationController.countAllInterrogationIdsByQuestionnaireOrCollectionInstrument(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID
);
//THEN
verify(surveyUnitApiPort, times(1)).countResponsesByQuestionnaireId(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID
);
verify(surveyUnitApiPort, times(1)).countResponsesByCollectionInstrumentId(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID
);
Assertions.assertThat(response.getBody()).isEqualTo(collectionInstrumentCount + questionnaireCount);
}
@Test
void getPaginatedInterrogationIdsByQuestionnaire_test() {
//GIVEN
List<InterrogationId> interrogationIds = List.of(
new InterrogationId("test"),
new InterrogationId("test2"));
doReturn(interrogationIds).when(surveyUnitApiPort).findDistinctPageableInterrogationIdsByQuestionnaireId(
any(), anyLong(), anyLong(), anyLong()
);
//WHEN
ResponseEntity<List<InterrogationId>> response = interrogationController.getPaginatedInterrogationIdsByQuestionnaire(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID,
0,
1000,
0
);
//THEN
verify(surveyUnitApiPort, times(1)).findDistinctPageableInterrogationIdsByQuestionnaireId(
TestConstants.DEFAULT_COLLECTION_INSTRUMENT_ID,
0,
1000,
0
);
Assertions.assertThat(response.getBody()).isEqualTo(interrogationIds);
}
}