|
91 | 91 | import static org.gridsuite.study.server.StudyConstants.CASE_API_VERSION;
|
92 | 92 | import static org.gridsuite.study.server.StudyConstants.HEADER_USER_ID;
|
93 | 93 | import static org.gridsuite.study.server.StudyException.Type.STUDY_NOT_FOUND;
|
| 94 | +import static org.gridsuite.study.server.notification.NotificationService.DEFAULT_ERROR_MESSAGE; |
94 | 95 | import static org.gridsuite.study.server.utils.MatcherBasicStudyInfos.createMatcherStudyBasicInfos;
|
95 | 96 | import static org.gridsuite.study.server.utils.MatcherCreatedStudyBasicInfos.createMatcherCreatedStudyBasicInfos;
|
96 | 97 | import static org.gridsuite.study.server.utils.MatcherStudyInfos.createMatcherStudyInfos;
|
@@ -158,6 +159,7 @@ public class StudyTest {
|
158 | 159 | private static final String CASE_3_UUID_STRING = "790769f9-bd31-43be-be46-e50296951e32";
|
159 | 160 | private static final String CASE_UUID_CAUSING_IMPORT_ERROR = "178719f5-cccc-48be-be46-e92345951e32";
|
160 | 161 | private static final String CASE_UUID_CAUSING_STUDY_CREATION_ERROR = "278719f5-cccc-48be-be46-e92345951e32";
|
| 162 | + private static final String CASE_UUID_CAUSING_CONVERSION_ERROR = "278719f5-cccc-48be-be46-e92345951e33"; |
161 | 163 | private static final String NETWORK_UUID_2_STRING = "11111111-aaaa-48be-be46-ef7b93331e32";
|
162 | 164 | private static final String NETWORK_UUID_3_STRING = "22222222-bd31-43be-be46-e50296951e32";
|
163 | 165 | private static final NetworkInfos NETWORK_INFOS_2 = new NetworkInfos(UUID.fromString(NETWORK_UUID_2_STRING), "file_2.xiidm");
|
@@ -454,6 +456,10 @@ public MockResponse dispatch(RecordedRequest request) {
|
454 | 456 | sendCaseImportFailedMessage(path, STUDY_CREATION_ERROR_MESSAGE);
|
455 | 457 | return new MockResponse().setResponseCode(200)
|
456 | 458 | .addHeader("Content-Type", "application/json; charset=utf-8");
|
| 459 | + } else if (path.matches("/v1/networks\\?caseUuid=" + CASE_UUID_CAUSING_CONVERSION_ERROR + "&variantId=" + FIRST_VARIANT_ID + "&reportUuid=.*&receiver=.*")) { |
| 460 | + sendCaseImportFailedMessage(path, null); // some conversion errors don't returnany error mesage |
| 461 | + return new MockResponse().setResponseCode(200) |
| 462 | + .addHeader("Content-Type", "application/json; charset=utf-8"); |
457 | 463 | } else if (path.matches("/v1/reports/.*")) {
|
458 | 464 | return new MockResponse().setResponseCode(200).setBody(mapper.writeValueAsString(ROOT_REPORT_TEST.getChildren()))
|
459 | 465 | .addHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
|
@@ -522,6 +528,9 @@ public MockResponse dispatch(RecordedRequest request) {
|
522 | 528 | case "/v1/cases/" + CASE_UUID_CAUSING_STUDY_CREATION_ERROR + "/exists":
|
523 | 529 | return new MockResponse().setResponseCode(200).setBody("true")
|
524 | 530 | .addHeader("Content-Type", "application/json; charset=utf-8");
|
| 531 | + case "/v1/cases/" + CASE_UUID_CAUSING_CONVERSION_ERROR + "/exists": |
| 532 | + return new MockResponse().setResponseCode(200).setBody("true") |
| 533 | + .addHeader("Content-Type", "application/json; charset=utf-8"); |
525 | 534 | case "/v1/cases/" + CASE_UUID_STRING + "/infos":
|
526 | 535 | return new MockResponse().setResponseCode(200)
|
527 | 536 | .setBody("{\"uuid\":\"" + CASE_UUID_STRING + "\",\"name\":\"" + TEST_FILE_UCTE + "\",\"format\":\"UCTE\"}")
|
@@ -1170,6 +1179,30 @@ public void testCreateStudyWithErrorDuringCaseImport() throws Exception {
|
1170 | 1179 | assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/networks\\?caseUuid=" + CASE_UUID_CAUSING_IMPORT_ERROR + "&variantId=" + FIRST_VARIANT_ID + "&reportUuid=.*")));
|
1171 | 1180 | }
|
1172 | 1181 |
|
| 1182 | + @Test |
| 1183 | + public void testCreateStudyCreationFailedWithoutErrorMessage() throws Exception { |
| 1184 | + String userId = "userId"; |
| 1185 | + mockMvc.perform(post("/v1/studies/cases/{caseUuid}", CASE_UUID_CAUSING_CONVERSION_ERROR) |
| 1186 | + .header("userId", userId) |
| 1187 | + .param(CASE_FORMAT, "XIIDM")) |
| 1188 | + .andExpect(status().isOk()); |
| 1189 | + |
| 1190 | + // assert that the broker message has been sent a study creation request message |
| 1191 | + Message<byte[]> message = output.receive(TIMEOUT, "study.update"); |
| 1192 | + MessageHeaders headers = message.getHeaders(); |
| 1193 | + assertEquals(userId, headers.get(HEADER_USER_ID)); |
| 1194 | + assertEquals(NotificationService.UPDATE_TYPE_STUDIES, headers.get(HEADER_UPDATE_TYPE)); |
| 1195 | + |
| 1196 | + // checks that the error message has a default value set |
| 1197 | + message = output.receive(TIMEOUT, "study.update"); |
| 1198 | + headers = message.getHeaders(); |
| 1199 | + assertEquals(userId, headers.get(HEADER_USER_ID)); |
| 1200 | + assertEquals(NotificationService.UPDATE_TYPE_STUDIES, headers.get(HEADER_UPDATE_TYPE)); |
| 1201 | + assertEquals(DEFAULT_ERROR_MESSAGE, headers.get(NotificationService.HEADER_ERROR)); |
| 1202 | + |
| 1203 | + TestUtils.getRequestsDone(2, server); |
| 1204 | + } |
| 1205 | + |
1173 | 1206 | @Test
|
1174 | 1207 | public void testCreateStudyWithErrorDuringStudyCreation() throws Exception {
|
1175 | 1208 | String userId = "userId";
|
|
0 commit comments