Skip to content

Commit db9b2cf

Browse files
authored
bugfix, don't reset provider for loadflow param reset from profile (#563)
This is for consistency with how it works from system default values Signed-off-by: HARPER Jon <[email protected]>
1 parent 6bc130e commit db9b2cf

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/main/java/org/gridsuite/study/server/service/StudyService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,11 @@ public boolean createOrUpdateLoadFlowParameters(StudyEntity studyEntity, String
10771077
// reset case, with existing profile, having default LF params
10781078
try {
10791079
UUID loadFlowParametersFromProfileUuid = loadflowService.duplicateLoadFlowParameters(userProfileInfos.getLoadFlowParameterId());
1080+
if (existingLoadFlowParametersUuid != null) {
1081+
//For a reset to defaultValues we need to keep the provider if it exists because it's updated separately
1082+
String keptProvider = loadflowService.getLoadFlowParameters(existingLoadFlowParametersUuid).getProvider();
1083+
loadflowService.updateLoadFlowProvider(loadFlowParametersFromProfileUuid, keptProvider);
1084+
}
10801085
studyEntity.setLoadFlowParametersUuid(loadFlowParametersFromProfileUuid);
10811086
removeLoadFlowParameters(existingLoadFlowParametersUuid);
10821087
return userProfileIssue;

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

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,9 @@ public MockResponse dispatch(RecordedRequest request) {
318318
// params duplication request OK
319319
return new MockResponse().setResponseCode(200).setBody(DUPLICATED_PARAMS_JSON)
320320
.addHeader("Content-Type", "application/json; charset=utf-8");
321+
} else if (path.matches("/v1/parameters/" + PROFILE_LOADFLOW_DUPLICATED_PARAMETERS_UUID_STRING + "/provider") && method.equals("PATCH")) {
322+
// provider update in duplicated params OK
323+
return new MockResponse().setResponseCode(200);
321324
} else {
322325
LOGGER.error("Unhandled method+path: " + request.getMethod() + " " + request.getPath());
323326
return new MockResponse().setResponseCode(418).setBody("Unhandled method+path: " + request.getMethod() + " " + request.getPath());
@@ -665,9 +668,21 @@ public void testResetLoadFlowParametersUserHasValidParamsInProfile() throws Exce
665668
UUID studyNameUserIdUuid = studyEntity.getId();
666669
createOrUpdateParametersAndDoChecks(studyNameUserIdUuid, "", VALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.OK);
667670

668-
var requests = TestUtils.getRequestsDone(3, server);
671+
var requests = TestUtils.getRequestsDone(5, server);
672+
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/users/" + VALID_PARAMS_IN_PROFILE_USER_ID + "/profile")));
673+
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING))); // 2 requests: 1 get for provider and then delete existing
674+
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/parameters?duplicateFrom=" + PROFILE_LOADFLOW_VALID_PARAMETERS_UUID_STRING))); // post duplicate ok
675+
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/parameters/" + PROFILE_LOADFLOW_DUPLICATED_PARAMETERS_UUID_STRING + "/provider"))); // patch duplicated params for provider
676+
}
677+
678+
@Test
679+
public void testResetLoadFlowParametersUserHasValidParamsInProfileButNoExistingLoadflowParams() throws Exception {
680+
StudyEntity studyEntity = insertDummyStudy(UUID.fromString(NETWORK_UUID_STRING), CASE_LOADFLOW_UUID, null);
681+
UUID studyNameUserIdUuid = studyEntity.getId();
682+
createOrUpdateParametersAndDoChecks(studyNameUserIdUuid, "", VALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.OK);
683+
684+
var requests = TestUtils.getRequestsDone(2, server);
669685
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/users/" + VALID_PARAMS_IN_PROFILE_USER_ID + "/profile")));
670-
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING))); // delete existing
671686
assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/parameters?duplicateFrom=" + PROFILE_LOADFLOW_VALID_PARAMETERS_UUID_STRING))); // post duplicate ok
672687
}
673688

0 commit comments

Comments
 (0)