Skip to content

Commit 6bc130e

Browse files
default error message for Study Creation Error (#562)
Signed-off-by: Mathieu DEHARBE <[email protected]>
1 parent 939b7bc commit 6bc130e

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

src/main/java/org/gridsuite/study/server/notification/NotificationService.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ public class NotificationService {
104104
public static final String SUBTREE_MOVED = "subtreeMoved";
105105
public static final String SUBTREE_CREATED = "subtreeCreated";
106106
public static final String MESSAGE_LOG = "Sending message : {}";
107+
public static final String DEFAULT_ERROR_MESSAGE = "Unknown error";
107108

108109
public static final String STUDY_ALERT = "STUDY_ALERT";
109110

@@ -163,7 +164,10 @@ public void emitStudyCreationError(UUID studyUuid, String userId, String errorMe
163164
.setHeader(HEADER_STUDY_UUID, studyUuid)
164165
.setHeader(HEADER_USER_ID, userId)
165166
.setHeader(HEADER_UPDATE_TYPE, UPDATE_TYPE_STUDIES)
166-
.setHeader(HEADER_ERROR, errorMessage)
167+
// an error message is needed in order for this message to be interpreted later as an error notification
168+
.setHeader(HEADER_ERROR, (errorMessage == null || errorMessage.isEmpty()) ?
169+
DEFAULT_ERROR_MESSAGE :
170+
errorMessage)
167171
.build());
168172
}
169173

src/test/java/org/gridsuite/study/server/StudyTest.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
import static org.gridsuite.study.server.StudyConstants.CASE_API_VERSION;
9292
import static org.gridsuite.study.server.StudyConstants.HEADER_USER_ID;
9393
import static org.gridsuite.study.server.StudyException.Type.STUDY_NOT_FOUND;
94+
import static org.gridsuite.study.server.notification.NotificationService.DEFAULT_ERROR_MESSAGE;
9495
import static org.gridsuite.study.server.utils.MatcherBasicStudyInfos.createMatcherStudyBasicInfos;
9596
import static org.gridsuite.study.server.utils.MatcherCreatedStudyBasicInfos.createMatcherCreatedStudyBasicInfos;
9697
import static org.gridsuite.study.server.utils.MatcherStudyInfos.createMatcherStudyInfos;
@@ -158,6 +159,7 @@ public class StudyTest {
158159
private static final String CASE_3_UUID_STRING = "790769f9-bd31-43be-be46-e50296951e32";
159160
private static final String CASE_UUID_CAUSING_IMPORT_ERROR = "178719f5-cccc-48be-be46-e92345951e32";
160161
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";
161163
private static final String NETWORK_UUID_2_STRING = "11111111-aaaa-48be-be46-ef7b93331e32";
162164
private static final String NETWORK_UUID_3_STRING = "22222222-bd31-43be-be46-e50296951e32";
163165
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) {
454456
sendCaseImportFailedMessage(path, STUDY_CREATION_ERROR_MESSAGE);
455457
return new MockResponse().setResponseCode(200)
456458
.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");
457463
} else if (path.matches("/v1/reports/.*")) {
458464
return new MockResponse().setResponseCode(200).setBody(mapper.writeValueAsString(ROOT_REPORT_TEST.getChildren()))
459465
.addHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
@@ -522,6 +528,9 @@ public MockResponse dispatch(RecordedRequest request) {
522528
case "/v1/cases/" + CASE_UUID_CAUSING_STUDY_CREATION_ERROR + "/exists":
523529
return new MockResponse().setResponseCode(200).setBody("true")
524530
.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");
525534
case "/v1/cases/" + CASE_UUID_STRING + "/infos":
526535
return new MockResponse().setResponseCode(200)
527536
.setBody("{\"uuid\":\"" + CASE_UUID_STRING + "\",\"name\":\"" + TEST_FILE_UCTE + "\",\"format\":\"UCTE\"}")
@@ -1170,6 +1179,30 @@ public void testCreateStudyWithErrorDuringCaseImport() throws Exception {
11701179
assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/networks\\?caseUuid=" + CASE_UUID_CAUSING_IMPORT_ERROR + "&variantId=" + FIRST_VARIANT_ID + "&reportUuid=.*")));
11711180
}
11721181

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+
11731206
@Test
11741207
public void testCreateStudyWithErrorDuringStudyCreation() throws Exception {
11751208
String userId = "userId";

0 commit comments

Comments
 (0)