diff --git a/pom.xml b/pom.xml index 9d517e7a39..e73dc2a0fd 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ com.powsybl powsybl-parent-ws - 26.1 + 28 diff --git a/src/main/java/org/gridsuite/study/server/RestTemplateConfig.java b/src/main/java/org/gridsuite/study/server/RestTemplateConfig.java index e392327955..555f2c4533 100644 --- a/src/main/java/org/gridsuite/study/server/RestTemplateConfig.java +++ b/src/main/java/org/gridsuite/study/server/RestTemplateConfig.java @@ -16,8 +16,8 @@ import com.powsybl.contingency.json.ContingencyJsonModule; import com.powsybl.loadflow.json.LoadFlowParametersJsonModule; import com.powsybl.loadflow.json.LoadFlowResultJsonModule; -import com.powsybl.sensitivity.json.SensitivityJsonModule; import com.powsybl.security.json.SecurityAnalysisJsonModule; +import com.powsybl.sensitivity.json.SensitivityJsonModule; import com.powsybl.shortcircuit.json.ShortCircuitAnalysisJsonModule; import com.powsybl.timeseries.json.TimeSeriesJsonModule; import org.springframework.boot.web.client.RestTemplateBuilder; diff --git a/src/main/java/org/gridsuite/study/server/controller/StudyController.java b/src/main/java/org/gridsuite/study/server/controller/StudyController.java index 08c0a9eec4..a09335b219 100644 --- a/src/main/java/org/gridsuite/study/server/controller/StudyController.java +++ b/src/main/java/org/gridsuite/study/server/controller/StudyController.java @@ -252,7 +252,8 @@ public ResponseEntity duplicateNode(@Parameter(description = "The study wh @Parameter(description = "The copied node original study") @RequestParam(value = "sourceStudyUuid", required = false) UUID sourceStudyUuid, @Parameter(description = "The node we want to copy") @RequestParam("nodeToCopyUuid") UUID nodeToCopyUuid, @Parameter(description = "The reference node to where we want to paste") @RequestParam("referenceNodeUuid") UUID referenceNodeUuid, - @Parameter(description = "The position where the node will be pasted relative to the reference node") @RequestParam(name = "insertMode") InsertMode insertMode, + @Parameter(description = "The position where the node will be pasted relative to the reference node") + @RequestParam(name = "insertMode") InsertMode insertMode, @RequestHeader(HEADER_USER_ID) String userId) { //if the source study is not set we assume it's the same as the target study studyService.assertNoBlockedNodeInStudy(targetStudyUuid, referenceNodeUuid); @@ -269,7 +270,8 @@ public ResponseEntity duplicateNode(@Parameter(description = "The study wh public ResponseEntity cutAndPasteNode(@PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "The node we want to cut") @RequestParam("nodeToCutUuid") UUID nodeToCutUuid, @Parameter(description = "The reference node to where we want to paste") @RequestParam("referenceNodeUuid") UUID referenceNodeUuid, - @Parameter(description = "The position where the node will be pasted relative to the reference node") @RequestParam(name = "insertMode") InsertMode insertMode, + @Parameter(description = "The position where the node will be pasted relative to the reference node") + @RequestParam(name = "insertMode") InsertMode insertMode, @RequestHeader(HEADER_USER_ID) String userId) { studyService.assertNoBlockedNodeInStudy(studyUuid, nodeToCutUuid); studyService.assertCanUpdateNodeInStudy(studyUuid, nodeToCutUuid); @@ -355,9 +357,10 @@ public ResponseEntity cutAndPasteNodeSubtree(@PathVariable("studyUuid") UU @ApiResponse(responseCode = "404", description = "The source study or subtree doesn't exist")}) public ResponseEntity duplicateSubtree(@Parameter(description = "The study where we want to copy the node") @PathVariable("studyUuid") UUID targetStudyUuid, @Parameter(description = "The copied node original study") @RequestParam(value = "sourceStudyUuid") UUID sourceStudyUuid, - @Parameter(description = "The parent node of the subtree we want to cut") @RequestParam("subtreeToCopyParentNodeUuid") UUID subtreeToCopyParentNodeUuid, - @Parameter(description = "The reference node to where we want to paste") @RequestParam("referenceNodeUuid") UUID referenceNodeUuid, - @RequestHeader(HEADER_USER_ID) String userId) { + @Parameter(description = "The parent node of the subtree we want to cut") + @RequestParam("subtreeToCopyParentNodeUuid") UUID subtreeToCopyParentNodeUuid, + @Parameter(description = "The reference node to where we want to paste") @RequestParam("referenceNodeUuid") UUID referenceNodeUuid, + @RequestHeader(HEADER_USER_ID) String userId) { studyService.assertNoBlockedNodeInStudy(targetStudyUuid, referenceNodeUuid); studyService.duplicateStudySubtree(sourceStudyUuid, targetStudyUuid, subtreeToCopyParentNodeUuid, referenceNodeUuid, userId); return ResponseEntity.ok().build(); @@ -409,8 +412,10 @@ public ResponseEntity> getVoltageLevelBusesOrBusbarSecti @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @PathVariable("voltageLevelId") String voltageLevelId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelBusesOrBusbarSections(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode)); + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelBusesOrBusbarSections(nodeUuid, rootNetworkUuid, voltageLevelId, + inUpstreamBuiltParentNode)); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/switches") @@ -421,8 +426,10 @@ public ResponseEntity getVoltageLevelSwitches( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @PathVariable("voltageLevelId") String voltageLevelId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelTopologyInfos(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode, "switches")); + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelTopologyInfos(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode, + "switches")); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/bus-bar-sections") @@ -433,8 +440,10 @@ public ResponseEntity getVoltageLevelBusBarSections( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @PathVariable("voltageLevelId") String voltageLevelId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelTopologyInfos(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode, "bus-bar-sections")); + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelTopologyInfos(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode, + "bus-bar-sections")); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/feeder-bays") @@ -445,8 +454,10 @@ public ResponseEntity getVoltageLevelFeederBays( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @PathVariable("voltageLevelId") String voltageLevelId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelTopologyInfos(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode, "feeder-bays")); + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelTopologyInfos(nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode, + "feeder-bays")); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/substation-id") @@ -457,7 +468,8 @@ public ResponseEntity getVoltageLevelSubstationId( @Parameter(description = "Root network uuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "voltageLevelId") @PathVariable("voltageLevelId") String voltageLevelId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { return ResponseEntity.ok().body(studyService.getVoltageLevelSubstationId(studyUuid, nodeUuid, rootNetworkUuid, voltageLevelId, inUpstreamBuiltParentNode)); } @@ -469,12 +481,14 @@ public ResponseEntity getHvdcLineShuntCompensators( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @PathVariable("hvdcId") String hvdcId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { String hvdcInfos = studyService.getHvdcLineShuntCompensators(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode, hvdcId); return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(hvdcInfos); } - @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/geo-data/lines", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/geo-data/lines", consumes = MediaType.APPLICATION_JSON_VALUE, + produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get Network lines graphics") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The list of line graphics with the given ids, all otherwise")}) public ResponseEntity getLineGraphics( @@ -485,7 +499,8 @@ public ResponseEntity getLineGraphics( return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getLinesGraphics(rootNetworkService.getNetworkUuid(rootNetworkUuid), nodeUuid, rootNetworkUuid, linesIds)); } - @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/geo-data/substations", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/geo-data/substations", consumes = MediaType.APPLICATION_JSON_VALUE, + produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get Network substations graphics") @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The list of substation graphics with the given ids, all otherwise")}) public ResponseEntity getSubstationGraphics( @@ -493,7 +508,8 @@ public ResponseEntity getSubstationGraphics( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @RequestBody(required = false) List substationsIds) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getSubstationsGraphics(rootNetworkService.getNetworkUuid(rootNetworkUuid), nodeUuid, rootNetworkUuid, substationsIds)); + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getSubstationsGraphics(rootNetworkService.getNetworkUuid(rootNetworkUuid), nodeUuid, rootNetworkUuid, + substationsIds)); } @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/equipments-ids") @@ -504,11 +520,13 @@ public ResponseEntity getNetworkElementsIds( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @RequestBody(required = false) List substationsIds, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode, + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode, @Parameter(description = "equipment type") @RequestParam(name = "equipmentType") String equipmentType, @Parameter(description = "Nominal Voltages") @RequestParam(name = "nominalVoltages", required = false) List nominalVoltages) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementsIds(nodeUuid, rootNetworkUuid, substationsIds, inUpstreamBuiltParentNode, equipmentType, nominalVoltages)); + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementsIds(nodeUuid, rootNetworkUuid, substationsIds, inUpstreamBuiltParentNode, equipmentType, + nominalVoltages)); } @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements") @@ -525,7 +543,8 @@ public ResponseEntity getNetworkElementsInfos( @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode, @Parameter(description = "Nominal Voltages") @RequestParam(name = "nominalVoltages", required = false) List nominalVoltages) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementsInfos(studyUuid, nodeUuid, rootNetworkUuid, substationsIds, infoType, elementType, inUpstreamBuiltParentNode, nominalVoltages)); + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementsInfos(studyUuid, nodeUuid, rootNetworkUuid, substationsIds, infoType, elementType, + inUpstreamBuiltParentNode, nominalVoltages)); } @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements-by-global-filter") @@ -555,9 +574,11 @@ public ResponseEntity getNetworkElementInfos( @Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "Element id") @PathVariable("elementId") String elementId, @Parameter(description = "Element type") @RequestParam(name = "elementType") String elementType, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode, + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode, @Parameter(description = "Info type parameters") InfoTypeParameters infoTypeParameters) { - return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementInfos(studyUuid, nodeUuid, rootNetworkUuid, elementType, infoTypeParameters, elementId, inUpstreamBuiltParentNode)); + return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkElementInfos(studyUuid, nodeUuid, rootNetworkUuid, elementType, infoTypeParameters, elementId, + inUpstreamBuiltParentNode)); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/countries") @@ -567,7 +588,8 @@ public ResponseEntity getNetworkCountries( @Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Root network uuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkCountries(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode)); } @@ -579,14 +601,16 @@ public ResponseEntity getNetworkNominalVoltages( @Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Root network uuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getNetworkNominalVoltages(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode)); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/branch-or-3wt/{equipmentId}/voltage-level-id") @Operation(summary = "Get Voltage level ID for a specific line or 2WT or 3WT and a given side") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The voltage level id attached to line or 2WT or 3WT"), @ApiResponse(responseCode = "204", description = "No voltageLevel ID found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The voltage level id attached to line or 2WT or 3WT"), @ApiResponse(responseCode = "204", + description = "No voltageLevel ID found")}) public ResponseEntity getBranchOr3WTVoltageLevelId( @PathVariable("studyUuid") UUID studyUuid, @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @@ -606,7 +630,8 @@ public ResponseEntity getVoltageLevelEquipments( @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "voltage level id") @PathVariable("voltageLevelId") String voltageLevelId, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.getVoltageLevelEquipments(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode, voltageLevelId)); } @@ -719,7 +744,8 @@ public ResponseEntity insertCompositeModifications(@PathVariable("studyUui return ResponseEntity.ok().build(); } - private void handleInsertCompositeNetworkModifications(UUID targetStudyUuid, UUID targetNodeUuid, List> modificationsToCopy, String userId, CompositeModificationsActionType action) { + private void handleInsertCompositeNetworkModifications(UUID targetStudyUuid, UUID targetNodeUuid, List> modificationsToCopy, String userId, + CompositeModificationsActionType action) { studyService.assertNoBlockedNodeInStudy(targetStudyUuid, targetNodeUuid); studyService.invalidateNodeTreeWithLF(targetStudyUuid, targetNodeUuid); try { @@ -877,7 +903,8 @@ public ResponseEntity getShortCircuitResult(@Parameter(description = "st @Parameter(description = "type") @RequestParam(value = "type", required = false, defaultValue = "ALL_BUSES") ShortcircuitAnalysisType type, @Parameter(description = "JSON array of filters") @RequestParam(name = "filters", required = false) String filters, @Parameter(description = "JSON array of global filters") @RequestParam(name = "globalFilters", required = false) String globalFilters, - @Parameter(description = "If we wanted the paged version of the results or not") @RequestParam(name = "paged", required = false, defaultValue = "false") boolean paged, + @Parameter(description = "If we wanted the paged version of the results or not") @RequestParam(name = "paged", required = false, + defaultValue = "false") boolean paged, Pageable pageable) { String result = rootNetworkNodeInfoService.getShortCircuitAnalysisResult(new ResultParameters(rootNetworkUuid, nodeUuid), mode, type, filters, globalFilters, paged, pageable); return result != null ? ResponseEntity.ok().body(result) : @@ -892,7 +919,8 @@ public ResponseEntity getShortCircuitResult(@Parameter(description = "st public ResponseEntity getShortCircuitAnalysisStatus(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "nodeUuid") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "type") @RequestParam(value = "type", required = false, defaultValue = "ALL_BUSES") ShortcircuitAnalysisType type) { + @Parameter(description = "type") @RequestParam(value = "type", required = false, + defaultValue = "ALL_BUSES") ShortcircuitAnalysisType type) { String result = rootNetworkNodeInfoService.getShortCircuitAnalysisStatus(nodeUuid, rootNetworkUuid, type); return result != null ? ResponseEntity.ok().body(result) : ResponseEntity.noContent().build(); @@ -1111,8 +1139,10 @@ public byte[] getSecurityAnalysisResult(@Parameter(description = "study UUID") @ public ResponseEntity getContingencyCount(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "rootNetworkUuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "Contingency list UUIDs") @RequestParam(name = "contingencyListIds", required = false) List contingencyListIds) { - return ResponseEntity.ok().body(CollectionUtils.isEmpty(contingencyListIds) ? ActionsService.EMPTY_CONTINGENCY_COUNT : studyService.getContingencyCount(studyUuid, contingencyListIds, nodeUuid, rootNetworkUuid)); + @Parameter(description = "Contingency list UUIDs") @RequestParam(name = "contingencyListIds", + required = false) List contingencyListIds) { + return ResponseEntity.ok().body(CollectionUtils.isEmpty(contingencyListIds) ? ActionsService.EMPTY_CONTINGENCY_COUNT : studyService.getContingencyCount(studyUuid, contingencyListIds, nodeUuid, + rootNetworkUuid)); } @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/limit-violations") @@ -1280,7 +1310,8 @@ public ResponseEntity stopSecurityAnalysis(@Parameter(description = "Study public ResponseEntity> getParentNodesReport(@Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Root network uuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "Node only report") @RequestParam(value = "nodeOnlyReport", required = false, defaultValue = "true") boolean nodeOnlyReport, + @Parameter(description = "Node only report") @RequestParam(value = "nodeOnlyReport", required = false, + defaultValue = "true") boolean nodeOnlyReport, @Parameter(description = "The report Type") @RequestParam(name = "reportType") StudyService.ReportType reportType, @Parameter(description = "Severity levels") @RequestParam(name = "severityLevels", required = false) Set severityLevels) { studyService.assertIsStudyAndNodeExist(studyUuid, nodeUuid); @@ -1289,14 +1320,17 @@ public ResponseEntity> getParentNodesReport(@Parameter(description @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get the report logs of the given node and all its parents") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The report logs of the node and all its parent"), @ApiResponse(responseCode = "404", description = "The study/node is not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The report logs of the node and all its parent"), @ApiResponse(responseCode = "404", + description = "The study/node is not found")}) public ResponseEntity getReportLogs(@Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "root network id") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "node id") @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "report id") @RequestParam(name = "reportId", required = false) UUID reportId, @Parameter(description = "The message filter") @RequestParam(name = "message", required = false) String messageFilter, - @Parameter(description = "Severity levels filter") @RequestParam(name = "severityLevels", required = false) Set severityLevels, - @Parameter(description = "If we wanted the paged version of the results or not") @RequestParam(name = "paged", required = false, defaultValue = "false") boolean paged, + @Parameter(description = "Severity levels filter") @RequestParam(name = "severityLevels", + required = false) Set severityLevels, + @Parameter(description = "If we wanted the paged version of the results or not") @RequestParam(name = "paged", required = false, + defaultValue = "false") boolean paged, Pageable pageable) { studyService.assertIsStudyAndNodeExist(studyUuid, nodeUuid); rootNetworkService.assertIsRootNetworkInStudy(studyUuid, rootNetworkUuid); @@ -1327,7 +1361,8 @@ public ResponseEntity getSearchTermMatchesInFilteredLogs( @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/aggregated-severities", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get the report severities of the given node and all its parents") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The report severities of the node and all its parent"), @ApiResponse(responseCode = "404", description = "The study/node is not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The report severities of the node and all its parent"), @ApiResponse(responseCode = "404", + description = "The study/node is not found")}) public ResponseEntity> getParentNodesAggregatedReportSeverities(@Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "root network id") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "node id") @PathVariable("nodeUuid") UUID nodeUuid, @@ -1351,14 +1386,16 @@ public ResponseEntity> getAvailableSvgComponentLibraries() { public ResponseEntity getNetworkModifications(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid, @RequestParam(name = "onlyStashed", required = false, defaultValue = "false") Boolean onlyStashed, - @Parameter(description = "Only metadata") @RequestParam(name = "onlyMetadata", required = false, defaultValue = "false") Boolean onlyMetadata) { + @Parameter(description = "Only metadata") @RequestParam(name = "onlyMetadata", required = false, + defaultValue = "false") Boolean onlyMetadata) { studyService.assertIsStudyAndNodeExist(studyUuid, nodeUuid); return ResponseEntity.ok().contentType(MediaType.TEXT_PLAIN).body(networkModificationTreeService.getNetworkModifications(nodeUuid, onlyStashed, onlyMetadata)); } @GetMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications/export", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get network modifications to export for a given node") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The network modifications to export was returned"), @ApiResponse(responseCode = "404", description = "The study/node is not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The network modifications to export was returned"), @ApiResponse(responseCode = "404", + description = "The study/node is not found")}) public ResponseEntity getExportedNetworkModifications(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid) { studyService.assertIsStudyAndNodeExist(studyUuid, nodeUuid); @@ -1367,8 +1404,9 @@ public ResponseEntity getExportedNetworkModifications(@Parameter(descrip @GetMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/excluded-network-modifications", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get excluded network modifications from a node") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The excluded network modifications were returned"), @ApiResponse(responseCode = "404", description = "The study/node is not found")}) - public ResponseEntity< List> getNetworkModificationsToExclude(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The excluded network modifications were returned"), @ApiResponse(responseCode = "404", + description = "The study/node is not found")}) + public ResponseEntity> getNetworkModificationsToExclude(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid) { studyService.assertIsStudyAndNodeExist(studyUuid, nodeUuid); @@ -1417,7 +1455,8 @@ public ResponseEntity deleteNetworkModifications(@Parameter(description = @PutMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications", params = "stashed") @Operation(summary = "Stash network modifications for a node") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The network modifications were stashed / restored "), @ApiResponse(responseCode = "404", description = "The study/node is not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The network modifications were stashed / restored "), @ApiResponse(responseCode = "404", + description = "The study/node is not found")}) public ResponseEntity stashNetworkModifications(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "Network modification UUIDs") @RequestParam("uuids") List networkModificationUuids, @@ -1435,7 +1474,8 @@ public ResponseEntity stashNetworkModifications(@Parameter(description = " @PutMapping(value = "/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications") @Operation(summary = "Updates the metadata of a network modification") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Update the metadata of a network modification"), @ApiResponse(responseCode = "404", description = "The study/node is not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Update the metadata of a network modification"), @ApiResponse(responseCode = "404", + description = "The study/node is not found")}) public ResponseEntity updateNetworkModificationsMetadata(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "Network modification UUIDs") @RequestParam("uuids") List networkModificationUuids, @@ -1449,7 +1489,8 @@ public ResponseEntity updateNetworkModificationsMetadata(@Parameter(descri @PutMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", params = "activated") @Operation(summary = "Update 'activated' value for a network modifications for a node in a specific root network") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Update the activation status for network modifications on a node in a specific root network"), @ApiResponse(responseCode = "404", description = "The study/root network/node is not found")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "Update the activation status for network modifications on a node in a specific root network"), + @ApiResponse(responseCode = "404", description = "The study/root network/node is not found")}) public ResponseEntity updateNetworkModificationsActivation(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Root network UUID") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid, @@ -1512,7 +1553,8 @@ public ResponseEntity> searchModifications public ResponseEntity createNode(@RequestBody NetworkModificationNode node, @Parameter(description = "study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "parent id of the node created") @PathVariable(name = "id") UUID referenceId, - @Parameter(description = "node is inserted before the given node ID") @RequestParam(name = "mode", required = false, defaultValue = "CHILD") InsertMode insertMode, + @Parameter(description = "node is inserted before the given node ID") @RequestParam(name = "mode", required = false, + defaultValue = "CHILD") InsertMode insertMode, @RequestHeader(HEADER_USER_ID) String userId) { NetworkModificationNode newNode = studyService.createNode(studyUuid, referenceId, node, insertMode, userId); @@ -1750,7 +1792,8 @@ public ResponseEntity notify(@PathVariable("studyUuid") UUID studyUuid) { @PostMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/run") @Operation(summary = "run sensitivity analysis on study") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The sensitivity analysis has started"), @ApiResponse(responseCode = "403", description = "The study node is not a model node")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The sensitivity analysis has started"), @ApiResponse(responseCode = "403", + description = "The study node is not a model node")}) public ResponseEntity runSensitivityAnalysis(@Parameter(description = "studyUuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "rootNetworkUuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "nodeUuid") @PathVariable("nodeUuid") UUID nodeUuid, @@ -1963,7 +2006,8 @@ public ResponseEntity> getDynamicSimulationTimeSer public ResponseEntity> getDynamicSimulationTimeSeriesResult(@Parameter(description = "study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "rootNetworkUuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "nodeUuid") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "timeSeriesNames") @RequestParam(name = "timeSeriesNames", required = false) List timeSeriesNames) { + @Parameter(description = "timeSeriesNames") @RequestParam(name = "timeSeriesNames", + required = false) List timeSeriesNames) { List result = rootNetworkNodeInfoService.getDynamicSimulationTimeSeries(nodeUuid, rootNetworkUuid, timeSeriesNames); return CollectionUtils.isEmpty(result) ? ResponseEntity.noContent().build() : ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(result); @@ -2119,7 +2163,8 @@ public ResponseEntity setSecurityAnalysisParametersValues( @GetMapping(value = "/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", produces = MediaType.APPLICATION_JSON_VALUE) @Operation(summary = "Get the voltage init modifications from a node") - @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The voltage init modifications was returned"), @ApiResponse(responseCode = "404", description = "The study/node is not found, or has no voltage init result")}) + @ApiResponses(value = {@ApiResponse(responseCode = "200", description = "The voltage init modifications was returned"), @ApiResponse(responseCode = "404", + description = "The study/node is not found, or has no voltage init result")}) public ResponseEntity getVoltageInitModifications(@Parameter(description = "Study UUID") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "rootNetworkUuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node UUID") @PathVariable("nodeUuid") UUID nodeUuid) { @@ -2170,7 +2215,7 @@ public ResponseEntity> getOptionalServices() { static class MyEnumConverter> extends PropertyEditorSupport { private final Class enumClass; - public MyEnumConverter(Class enumClass) { + MyEnumConverter(Class enumClass) { this.enumClass = enumClass; } @@ -2188,7 +2233,7 @@ public void setAsText(final String text) throws IllegalArgumentException { static class MyModificationTypeConverter extends PropertyEditorSupport { - public MyModificationTypeConverter() { + MyModificationTypeConverter() { super(); } @@ -2266,7 +2311,8 @@ public ResponseEntity evaluateFilter( @Parameter(description = "Study uuid") @PathVariable("studyUuid") UUID studyUuid, @Parameter(description = "Root network uuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "Node uuid") @PathVariable("nodeUuid") UUID nodeUuid, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode, + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode, @RequestBody String filter) { return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.evaluateFilter(nodeUuid, rootNetworkUuid, inUpstreamBuiltParentNode, filter)); } @@ -2324,7 +2370,8 @@ public ResponseEntity exportFilters( @Parameter(description = "Root network uuid") @PathVariable("rootNetworkUuid") UUID rootNetworkUuid, @Parameter(description = "nodeUuid") @PathVariable("nodeUuid") UUID nodeUuid, @Parameter(description = "Filters uuid to be resolved") @RequestParam("filtersUuid") List filtersUuid, - @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, defaultValue = "false") boolean inUpstreamBuiltParentNode) { + @Parameter(description = "Should get in upstream built node ?") @RequestParam(value = "inUpstreamBuiltParentNode", required = false, + defaultValue = "false") boolean inUpstreamBuiltParentNode) { return ResponseEntity.ok().contentType(MediaType.APPLICATION_JSON).body(studyService.exportFilters(rootNetworkUuid, filtersUuid, nodeUuid, inUpstreamBuiltParentNode)); } diff --git a/src/main/java/org/gridsuite/study/server/controller/SupervisionController.java b/src/main/java/org/gridsuite/study/server/controller/SupervisionController.java index 5219d1b904..329c028fcc 100644 --- a/src/main/java/org/gridsuite/study/server/controller/SupervisionController.java +++ b/src/main/java/org/gridsuite/study/server/controller/SupervisionController.java @@ -44,7 +44,8 @@ public class SupervisionController { private final RestClient restClient; - public SupervisionController(SupervisionService supervisionService, StudyService studyService, RootNetworkService rootNetworkService, EquipmentInfosService equipmentInfosService, RestClient restClient) { + public SupervisionController(SupervisionService supervisionService, StudyService studyService, RootNetworkService rootNetworkService, EquipmentInfosService equipmentInfosService, RestClient + restClient) { this.supervisionService = supervisionService; this.studyService = studyService; this.rootNetworkService = rootNetworkService; diff --git a/src/main/java/org/gridsuite/study/server/dto/CaseInfos.java b/src/main/java/org/gridsuite/study/server/dto/CaseInfos.java index b2582f074d..b902846e8f 100644 --- a/src/main/java/org/gridsuite/study/server/dto/CaseInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/CaseInfos.java @@ -14,7 +14,7 @@ import java.util.UUID; /** - * @author Slimane amar */ @AllArgsConstructor @NoArgsConstructor diff --git a/src/main/java/org/gridsuite/study/server/dto/CreatedStudyBasicInfos.java b/src/main/java/org/gridsuite/study/server/dto/CreatedStudyBasicInfos.java index b49d7c0c68..520b16285b 100644 --- a/src/main/java/org/gridsuite/study/server/dto/CreatedStudyBasicInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/CreatedStudyBasicInfos.java @@ -9,12 +9,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; - import org.gridsuite.study.server.elasticsearch.ESConfig; import org.springframework.data.annotation.TypeAlias; import org.springframework.data.elasticsearch.annotations.Document; - /** * @author Chamseddine Benhamed * @author Slimane Amar diff --git a/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeTreeParameters.java b/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeTreeParameters.java index 7478123792..15f119ffcc 100644 --- a/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeTreeParameters.java +++ b/src/main/java/org/gridsuite/study/server/dto/InvalidateNodeTreeParameters.java @@ -10,7 +10,7 @@ import lombok.Builder; /** - * @author Slimane amar */ @Schema(description = "Invalidation node parameters") @Builder @@ -20,8 +20,11 @@ public record InvalidateNodeTreeParameters( ComputationsInvalidationMode computationsInvalidationMode // Only for the first node (root node) ) { public static InvalidateNodeTreeParameters ALL = new InvalidateNodeTreeParameters(InvalidationMode.ALL, false, ComputationsInvalidationMode.ALL); + @SuppressWarnings("checkstyle:AbbreviationAsWordInName") public static InvalidateNodeTreeParameters ALL_WITH_BLOCK_NODES = new InvalidateNodeTreeParameters(InvalidationMode.ALL, true, ComputationsInvalidationMode.ALL); + @SuppressWarnings("checkstyle:AbbreviationAsWordInName") public static InvalidateNodeTreeParameters ONLY_CHILDREN = new InvalidateNodeTreeParameters(InvalidationMode.ONLY_CHILDREN, false, ComputationsInvalidationMode.ALL); + @SuppressWarnings("checkstyle:AbbreviationAsWordInName") public static InvalidateNodeTreeParameters ONLY_CHILDREN_BUILD_STATUS = new InvalidateNodeTreeParameters(InvalidationMode.ONLY_CHILDREN_BUILD_STATUS, false, ComputationsInvalidationMode.ALL); public enum InvalidationMode { diff --git a/src/main/java/org/gridsuite/study/server/dto/LoadFlowParametersInfos.java b/src/main/java/org/gridsuite/study/server/dto/LoadFlowParametersInfos.java index 6c85be11c2..66f53b6e64 100644 --- a/src/main/java/org/gridsuite/study/server/dto/LoadFlowParametersInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/LoadFlowParametersInfos.java @@ -13,7 +13,7 @@ import java.util.Map; /** - * @author David Braquart + * @author David Braquart */ @Getter @AllArgsConstructor @@ -31,5 +31,4 @@ public class LoadFlowParametersInfos { private List limitReductions; - } diff --git a/src/main/java/org/gridsuite/study/server/dto/UserProfileInfos.java b/src/main/java/org/gridsuite/study/server/dto/UserProfileInfos.java index ca5f10ca6c..d5136b2922 100644 --- a/src/main/java/org/gridsuite/study/server/dto/UserProfileInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/UserProfileInfos.java @@ -14,7 +14,7 @@ import java.util.UUID; /** - * @author David Braquart + * @author David Braquart */ @Getter @AllArgsConstructor diff --git a/src/main/java/org/gridsuite/study/server/dto/caseimport/CaseImportReceiver.java b/src/main/java/org/gridsuite/study/server/dto/caseimport/CaseImportReceiver.java index 6d6b3d3a5e..a9ca608ed1 100644 --- a/src/main/java/org/gridsuite/study/server/dto/caseimport/CaseImportReceiver.java +++ b/src/main/java/org/gridsuite/study/server/dto/caseimport/CaseImportReceiver.java @@ -11,11 +11,10 @@ * @author Kevin Le Saulnier */ -import java.util.UUID; - import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; +import java.util.UUID; @Getter @AllArgsConstructor diff --git a/src/main/java/org/gridsuite/study/server/dto/elasticsearch/EquipmentInfos.java b/src/main/java/org/gridsuite/study/server/dto/elasticsearch/EquipmentInfos.java index dc3ff7af2c..10f6e7f515 100644 --- a/src/main/java/org/gridsuite/study/server/dto/elasticsearch/EquipmentInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/elasticsearch/EquipmentInfos.java @@ -9,7 +9,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; - import org.gridsuite.study.server.dto.VoltageLevelInfos; import org.gridsuite.study.server.elasticsearch.ESConfig; import org.springframework.data.annotation.TypeAlias; @@ -19,7 +18,6 @@ import org.springframework.data.elasticsearch.annotations.InnerField; import org.springframework.data.elasticsearch.annotations.MultiField; import org.springframework.data.elasticsearch.annotations.Setting; - import java.util.Set; /** diff --git a/src/main/java/org/gridsuite/study/server/dto/elasticsearch/TombstonedEquipmentInfos.java b/src/main/java/org/gridsuite/study/server/dto/elasticsearch/TombstonedEquipmentInfos.java index a69341e60d..cede747cd1 100644 --- a/src/main/java/org/gridsuite/study/server/dto/elasticsearch/TombstonedEquipmentInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/elasticsearch/TombstonedEquipmentInfos.java @@ -9,7 +9,6 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import lombok.experimental.SuperBuilder; - import org.gridsuite.study.server.elasticsearch.ESConfig; import org.springframework.data.annotation.TypeAlias; import org.springframework.data.elasticsearch.annotations.Document; diff --git a/src/main/java/org/gridsuite/study/server/dto/impacts/AbstractBaseImpact.java b/src/main/java/org/gridsuite/study/server/dto/impacts/AbstractBaseImpact.java index dca0c00cc9..a52059e68f 100644 --- a/src/main/java/org/gridsuite/study/server/dto/impacts/AbstractBaseImpact.java +++ b/src/main/java/org/gridsuite/study/server/dto/impacts/AbstractBaseImpact.java @@ -10,7 +10,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.powsybl.iidm.network.IdentifiableType; - import lombok.*; import lombok.experimental.SuperBuilder; diff --git a/src/main/java/org/gridsuite/study/server/dto/impacts/SimpleElementImpact.java b/src/main/java/org/gridsuite/study/server/dto/impacts/SimpleElementImpact.java index 180c36442e..303650aeee 100644 --- a/src/main/java/org/gridsuite/study/server/dto/impacts/SimpleElementImpact.java +++ b/src/main/java/org/gridsuite/study/server/dto/impacts/SimpleElementImpact.java @@ -6,13 +6,11 @@ */ package org.gridsuite.study.server.dto.impacts; +import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.*; import lombok.experimental.SuperBuilder; - import java.util.Set; -import com.fasterxml.jackson.annotation.JsonIgnore; - /** * This class describes an element type network impact * This type of network impact only describes an individual impacted item and the list of associated substations diff --git a/src/main/java/org/gridsuite/study/server/dto/modification/NetworkModificationResult.java b/src/main/java/org/gridsuite/study/server/dto/modification/NetworkModificationResult.java index af2ed93a09..ea0bbdb119 100644 --- a/src/main/java/org/gridsuite/study/server/dto/modification/NetworkModificationResult.java +++ b/src/main/java/org/gridsuite/study/server/dto/modification/NetworkModificationResult.java @@ -8,12 +8,10 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; - -import java.util.*; -import java.util.stream.Collectors; - import org.gridsuite.study.server.dto.impacts.AbstractBaseImpact; import org.gridsuite.study.server.dto.impacts.SimpleElementImpact; +import java.util.*; +import java.util.stream.Collectors; /** * @author Slimane Amar diff --git a/src/main/java/org/gridsuite/study/server/dto/supervision/SupervisionStudyInfos.java b/src/main/java/org/gridsuite/study/server/dto/supervision/SupervisionStudyInfos.java index 7da21414b2..a85600cdf0 100644 --- a/src/main/java/org/gridsuite/study/server/dto/supervision/SupervisionStudyInfos.java +++ b/src/main/java/org/gridsuite/study/server/dto/supervision/SupervisionStudyInfos.java @@ -21,7 +21,7 @@ /** * More detailed version of {@code StudyInfos} used for supervision and admin tools operations. * - * @author Mathieu Deharbe + * @author Mathieu Deharbe */ @SuperBuilder @NoArgsConstructor diff --git a/src/main/java/org/gridsuite/study/server/elasticsearch/EquipmentInfosService.java b/src/main/java/org/gridsuite/study/server/elasticsearch/EquipmentInfosService.java index 2c06b33b84..1b7f82aff0 100644 --- a/src/main/java/org/gridsuite/study/server/elasticsearch/EquipmentInfosService.java +++ b/src/main/java/org/gridsuite/study/server/elasticsearch/EquipmentInfosService.java @@ -11,9 +11,8 @@ import co.elastic.clients.elasticsearch._types.aggregations.Aggregation; import co.elastic.clients.elasticsearch._types.query_dsl.*; import co.elastic.clients.json.JsonData; -import lombok.Getter; - import com.powsybl.iidm.network.VariantManagerConstants; +import lombok.Getter; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; import org.gridsuite.study.server.dto.elasticsearch.BasicEquipmentInfos; @@ -29,12 +28,10 @@ import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; - import java.util.*; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.Collectors; - import static java.util.Map.entry; /** @@ -99,7 +96,8 @@ public enum FieldSelector { @Getter private String tombstonedEquipmentsIndexName; - public EquipmentInfosService(EquipmentInfosRepository equipmentInfosRepository, TombstonedEquipmentInfosRepository tombstonedEquipmentInfosRepository, ElasticsearchOperations elasticsearchOperations) { + public EquipmentInfosService(EquipmentInfosRepository equipmentInfosRepository, TombstonedEquipmentInfosRepository tombstonedEquipmentInfosRepository, ElasticsearchOperations + elasticsearchOperations) { this.equipmentInfosRepository = equipmentInfosRepository; this.tombstonedEquipmentInfosRepository = tombstonedEquipmentInfosRepository; this.elasticsearchOperations = elasticsearchOperations; @@ -313,7 +311,8 @@ private BoolQuery buildSearchEquipmentsQuery(String userInput, EquipmentInfosSer TermQuery networkUuidSearchQuery = Queries.termQuery(NETWORK_UUID, networkUuid.toString()); TermsQuery variantIdSearchQuery = variantId.equals(VariantManagerConstants.INITIAL_VARIANT_ID) ? new TermsQuery.Builder().field(VARIANT_ID).terms(new TermsQueryField.Builder().value(List.of(FieldValue.of(VariantManagerConstants.INITIAL_VARIANT_ID))).build()).build() : - new TermsQuery.Builder().field(VARIANT_ID).terms(new TermsQueryField.Builder().value(List.of(FieldValue.of(VariantManagerConstants.INITIAL_VARIANT_ID), FieldValue.of(variantId))).build()).build(); + new TermsQuery.Builder().field(VARIANT_ID).terms(new TermsQueryField.Builder().value(List.of(FieldValue.of(VariantManagerConstants.INITIAL_VARIANT_ID), FieldValue.of( + variantId))).build()).build(); BoolQuery.Builder boolQueryBuilder = new BoolQuery.Builder() .filter( @@ -405,7 +404,8 @@ private List cleanModifiedAndRemovedEquipments(UUID networkUuid, return cleanRemovedEquipments(networkUuid, variantId, equipmentInfos); } - public List searchEquipments(@lombok.NonNull UUID networkUuid, @lombok.NonNull String variantId, @lombok.NonNull String userInput, @lombok.NonNull FieldSelector fieldSelector, String equipmentType) { + public List searchEquipments(@lombok.NonNull UUID networkUuid, @lombok.NonNull String variantId, @lombok.NonNull String userInput, @lombok.NonNull FieldSelector fieldSelector, + String equipmentType) { String effectiveVariantId = variantId.isEmpty() ? VariantManagerConstants.INITIAL_VARIANT_ID : variantId; BoolQuery query = buildSearchEquipmentsQuery(userInput, fieldSelector, networkUuid, diff --git a/src/main/java/org/gridsuite/study/server/elasticsearch/StudyInfosService.java b/src/main/java/org/gridsuite/study/server/elasticsearch/StudyInfosService.java index c6e5197caf..8eec8e989e 100644 --- a/src/main/java/org/gridsuite/study/server/elasticsearch/StudyInfosService.java +++ b/src/main/java/org/gridsuite/study/server/elasticsearch/StudyInfosService.java @@ -7,7 +7,6 @@ package org.gridsuite.study.server.elasticsearch; import co.elastic.clients.elasticsearch._types.query_dsl.QueryStringQuery; - import org.gridsuite.study.server.dto.CreatedStudyBasicInfos; import org.springframework.data.elasticsearch.client.elc.NativeQuery; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; @@ -15,7 +14,6 @@ import org.springframework.data.elasticsearch.core.SearchHits; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; - import java.util.List; import java.util.UUID; import java.util.stream.Collectors; diff --git a/src/main/java/org/gridsuite/study/server/error/RequestLoggingExceptionHandler.java b/src/main/java/org/gridsuite/study/server/error/RequestLoggingExceptionHandler.java index e7c86510d1..7026137332 100644 --- a/src/main/java/org/gridsuite/study/server/error/RequestLoggingExceptionHandler.java +++ b/src/main/java/org/gridsuite/study/server/error/RequestLoggingExceptionHandler.java @@ -8,9 +8,6 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; -import java.util.Map; -import java.util.StringJoiner; - import lombok.NonNull; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -21,6 +18,8 @@ import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; +import java.util.Map; +import java.util.StringJoiner; /** * @author Abdelsalem Hedhili diff --git a/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/InsertMode.java b/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/InsertMode.java index 687571eb53..16bf86ff25 100644 --- a/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/InsertMode.java +++ b/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/InsertMode.java @@ -8,10 +8,10 @@ package org.gridsuite.study.server.networkmodificationtree.dto; /** - * @author Jacques Borsenberger */ public enum InsertMode { BEFORE, AFTER, - CHILD; + CHILD } diff --git a/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/RootNode.java b/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/RootNode.java index d886292564..260acc06f8 100644 --- a/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/RootNode.java +++ b/src/main/java/org/gridsuite/study/server/networkmodificationtree/dto/RootNode.java @@ -7,13 +7,12 @@ package org.gridsuite.study.server.networkmodificationtree.dto; import lombok.AllArgsConstructor; +import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -import lombok.EqualsAndHashCode; import lombok.experimental.SuperBuilder; import org.gridsuite.study.server.networkmodificationtree.entities.NodeType; - import java.util.UUID; /** diff --git a/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/NodeBuildStatusEmbeddable.java b/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/NodeBuildStatusEmbeddable.java index 839fe22b04..1277fbd117 100644 --- a/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/NodeBuildStatusEmbeddable.java +++ b/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/NodeBuildStatusEmbeddable.java @@ -6,14 +6,13 @@ */ package org.gridsuite.study.server.networkmodificationtree.entities; -import lombok.*; -import org.gridsuite.study.server.networkmodificationtree.dto.BuildStatus; -import org.gridsuite.study.server.networkmodificationtree.dto.NodeBuildStatus; - import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; +import lombok.*; +import org.gridsuite.study.server.networkmodificationtree.dto.BuildStatus; +import org.gridsuite.study.server.networkmodificationtree.dto.NodeBuildStatus; /** * @author Hugo Marcellin diff --git a/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/RootNodeInfoEntity.java b/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/RootNodeInfoEntity.java index 460b99c576..81c5990953 100644 --- a/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/RootNodeInfoEntity.java +++ b/src/main/java/org/gridsuite/study/server/networkmodificationtree/entities/RootNodeInfoEntity.java @@ -11,7 +11,6 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; - import lombok.experimental.SuperBuilder; import org.gridsuite.study.server.networkmodificationtree.dto.RootNode; diff --git a/src/main/java/org/gridsuite/study/server/notification/NotificationService.java b/src/main/java/org/gridsuite/study/server/notification/NotificationService.java index 334be2d848..a57a004422 100644 --- a/src/main/java/org/gridsuite/study/server/notification/NotificationService.java +++ b/src/main/java/org/gridsuite/study/server/notification/NotificationService.java @@ -27,7 +27,7 @@ import java.util.*; /** - * @author Nicolas Noir */ @Service public class NotificationService { diff --git a/src/main/java/org/gridsuite/study/server/notification/dto/NetworkImpactsInfos.java b/src/main/java/org/gridsuite/study/server/notification/dto/NetworkImpactsInfos.java index 6260b8cd1f..8866fd87a1 100644 --- a/src/main/java/org/gridsuite/study/server/notification/dto/NetworkImpactsInfos.java +++ b/src/main/java/org/gridsuite/study/server/notification/dto/NetworkImpactsInfos.java @@ -7,11 +7,9 @@ package org.gridsuite.study.server.notification.dto; -import java.util.Set; - import com.fasterxml.jackson.annotation.JsonInclude; - import lombok.*; +import java.util.Set; @AllArgsConstructor @Setter diff --git a/src/main/java/org/gridsuite/study/server/repository/AbstractManuallyAssignedIdentifierEntity.java b/src/main/java/org/gridsuite/study/server/repository/AbstractManuallyAssignedIdentifierEntity.java index a3249666d0..3103a027ad 100644 --- a/src/main/java/org/gridsuite/study/server/repository/AbstractManuallyAssignedIdentifierEntity.java +++ b/src/main/java/org/gridsuite/study/server/repository/AbstractManuallyAssignedIdentifierEntity.java @@ -10,7 +10,6 @@ import jakarta.persistence.PostLoad; import jakarta.persistence.PrePersist; import jakarta.persistence.Transient; - import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; import org.springframework.data.domain.Persistable; diff --git a/src/main/java/org/gridsuite/study/server/repository/NodeAliasEmbeddable.java b/src/main/java/org/gridsuite/study/server/repository/NodeAliasEmbeddable.java index da1505d47f..961b8f3bfe 100644 --- a/src/main/java/org/gridsuite/study/server/repository/NodeAliasEmbeddable.java +++ b/src/main/java/org/gridsuite/study/server/repository/NodeAliasEmbeddable.java @@ -6,14 +6,13 @@ */ package org.gridsuite.study.server.repository; -import java.util.UUID; - import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.UUID; /** * @author Franck Lecuyer diff --git a/src/main/java/org/gridsuite/study/server/repository/StudyCreationRequestEntity.java b/src/main/java/org/gridsuite/study/server/repository/StudyCreationRequestEntity.java index 082ae25416..a1709cbf3b 100644 --- a/src/main/java/org/gridsuite/study/server/repository/StudyCreationRequestEntity.java +++ b/src/main/java/org/gridsuite/study/server/repository/StudyCreationRequestEntity.java @@ -6,11 +6,9 @@ */ package org.gridsuite.study.server.repository; -import java.util.UUID; - -import lombok.*; - import jakarta.persistence.*; +import lombok.*; +import java.util.UUID; /** * @author Slimane Amar diff --git a/src/main/java/org/gridsuite/study/server/repository/dynamicsimulation/entity/EventPropertyEntity.java b/src/main/java/org/gridsuite/study/server/repository/dynamicsimulation/entity/EventPropertyEntity.java index e34204a11c..7f96b81d9e 100644 --- a/src/main/java/org/gridsuite/study/server/repository/dynamicsimulation/entity/EventPropertyEntity.java +++ b/src/main/java/org/gridsuite/study/server/repository/dynamicsimulation/entity/EventPropertyEntity.java @@ -6,13 +6,11 @@ */ package org.gridsuite.study.server.repository.dynamicsimulation.entity; +import jakarta.persistence.*; import lombok.*; import org.gridsuite.study.server.dto.dynamicsimulation.event.EventPropertyInfos; import org.gridsuite.study.server.repository.AbstractManuallyAssignedIdentifierEntity; import org.gridsuite.study.server.utils.PropertyType; - -import jakarta.persistence.*; - import java.io.Serializable; import java.util.UUID; diff --git a/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/NetworkModificationNodeInfoRepository.java b/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/NetworkModificationNodeInfoRepository.java index 12bc076252..5f4dcf7556 100644 --- a/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/NetworkModificationNodeInfoRepository.java +++ b/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/NetworkModificationNodeInfoRepository.java @@ -16,7 +16,7 @@ import java.util.UUID; /** - * @author Jacques Borsenberger */ public interface NetworkModificationNodeInfoRepository extends NodeInfoRepository { List findAllByNodeStudyIdAndName(UUID studyUuid, String name); diff --git a/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/RootNodeInfoRepository.java b/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/RootNodeInfoRepository.java index 017cd7e666..bd1233a280 100644 --- a/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/RootNodeInfoRepository.java +++ b/src/main/java/org/gridsuite/study/server/repository/networkmodificationtree/RootNodeInfoRepository.java @@ -10,7 +10,7 @@ import org.gridsuite.study.server.networkmodificationtree.entities.RootNodeInfoEntity; /** - * @author Jacques Borsenberger */ public interface RootNodeInfoRepository extends NodeInfoRepository { } diff --git a/src/main/java/org/gridsuite/study/server/service/ConsumerService.java b/src/main/java/org/gridsuite/study/server/service/ConsumerService.java index a256da6fb8..c682995a97 100644 --- a/src/main/java/org/gridsuite/study/server/service/ConsumerService.java +++ b/src/main/java/org/gridsuite/study/server/service/ConsumerService.java @@ -126,6 +126,7 @@ private void handleBuildResultWorkflow(UUID studyUuid, UUID nodeUuid, UUID rootN } @Bean + @SuppressWarnings("checkstyle:LambdaBodyLength") public Consumer> consumeBuildStopped() { return message -> { String receiver = message.getHeaders().get(HEADER_RECEIVER, String.class); @@ -151,6 +152,7 @@ public Consumer> consumeBuildStopped() { } @Bean + @SuppressWarnings("checkstyle:LambdaBodyLength") public Consumer> consumeBuildFailed() { return message -> { String receiver = message.getHeaders().get(HEADER_RECEIVER, String.class); @@ -166,7 +168,8 @@ public Consumer> consumeBuildFailed() { // send notification UUID studyUuid = networkModificationTreeService.getStudyUuidForNodeId(receiverObj.getNodeUuid()); - notificationService.emitNodeBuildFailed(studyUuid, receiverObj.getNodeUuid(), receiverObj.getRootNetworkUuid(), message.getHeaders().get(StudyConstants.HEADER_ERROR_MESSAGE, String.class)); + notificationService.emitNodeBuildFailed(studyUuid, receiverObj.getNodeUuid(), receiverObj.getRootNetworkUuid(), message.getHeaders().get(StudyConstants.HEADER_ERROR_MESSAGE, + String.class)); handleBuildCanceledOrFailedWorkflow(studyUuid, receiverObj.getNodeUuid(), receiverObj.getRootNetworkUuid(), message); } catch (JsonProcessingException e) { LOGGER.error(e.toString()); @@ -188,6 +191,7 @@ private void handleBuildCanceledOrFailedWorkflow(UUID studyUuid, UUID nodeUuid, } @Bean + @SuppressWarnings("checkstyle:LambdaBodyLength") public Consumer> consumeCaseImportSucceeded() { return message -> { String receiverString = message.getHeaders().get(HEADER_RECEIVER, String.class); @@ -313,6 +317,7 @@ private UUID createDefaultSpreadsheetConfigCollection(String userId, UserProfile } } + @SuppressWarnings("checkstyle:LambdaBodyLength") private UUID createWorkspacesConfig(UserProfileInfos userProfileInfos) { try { List workspaceIds = new ArrayList<>(); @@ -331,6 +336,7 @@ private UUID createWorkspacesConfig(UserProfileInfos userProfileInfos) { } @Bean + @SuppressWarnings("checkstyle:LambdaBodyLength") public Consumer> consumeCaseImportFailed() { return message -> { String receiverString = message.getHeaders().get(HEADER_RECEIVER, String.class); @@ -467,6 +473,7 @@ public void consumeCalculationDebug(Message msg, ComputationType computa })); } + @SuppressWarnings("checkstyle:LambdaBodyLength") public void consumeCalculationResult(Message msg, ComputationType computationType) { Optional.ofNullable(msg.getHeaders().get(RESULT_UUID, String.class)) .map(UUID::fromString) diff --git a/src/main/java/org/gridsuite/study/server/service/LoadFlowService.java b/src/main/java/org/gridsuite/study/server/service/LoadFlowService.java index 57355c2d5a..6c58f53fcb 100644 --- a/src/main/java/org/gridsuite/study/server/service/LoadFlowService.java +++ b/src/main/java/org/gridsuite/study/server/service/LoadFlowService.java @@ -11,8 +11,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.*; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.repository.StudyEntity; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; @@ -23,7 +23,6 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; - import java.io.UncheckedIOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -31,7 +30,6 @@ import java.util.List; import java.util.Objects; import java.util.UUID; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.COMPUTATION_RUNNING; diff --git a/src/main/java/org/gridsuite/study/server/service/NetworkConversionService.java b/src/main/java/org/gridsuite/study/server/service/NetworkConversionService.java index a50f2c6037..63e6317325 100644 --- a/src/main/java/org/gridsuite/study/server/service/NetworkConversionService.java +++ b/src/main/java/org/gridsuite/study/server/service/NetworkConversionService.java @@ -64,11 +64,13 @@ public NetworkConversionService(@Value("${powsybl.services.network-conversion-se * - one variant for root node - INITIAL_VARIANT * - one variant cloned from the previous one for the 1st node - *variantId* */ - public void persistNetwork(RootNetworkInfos rootNetworkInfos, UUID studyUuid, String variantId, String userId, UUID importReportUuid, Map importParameters, CaseImportAction caseImportAction) { + public void persistNetwork(RootNetworkInfos rootNetworkInfos, UUID studyUuid, String variantId, String userId, UUID importReportUuid, Map importParameters, + CaseImportAction caseImportAction) { String receiver; try { receiver = URLEncoder.encode(objectMapper.writeValueAsString( - new CaseImportReceiver(studyUuid, rootNetworkInfos.getId(), rootNetworkInfos.getCaseInfos().getCaseUuid(), rootNetworkInfos.getCaseInfos().getOriginalCaseUuid(), importReportUuid, userId, System.nanoTime(), caseImportAction + new CaseImportReceiver(studyUuid, rootNetworkInfos.getId(), rootNetworkInfos.getCaseInfos().getCaseUuid(), rootNetworkInfos.getCaseInfos().getOriginalCaseUuid(), + importReportUuid, userId, System.nanoTime(), caseImportAction )), StandardCharsets.UTF_8); } catch (JsonProcessingException e) { throw new UncheckedIOException(e); diff --git a/src/main/java/org/gridsuite/study/server/service/NetworkModificationService.java b/src/main/java/org/gridsuite/study/server/service/NetworkModificationService.java index d38dbff800..291f5402db 100644 --- a/src/main/java/org/gridsuite/study/server/service/NetworkModificationService.java +++ b/src/main/java/org/gridsuite/study/server/service/NetworkModificationService.java @@ -38,7 +38,7 @@ import static org.gridsuite.study.server.utils.JsonUtils.getModificationContextJsonString; /** - * @author Slimane amar * @author Franck Lecuyer */ @Service @@ -257,7 +257,8 @@ public void stopBuild(@NonNull UUID nodeUuid, @NonNull UUID rootNetworkUuid) { restTemplate.put(getNetworkModificationServerURI(false) + path, null); } - public NetworkModificationsResult moveModifications(UUID originGroupUuid, UUID targetGroupUuid, UUID beforeUuid, Pair, List> modificationContextInfos, boolean buildTargetNode) { + public NetworkModificationsResult moveModifications(UUID originGroupUuid, UUID targetGroupUuid, UUID beforeUuid, Pair, List> modificationContextInfos, + boolean buildTargetNode) { var path = UriComponentsBuilder.fromPath(GROUP_PATH) .queryParam(QUERY_PARAM_ACTION, ModificationsActionType.MOVE.name()) .queryParam("originGroupUuid", originGroupUuid) diff --git a/src/main/java/org/gridsuite/study/server/service/NetworkModificationTreeService.java b/src/main/java/org/gridsuite/study/server/service/NetworkModificationTreeService.java index a54e19a98b..a6a2bfa117 100644 --- a/src/main/java/org/gridsuite/study/server/service/NetworkModificationTreeService.java +++ b/src/main/java/org/gridsuite/study/server/service/NetworkModificationTreeService.java @@ -37,7 +37,7 @@ import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; /** - * @author Jacques Borsenberger */ @Service public class NetworkModificationTreeService { @@ -147,7 +147,8 @@ public NetworkModificationNode createNode(@NonNull StudyEntity study, @NonNull U return newNode; } - private NetworkModificationNode duplicateNode(@NonNull StudyEntity targetStudy, @NonNull UUID referenceNodeId, @NonNull NetworkModificationNode newNodeInfo, @NonNull UUID originNodeUuid, @NonNull InsertMode insertMode, Map mappingModificationUuids) { + private NetworkModificationNode duplicateNode(@NonNull StudyEntity targetStudy, @NonNull UUID referenceNodeId, @NonNull NetworkModificationNode newNodeInfo, @NonNull UUID originNodeUuid, + @NonNull InsertMode insertMode, Map mappingModificationUuids) { // create new node NetworkModificationNode newNode = createAndInsertNode(targetStudy, referenceNodeId, newNodeInfo, insertMode); @@ -347,6 +348,7 @@ private void insertNodesToParent(NodeEntity parent, Integer position, List optNodeToDelete = nodesRepository.findById(id); optNodeToDelete.ifPresent(nodeToDelete -> { @@ -465,7 +467,8 @@ private void completeNodeInfos(List nodes, UUID rootNetworkUuid) { if (nodeInfo instanceof RootNode rootNode) { rootNode.setReportUuid(rootNetworkEntity.getReportUuid()); } else { - ((NetworkModificationNode) nodeInfo).completeDtoFromRootNetworkNodeInfo(rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeInfo.getId(), rootNetworkEntity.getId()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"))); + ((NetworkModificationNode) nodeInfo).completeDtoFromRootNetworkNodeInfo(rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeInfo.getId(), + rootNetworkEntity.getId()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found"))); } }); } @@ -713,7 +716,8 @@ public void assertMoveOrDuplicateSubtree(UUID nodeTreeUuid, UUID referenceNodeUu @Transactional(readOnly = true) public boolean isNodeNameExists(UUID studyUuid, String nodeName) { - return ROOT_NODE_NAME.equals(nodeName) || !networkModificationNodeInfoRepository.findAllByNodeStudyIdAndName(studyUuid, nodeName).stream().filter(abstractNodeInfoEntity -> !abstractNodeInfoEntity.getNode().isStashed()).toList().isEmpty(); + return ROOT_NODE_NAME.equals(nodeName) || !networkModificationNodeInfoRepository.findAllByNodeStudyIdAndName(studyUuid, + nodeName).stream().filter(abstractNodeInfoEntity -> !abstractNodeInfoEntity.getNode().isStashed()).toList().isEmpty(); } @Transactional(readOnly = true) @@ -834,7 +838,8 @@ public void restoreNode(UUID studyId, List nodeIds, UUID anchorNodeId) { for (UUID nodeId : nodeIds) { NodeEntity nodeToRestore = getNodeEntity(nodeId); NodeEntity anchorNode = getNodeEntity(anchorNodeId); - NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeToRestore.getIdNode()).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found")); + NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeToRestore.getIdNode()).orElseThrow(() -> new StudyException(NOT_FOUND, + "Node not found")); if (self.isNodeNameExists(studyId, modificationNodeToRestore.getName())) { String newName = getSuffixedNodeName(studyId, modificationNodeToRestore.getName()); modificationNodeToRestore.setName(newName); @@ -880,7 +885,8 @@ public Map getModificationReports(UUID nodeUuid, UUID rootNetworkUui private void restoreNodeChildren(UUID studyId, UUID parentNodeId) { getChildren(parentNodeId).forEach(nodeEntity -> { - NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeEntity.getIdNode()).orElseThrow(() -> new StudyException(NOT_FOUND, "Node not found")); + NetworkModificationNodeInfoEntity modificationNodeToRestore = networkModificationNodeInfoRepository.findById(nodeEntity.getIdNode()).orElseThrow(() -> new StudyException(NOT_FOUND, + "Node not found")); if (self.isNodeNameExists(studyId, modificationNodeToRestore.getName())) { String newName = getSuffixedNodeName(studyId, modificationNodeToRestore.getName()); modificationNodeToRestore.setName(newName); @@ -989,7 +995,8 @@ private void getBuildInfos(NodeEntity nodeEntity, UUID rootNetworkUuid, BuildInf AbstractNode node = getSimpleNode(nodeEntity.getIdNode()); if (node.getType() == NodeType.NETWORK_MODIFICATION) { NetworkModificationNode modificationNode = (NetworkModificationNode) node; - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeEntity.getIdNode(), rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeEntity.getIdNode(), + rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); if (!rootNetworkNodeInfoEntity.getNodeBuildStatus().toDto().isBuilt()) { UUID reportUuid = getModificationReportUuid(nodeEntity.getIdNode(), rootNetworkUuid, nodeToBuildUuid); ReportInfos reportInfos = new ReportInfos(reportUuid, modificationNode.getId(), ReportMode.REPLACE); @@ -1050,7 +1057,8 @@ public InvalidateNodeInfos invalidateNodeTree(UUID nodeUuid, UUID rootNetworkUui // Invalidate indexed nodes if (shouldInvalidateIndexedInfos) { - fillIndexedNodeTreeInfosToInvalidate(nodeEntity, rootNetworkUuid, invalidateNodeInfos, isNodeBuilt && (invalidateTreeParameters.isOnlyChildren() || invalidateTreeParameters.isOnlyChildrenBuildStatus())); + fillIndexedNodeTreeInfosToInvalidate(nodeEntity, rootNetworkUuid, invalidateNodeInfos, + isNodeBuilt && (invalidateTreeParameters.isOnlyChildren() || invalidateTreeParameters.isOnlyChildrenBuildStatus())); } // Children @@ -1169,7 +1177,8 @@ private void fillIndexedNodeTreeInfosToInvalidate(NodeEntity nodeEntity, UUID ro @Transactional public void updateNodeBuildStatus(UUID nodeUuid, UUID rootNetworkUuid, NodeBuildStatus nodeBuildStatus) { UUID studyId = self.getStudyUuidForNodeId(nodeUuid); - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + "Root network not found")); NodeEntity nodeEntity = getNodeEntity(nodeUuid); NodeBuildStatusEmbeddable currentNodeStatus = rootNetworkNodeInfoEntity.getNodeBuildStatus(); @@ -1203,7 +1212,8 @@ public NodeBuildStatus getNodeBuildStatus(UUID nodeUuid, UUID rootNetworkUuid) { return NodeBuildStatus.from(BuildStatus.NOT_BUILT); } - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + "Root network not found")); return rootNetworkNodeInfoEntity.getNodeBuildStatus().toDto(); } diff --git a/src/main/java/org/gridsuite/study/server/service/NetworkService.java b/src/main/java/org/gridsuite/study/server/service/NetworkService.java index 9074ad48fa..6de2919176 100644 --- a/src/main/java/org/gridsuite/study/server/service/NetworkService.java +++ b/src/main/java/org/gridsuite/study/server/service/NetworkService.java @@ -26,7 +26,7 @@ import java.util.stream.Collectors; /** - * @author Slimane amar */ @Service @ComponentScan(basePackageClasses = {NetworkStoreService.class}) diff --git a/src/main/java/org/gridsuite/study/server/service/PccMinService.java b/src/main/java/org/gridsuite/study/server/service/PccMinService.java index af3d071ca7..6e3a88b2fa 100644 --- a/src/main/java/org/gridsuite/study/server/service/PccMinService.java +++ b/src/main/java/org/gridsuite/study/server/service/PccMinService.java @@ -11,21 +11,21 @@ import lombok.Setter; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.*; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.repository.StudyEntity; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; import org.gridsuite.study.server.utils.ResultParameters; import org.gridsuite.study.server.utils.StudyUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.http.*; import org.springframework.lang.Nullable; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; - import java.io.UncheckedIOException; import java.net.URI; import java.net.URLEncoder; @@ -33,9 +33,6 @@ import java.util.List; import java.util.Objects; import java.util.UUID; - -import org.springframework.data.domain.Pageable; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.COMPUTATION_RUNNING; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND; diff --git a/src/main/java/org/gridsuite/study/server/service/RemoteServicesInspector.java b/src/main/java/org/gridsuite/study/server/service/RemoteServicesInspector.java index 387a7c729a..8942f44e0f 100644 --- a/src/main/java/org/gridsuite/study/server/service/RemoteServicesInspector.java +++ b/src/main/java/org/gridsuite/study/server/service/RemoteServicesInspector.java @@ -159,6 +159,7 @@ public Map getServicesInfo(@Nullable FrontService view) throws * @return {@code Map} in JSON format */ @Async + @SuppressWarnings("checkstyle:IllegalCatch") public CompletableFuture getServiceInfo(@NonNull final RemoteServiceName service) { try { if (service == RemoteServiceName.STUDY_SERVER) { diff --git a/src/main/java/org/gridsuite/study/server/service/ReportService.java b/src/main/java/org/gridsuite/study/server/service/ReportService.java index 63b194594a..54a1e1727b 100644 --- a/src/main/java/org/gridsuite/study/server/service/ReportService.java +++ b/src/main/java/org/gridsuite/study/server/service/ReportService.java @@ -39,7 +39,7 @@ import static org.gridsuite.study.server.StudyConstants.REPORT_API_VERSION; /** - * @author Slimane amar */ @Service public class ReportService { diff --git a/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java b/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java index a6c37e1488..1638385567 100644 --- a/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java +++ b/src/main/java/org/gridsuite/study/server/service/RootNetworkNodeInfoService.java @@ -52,10 +52,13 @@ import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; /** - * @author Slimane amar */ @Service public class RootNetworkNodeInfoService { + + private static final String ROOT_NETWORK_NOT_FOUND = "Root network not found"; + private final RootNetworkNodeInfoRepository rootNetworkNodeInfoRepository; private final NetworkModificationNodeInfoRepository networkModificationNodeInfoRepository; private final StudyServerExecutionService studyServerExecutionService; @@ -122,7 +125,8 @@ public void createNodeLinksFromTags(@NonNull StudyEntity targetStudy, @NonNull Map mappingModificationUuids) { Map mappingRootNetworksFromTag = new HashMap<>(); targetStudy.getRootNetworks().forEach(targetRootNetwork -> { - Optional originRootNetworkNodeInfo = originNodeInfo.getRootNetworkNodeInfos().stream().filter(originRootNetworkNode -> originRootNetworkNode.getRootNetwork().getTag().equals(targetRootNetwork.getTag())).findFirst(); + Optional originRootNetworkNodeInfo = originNodeInfo.getRootNetworkNodeInfos().stream().filter( + originRootNetworkNode -> originRootNetworkNode.getRootNetwork().getTag().equals(targetRootNetwork.getTag())).findFirst(); originRootNetworkNodeInfo.ifPresent(originRootNetworkNodeInfoEntity -> mappingRootNetworksFromTag.put(targetRootNetwork.getId(), originRootNetworkNodeInfoEntity) ); @@ -158,14 +162,16 @@ private static RootNetworkNodeInfoEntity createDefaultEntity(UUID nodeUuid, Set< @Transactional public void updateLoadflowResultUuid(UUID nodeUuid, UUID rootNetworkUuid, UUID loadflowResultUuid, Boolean withRatioTapChangers) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); rootNetworkNodeInfoEntity.setLoadFlowResultUuid(loadflowResultUuid); rootNetworkNodeInfoEntity.setLoadFlowWithRatioTapChangers(withRatioTapChangers); } @Transactional public void updateComputationResultUuid(UUID nodeUuid, UUID rootNetworkUuid, UUID computationResultUuid, ComputationType computationType) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); switch (computationType) { case LOAD_FLOW -> rootNetworkNodeInfoEntity.setLoadFlowResultUuid(computationResultUuid); case SECURITY_ANALYSIS -> rootNetworkNodeInfoEntity.setSecurityAnalysisResultUuid(computationResultUuid); @@ -187,6 +193,7 @@ public List getAllWithRootNetworkByNodeInfoId(UUID no return rootNetworkNodeInfoRepository.findAllWithRootNetworkByNodeInfoId(nodeUuid); } + @SuppressWarnings("checkstyle:LambdaBodyLength") public void fillDeleteNodeInfo(UUID nodeUuid, DeleteNodeInfos deleteNodeInfos) { //get all rootNetworkNodeInfo info linked to node List rootNetworkNodeInfoEntities = rootNetworkNodeInfoRepository.findAllWithRootNetworkByNodeInfoId(nodeUuid); @@ -258,7 +265,8 @@ public void fillDeleteNodeInfo(UUID nodeUuid, DeleteNodeInfos deleteNodeInfos) { } public InvalidateNodeInfos invalidateRootNetworkNode(UUID nodeUuid, UUID rootNetworUuid, InvalidateNodeTreeParameters invalidateTreeParameters) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); return invalidateRootNetworkNode(rootNetworkNodeInfoEntity, invalidateTreeParameters); } @@ -514,7 +522,7 @@ private void addLink(NetworkModificationNodeInfoEntity nodeInfoEntity, RootNetwo public void updateModificationsToExclude(UUID nodeUuid, UUID rootNetworkUuid, Set modificationUuids, boolean activated) { RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository .findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid) - .orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + .orElseThrow(() -> new StudyException(NOT_FOUND, ROOT_NETWORK_NOT_FOUND)); if (activated) { rootNetworkNodeInfoEntity.removeModificationsFromExclude(modificationUuids); } else { @@ -537,7 +545,8 @@ public void copyModificationsToExcludeFromTags(UUID originNodeUuid, UUID targetN List targetRootNetworksNodeInfos = rootNetworkNodeInfoRepository.findAllWithRootNetworkByNodeInfoId(targetNodeUuid); originRootNetworksNodeInfos.forEach(originRootNetworkNodeInfo -> { - Optional targetRootNetworkNodeInfo = targetRootNetworksNodeInfos.stream().filter(targetRootNetworkNode -> targetRootNetworkNode.getRootNetwork().getTag().equals(originRootNetworkNodeInfo.getRootNetwork().getTag())).findFirst(); + Optional targetRootNetworkNodeInfo = targetRootNetworksNodeInfos.stream().filter( + targetRootNetworkNode -> targetRootNetworkNode.getRootNetwork().getTag().equals(originRootNetworkNodeInfo.getRootNetwork().getTag())).findFirst(); targetRootNetworkNodeInfo.ifPresent(targetRootNetworkNodeInfoEntity -> mappingRootNetworksFromTag.put(originRootNetworkNodeInfo.getId(), targetRootNetworkNodeInfoEntity) ); @@ -545,7 +554,8 @@ public void copyModificationsToExcludeFromTags(UUID originNodeUuid, UUID targetN originRootNetworksNodeInfos.forEach(originRootNetworkNodeInfo -> { if (mappingRootNetworksFromTag.containsKey(originRootNetworkNodeInfo.getId())) { - Set modificationsToCopy = originRootNetworkNodeInfo.getModificationsUuidsToExclude().stream().map(mappingModificationsUuids::get).filter(Objects::nonNull).collect(Collectors.toSet()); + Set modificationsToCopy = originRootNetworkNodeInfo.getModificationsUuidsToExclude().stream().map(mappingModificationsUuids::get).filter(Objects::nonNull).collect( + Collectors.toSet()); mappingRootNetworksFromTag.get(originRootNetworkNodeInfo.getId()).addModificationsToExclude(modificationsToCopy); } }); @@ -553,7 +563,8 @@ public void copyModificationsToExcludeFromTags(UUID originNodeUuid, UUID targetN @Transactional public void updateRootNetworkNode(UUID nodeUuid, UUID rootNetworkUuid, RootNetworkNodeInfo rootNetworkNodeInfo) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); if (rootNetworkNodeInfo.getVariantId() != null) { rootNetworkNodeInfoEntity.setVariantId(rootNetworkNodeInfo.getVariantId()); } @@ -622,11 +633,13 @@ public RemoteDeletionInfos getRemoteDeletionInfos(List root infos.setSecurityAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getSecurityAnalysisResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setSensitivityAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getSensitivityAnalysisResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setShortCircuitAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getShortCircuitAnalysisResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); - infos.setOneBusShortCircuitAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getOneBusShortCircuitAnalysisResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); + infos.setOneBusShortCircuitAnalysisResultUuids( + rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getOneBusShortCircuitAnalysisResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setVoltageInitResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getVoltageInitResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setDynamicSimulationResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getDynamicSimulationResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setDynamicSecurityAnalysisResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getDynamicSecurityAnalysisResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); - infos.setDynamicMarginCalculationResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getDynamicMarginCalculationResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); + infos.setDynamicMarginCalculationResultUuids( + rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getDynamicMarginCalculationResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setStateEstimationResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getStateEstimationResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); infos.setPccMinResultUuids(rootNetworkNodeInfos.stream().map(RootNetworkNodeInfo::getPccMinResultUuid).filter(Objects::nonNull).collect(Collectors.toSet())); return infos; @@ -642,7 +655,8 @@ public void deleteRootNetworkNodeRemoteInfos(List rootNetwo @Transactional public ModificationApplicationContext getNetworkModificationApplicationContext(UUID rootNetworkUuid, UUID nodeUuid, UUID networkUuid) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(nodeUuid, + rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID reportUuid = rootNetworkNodeInfoEntity.getModificationReports().get(nodeUuid); return new ModificationApplicationContext(networkUuid, variantId, reportUuid, nodeUuid, rootNetworkNodeInfoEntity.getModificationsUuidsToExclude()); @@ -663,7 +677,8 @@ public void assertComputationNotRunning(UUID nodeUuid, UUID rootNetworkUuid) { dynamicSecurityAnalysisService.assertDynamicSecurityAnalysisNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, DYNAMIC_SECURITY_ANALYSIS)); dynamicMarginCalculationService.assertDynamicMarginCalculationNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, DYNAMIC_MARGIN_CALCULATION)); sensitivityAnalysisService.assertSensitivityAnalysisNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, SENSITIVITY_ANALYSIS)); - shortCircuitService.assertShortCircuitAnalysisNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, SHORT_CIRCUIT), getComputationResultUuid(nodeUuid, rootNetworkUuid, SHORT_CIRCUIT_ONE_BUS)); + shortCircuitService.assertShortCircuitAnalysisNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, SHORT_CIRCUIT), getComputationResultUuid(nodeUuid, rootNetworkUuid, + SHORT_CIRCUIT_ONE_BUS)); voltageInitService.assertVoltageInitNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, VOLTAGE_INITIALIZATION)); stateEstimationService.assertStateEstimationNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, STATE_ESTIMATION)); pccMinService.assertPccMinNotRunning(getComputationResultUuid(nodeUuid, rootNetworkUuid, PCC_MIN)); @@ -681,7 +696,7 @@ public String getLoadFlowResult(UUID nodeUuid, UUID rootNetworkUuid, String filt @Transactional(readOnly = true) public String getSecurityAnalysisResult(UUID nodeUuid, UUID rootNetworkUuid, SecurityAnalysisResultType resultType, String filters, String globalFilters, Pageable pageable) { RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() - -> new StudyException(NOT_FOUND, "Root network not found")); + -> new StudyException(NOT_FOUND, ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, SECURITY_ANALYSIS); @@ -691,7 +706,7 @@ public String getSecurityAnalysisResult(UUID nodeUuid, UUID rootNetworkUuid, Sec @Transactional(readOnly = true) public byte[] getSecurityAnalysisResultCsv(UUID nodeUuid, UUID rootNetworkUuid, SecurityAnalysisResultType resultType, String globalFilters, String filters, Sort sort, String csvTranslations) { RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() - -> new StudyException(NOT_FOUND, "Root network not found")); + -> new StudyException(NOT_FOUND, ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, SECURITY_ANALYSIS); @@ -718,7 +733,8 @@ public List getDynamicSimulationTimeline(UUID nodeUuid, UUID @Transactional(readOnly = true) public String getSensitivityAnalysisResult(UUID nodeUuid, UUID rootNetworkUuid, String selector, String filters, String globalFilters) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, SENSITIVITY_ANALYSIS); @@ -726,8 +742,10 @@ public String getSensitivityAnalysisResult(UUID nodeUuid, UUID rootNetworkUuid, } @Transactional(readOnly = true) - public byte[] exportSensitivityResultsAsCsv(UUID nodeUuid, UUID rootNetworkUuid, SensitivityAnalysisCsvFileInfos sensitivityAnalysisCsvFileInfos, String selector, String filters, String globalFilters) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + public byte[] exportSensitivityResultsAsCsv(UUID nodeUuid, UUID rootNetworkUuid, SensitivityAnalysisCsvFileInfos sensitivityAnalysisCsvFileInfos, String selector, String filters, + String globalFilters) { + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, SENSITIVITY_ANALYSIS); @@ -736,7 +754,8 @@ public byte[] exportSensitivityResultsAsCsv(UUID nodeUuid, UUID rootNetworkUuid, @Transactional(readOnly = true) public byte[] exportPccMinResultsAsCsv(UUID nodeUuid, UUID rootNetworkUuid, String csvHeaders, Sort sort, String filters, String globalFilters) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, PCC_MIN); @@ -750,8 +769,10 @@ public String getSensitivityResultsFilterOptions(UUID nodeUuid, UUID rootNetwork } @Transactional(readOnly = true) - public String getShortCircuitAnalysisResult(ResultParameters resultParameters, FaultResultsMode mode, ShortcircuitAnalysisType type, String filters, String globalFilters, boolean paged, Pageable pageable) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(resultParameters.getNodeUuid(), resultParameters.getRootNetworkUuid()).orElse(null); + public String getShortCircuitAnalysisResult(ResultParameters resultParameters, FaultResultsMode mode, ShortcircuitAnalysisType type, String filters, String globalFilters, boolean paged, + Pageable pageable) { + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(resultParameters.getNodeUuid(), + resultParameters.getRootNetworkUuid()).orElse(null); ResultParameters resultParametersEnriched = new ResultParameters( resultParameters.getRootNetworkUuid(), resultParameters.getNodeUuid(), @@ -763,7 +784,8 @@ public String getShortCircuitAnalysisResult(ResultParameters resultParameters, F @Transactional(readOnly = true) public byte[] getShortCircuitAnalysisCsvResult(UUID nodeUuid, UUID rootNetworkUuid, ShortcircuitAnalysisType type, String filters, String globalFilters, Sort sort, String headerCsv) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, + ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, @@ -780,7 +802,7 @@ public String getStateEstimationResult(UUID nodeUuid, UUID rootNetworkUuid) { @Transactional(readOnly = true) public String getPccMinResult(UUID nodeUuid, UUID rootNetworkUuid, String filters, String globalFilters, Pageable pageable) { RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid, rootNetworkUuid).orElseThrow(() - -> new StudyException(NOT_FOUND, "Root network not found")); + -> new StudyException(NOT_FOUND, ROOT_NETWORK_NOT_FOUND)); String variantId = rootNetworkNodeInfoEntity.getVariantId(); UUID networkUuid = rootNetworkNodeInfoEntity.getRootNetwork().getNetworkUuid(); UUID resultUuid = getComputationResultUuid(nodeUuid, rootNetworkUuid, PCC_MIN); diff --git a/src/main/java/org/gridsuite/study/server/service/RootNetworkService.java b/src/main/java/org/gridsuite/study/server/service/RootNetworkService.java index bb7b6c537f..f875dee49f 100644 --- a/src/main/java/org/gridsuite/study/server/service/RootNetworkService.java +++ b/src/main/java/org/gridsuite/study/server/service/RootNetworkService.java @@ -18,9 +18,9 @@ import org.gridsuite.study.server.repository.StudyEntity; import org.gridsuite.study.server.repository.rootnetwork.RootNetworkEntity; import org.gridsuite.study.server.repository.rootnetwork.RootNetworkRepository; -import org.gridsuite.study.server.utils.JsonUtils; import org.gridsuite.study.server.repository.rootnetwork.RootNetworkRequestEntity; import org.gridsuite.study.server.repository.rootnetwork.RootNetworkRequestRepository; +import org.gridsuite.study.server.utils.JsonUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -30,10 +30,7 @@ import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.gridsuite.study.server.error.StudyBusinessErrorCode.MAXIMUM_ROOT_NETWORK_BY_STUDY_REACHED; -import static org.gridsuite.study.server.error.StudyBusinessErrorCode.MAXIMUM_TAG_LENGTH_EXCEEDED; -import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_ALLOWED; -import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND; +import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; /** * @author Le Saulnier Kevin @@ -175,14 +172,18 @@ public String getCaseName(UUID rootNetworkUuid) { } public Map getImportParameters(UUID rootNetworkUuid) { - return rootNetworkRepository.findWithImportParametersById(rootNetworkUuid).map(RootNetworkEntity::getImportParameters).map(params -> JsonUtils.deserializeImportParameters(params, objectMapper)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + return rootNetworkRepository.findWithImportParametersById(rootNetworkUuid) + .map(RootNetworkEntity::getImportParameters).map(params -> JsonUtils.deserializeImportParameters(params, objectMapper)) + .orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); } public List getRootNetworkInfosWithLinksInfos(UUID studyUuid) { - return rootNetworkRepository.findAllWithInfosByStudyId(studyUuid).stream().map(rootNetworkEntity -> rootNetworkEntity.toDto(objectMapper)).toList(); + return rootNetworkRepository.findAllWithInfosByStudyId(studyUuid).stream() + .map(rootNetworkEntity -> rootNetworkEntity.toDto(objectMapper)).toList(); } @Transactional + @SuppressWarnings("checkstyle:LambdaBodyLength") public void duplicateStudyRootNetworks(StudyEntity newStudyEntity, StudyEntity sourceStudyEntity) { List rootNetworkEntities = sourceStudyEntity.getRootNetworks(); rootNetworkEntities.forEach(rootNetworkEntityToDuplicate -> { @@ -202,7 +203,8 @@ public void duplicateStudyRootNetworks(StudyEntity newStudyEntity, StudyEntity s .id(UUID.randomUUID()) .name(rootNetworkEntityToDuplicate.getName()) .importParameters(newImportParameters) - .caseInfos(new CaseInfos(clonedCaseUuid, rootNetworkEntityToDuplicate.getOriginalCaseUuid(), rootNetworkEntityToDuplicate.getCaseName(), rootNetworkEntityToDuplicate.getCaseFormat())) + .caseInfos(new CaseInfos(clonedCaseUuid, rootNetworkEntityToDuplicate.getOriginalCaseUuid(), rootNetworkEntityToDuplicate.getCaseName(), + rootNetworkEntityToDuplicate.getCaseFormat())) .networkInfos(new NetworkInfos(clonedNetworkUuid, rootNetworkEntityToDuplicate.getNetworkId())) .reportUuid(clonedRootNodeReportUuid) .tag(rootNetworkEntityToDuplicate.getTag()) @@ -213,7 +215,8 @@ public void duplicateStudyRootNetworks(StudyEntity newStudyEntity, StudyEntity s } private RootNetworkRequestEntity insertRootNetworkRequest(UUID studyUuid, RootNetworkInfos rootNetworkInfos, RootNetworkAction action, String userId) { - return rootNetworkRequestRepository.save(RootNetworkRequestEntity.builder().id(rootNetworkInfos.getId()).name(rootNetworkInfos.getName()).tag(rootNetworkInfos.getTag()).description(rootNetworkInfos.getDescription()).studyUuid(studyUuid).actionRequest(action).userId(userId).build()); + return rootNetworkRequestRepository.save(RootNetworkRequestEntity.builder().id(rootNetworkInfos.getId()).name(rootNetworkInfos.getName()).tag(rootNetworkInfos.getTag()).description( + rootNetworkInfos.getDescription()).studyUuid(studyUuid).actionRequest(action).userId(userId).build()); } public RootNetworkRequestEntity insertCreationRequest(UUID studyUuid, RootNetworkInfos rootNetworkInfos, String userId) { @@ -254,8 +257,10 @@ public void invalidateRootNetworkRemoteInfos(List rootNetworkI ArrayList> futures = new ArrayList<>(); // delete remote data ids set in root network futures.add(studyServerExecutionService.runAsync(() -> reportService.deleteReports(rootNetworkInfos.stream().map(RootNetworkInfos::getReportUuid).toList()))); - futures.add(studyServerExecutionService.runAsync(() -> rootNetworkInfos.stream().map(rni -> rni.getNetworkInfos().getNetworkUuid()).filter(Objects::nonNull).forEach(equipmentInfosService::deleteEquipmentIndexes))); - futures.add(studyServerExecutionService.runAsync(() -> rootNetworkInfos.stream().map(rni -> rni.getNetworkInfos().getNetworkUuid()).filter(Objects::nonNull).forEach(networkStoreService::deleteNetwork))); + futures.add(studyServerExecutionService.runAsync(() -> rootNetworkInfos.stream().map(rni -> rni.getNetworkInfos().getNetworkUuid()) + .filter(Objects::nonNull).forEach(equipmentInfosService::deleteEquipmentIndexes))); + futures.add(studyServerExecutionService.runAsync(() -> rootNetworkInfos.stream().map(rni -> rni.getNetworkInfos().getNetworkUuid()) + .filter(Objects::nonNull).forEach(networkStoreService::deleteNetwork))); if (deleteCase) { studyServerExecutionService.runAsync(() -> rootNetworkInfos.stream().map(rni -> rni.getCaseInfos().getCaseUuid()).filter(Objects::nonNull).forEach(caseService::deleteCase)); } @@ -263,7 +268,8 @@ public void invalidateRootNetworkRemoteInfos(List rootNetworkI CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)).join(); } // delete remote data ids set in root network node infos - rootNetworkNodeInfoService.deleteRootNetworkNodeRemoteInfos(rootNetworkInfos.stream().map(RootNetworkInfos::getRootNetworkNodeInfos).filter(Objects::nonNull).flatMap(Collection::stream).toList()); + rootNetworkNodeInfoService.deleteRootNetworkNodeRemoteInfos(rootNetworkInfos.stream().map(RootNetworkInfos::getRootNetworkNodeInfos).filter(Objects::nonNull).flatMap( + Collection::stream).toList()); } public Optional getRootNetworkRequest(UUID rootNetworkUuid) { diff --git a/src/main/java/org/gridsuite/study/server/service/SecurityAnalysisService.java b/src/main/java/org/gridsuite/study/server/service/SecurityAnalysisService.java index 4ebf611275..2082b9ad31 100644 --- a/src/main/java/org/gridsuite/study/server/service/SecurityAnalysisService.java +++ b/src/main/java/org/gridsuite/study/server/service/SecurityAnalysisService.java @@ -11,11 +11,11 @@ import lombok.Setter; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.NodeReceiver; import org.gridsuite.study.server.dto.ReportInfos; import org.gridsuite.study.server.dto.RunSecurityAnalysisParametersInfos; import org.gridsuite.study.server.dto.SecurityAnalysisStatus; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.repository.StudyEntity; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; @@ -28,14 +28,12 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; - import java.io.UncheckedIOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; import java.util.UUID; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; @@ -79,7 +77,8 @@ public String getSecurityAnalysisResult(UUID resultUuid, UUID networkUuid, Strin return restTemplate.getForObject(securityAnalysisServerBaseUri + path, String.class); } - public byte[] getSecurityAnalysisResultCsv(UUID resultUuid, UUID networkUuid, String variantId, SecurityAnalysisResultType resultType, String globalFilters, String filters, Sort sort, String csvTranslations) { + public byte[] getSecurityAnalysisResultCsv(UUID resultUuid, UUID networkUuid, String variantId, SecurityAnalysisResultType resultType, String globalFilters, String filters, Sort sort, String + csvTranslations) { if (resultUuid == null) { throw new StudyException(NOT_FOUND, "Result for security analysis not found"); } diff --git a/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java b/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java index 20803e9ec5..bc1f368792 100644 --- a/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java +++ b/src/main/java/org/gridsuite/study/server/service/SensitivityAnalysisService.java @@ -10,15 +10,18 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.NodeReceiver; import org.gridsuite.study.server.dto.SensitivityAnalysisStatus; import org.gridsuite.study.server.dto.sensianalysis.SensitivityAnalysisCsvFileInfos; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.repository.StudyEntity; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; import org.springframework.core.ParameterizedTypeReference; -import org.springframework.http.*; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; import org.springframework.lang.Nullable; import org.springframework.stereotype.Service; import org.springframework.web.client.RestClientException; @@ -29,10 +32,14 @@ import java.net.URI; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.UUID; import static org.gridsuite.study.server.StudyConstants.*; -import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; +import static org.gridsuite.study.server.error.StudyBusinessErrorCode.COMPUTATION_RUNNING; +import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND; /** * @author Franck Lecuyer @@ -129,7 +136,8 @@ public String getSensitivityAnalysisResult(UUID resultUuid, UUID networkUuid, St return restTemplate.getForObject(uri, String.class); } - public byte[] exportSensitivityResultsAsCsv(UUID resultUuid, SensitivityAnalysisCsvFileInfos sensitivityAnalysisCsvFileInfos, UUID networkUuid, String variantId, String selector, String filters, String globalFilters) { + public byte[] exportSensitivityResultsAsCsv(UUID resultUuid, SensitivityAnalysisCsvFileInfos sensitivityAnalysisCsvFileInfos, UUID networkUuid, String variantId, String selector, String filters, + String globalFilters) { if (resultUuid == null) { throw new StudyException(NOT_FOUND, "Result of sensitivity analysis was not found"); } diff --git a/src/main/java/org/gridsuite/study/server/service/StateEstimationService.java b/src/main/java/org/gridsuite/study/server/service/StateEstimationService.java index 65777796cd..e4c659facb 100644 --- a/src/main/java/org/gridsuite/study/server/service/StateEstimationService.java +++ b/src/main/java/org/gridsuite/study/server/service/StateEstimationService.java @@ -11,10 +11,10 @@ import lombok.Setter; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.NodeReceiver; import org.gridsuite.study.server.dto.ReportInfos; import org.gridsuite.study.server.dto.StateEstimationStatus; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.repository.StudyEntity; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; @@ -27,14 +27,12 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; - import java.io.UncheckedIOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; import java.util.UUID; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.COMPUTATION_RUNNING; diff --git a/src/main/java/org/gridsuite/study/server/service/StudyConfigService.java b/src/main/java/org/gridsuite/study/server/service/StudyConfigService.java index b307336a7c..f7b47df351 100644 --- a/src/main/java/org/gridsuite/study/server/service/StudyConfigService.java +++ b/src/main/java/org/gridsuite/study/server/service/StudyConfigService.java @@ -410,7 +410,8 @@ public UUID saveWorkspacePanelNadConfig(UUID configId, UUID workspaceId, UUID pa Objects.requireNonNull(configId); Objects.requireNonNull(workspaceId); Objects.requireNonNull(panelId); - String path = UriComponentsBuilder.fromPath(DELIMITER + STUDY_CONFIG_API_VERSION + WORKSPACES_CONFIG_WITH_ID_URI + WORKSPACE_WITH_ID_URI + WORKSPACE_PANELS_URI + "/{panelId}/current-nad-config") + String path = UriComponentsBuilder.fromPath(DELIMITER + STUDY_CONFIG_API_VERSION + WORKSPACES_CONFIG_WITH_ID_URI + WORKSPACE_WITH_ID_URI + WORKSPACE_PANELS_URI + + "/{panelId}/current-nad-config") .buildAndExpand(configId, workspaceId, panelId).toUriString(); HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); @@ -422,7 +423,8 @@ public void deleteWorkspacePanelNadConfig(UUID configId, UUID workspaceId, UUID Objects.requireNonNull(configId); Objects.requireNonNull(workspaceId); Objects.requireNonNull(panelId); - String path = UriComponentsBuilder.fromPath(DELIMITER + STUDY_CONFIG_API_VERSION + WORKSPACES_CONFIG_WITH_ID_URI + WORKSPACE_WITH_ID_URI + WORKSPACE_PANELS_URI + "/{panelId}/current-nad-config") + String path = UriComponentsBuilder.fromPath(DELIMITER + STUDY_CONFIG_API_VERSION + WORKSPACES_CONFIG_WITH_ID_URI + WORKSPACE_WITH_ID_URI + WORKSPACE_PANELS_URI + + "/{panelId}/current-nad-config") .buildAndExpand(configId, workspaceId, panelId).toUriString(); restTemplate.delete(studyConfigServerBaseUri + path); } diff --git a/src/main/java/org/gridsuite/study/server/service/StudyService.java b/src/main/java/org/gridsuite/study/server/service/StudyService.java index c8dba0254f..d838d07c6f 100644 --- a/src/main/java/org/gridsuite/study/server/service/StudyService.java +++ b/src/main/java/org/gridsuite/study/server/service/StudyService.java @@ -549,7 +549,8 @@ private Optional doDeleteStudyIfNotCreationInProgress(UUID stu if (studyCreationRequestEntity.isEmpty() && studyEntity.isPresent()) { List rootNetworkInfos = getStudyRootNetworksInfos(studyUuid); // get all modification groups related to the study - List modificationGroupUuids = networkModificationTreeService.getAllStudyNetworkModificationNodeInfo(studyUuid).stream().map(NetworkModificationNodeInfoEntity::getModificationGroupUuid).toList(); + List modificationGroupUuids = networkModificationTreeService.getAllStudyNetworkModificationNodeInfo(studyUuid).stream() + .map(NetworkModificationNodeInfoEntity::getModificationGroupUuid).toList(); StudyEntity s = studyEntity.get(); networkModificationTreeService.doDeleteTree(studyUuid); studyRepository.deleteById(studyUuid); @@ -750,7 +751,8 @@ public String generateVoltageLevelSvgAndMetadata(String voltageLevelId, UUID nod } String variantId = networkModificationTreeService.getVariantId(nodeUuid, rootNetworkUuid); if (networkStoreService.existVariant(networkUuid, variantId)) { - return singleLineDiagramService.generateVoltageLevelSvgAndMetadata(networkUuid, variantId, voltageLevelId, populateSldRequestInfos(sldRequestInfos, voltageLevelId, nodeUuid, rootNetworkUuid)); + return singleLineDiagramService.generateVoltageLevelSvgAndMetadata(networkUuid, variantId, voltageLevelId, populateSldRequestInfos(sldRequestInfos, voltageLevelId, nodeUuid, + rootNetworkUuid)); } else { return null; } @@ -826,10 +828,11 @@ public String getNetworkElementInfos(UUID studyUuid, elementId); } - private Map getSingleElementOptionalParameters(String elementId, String elementType, StudyEntity studyEntity, UUID nodeUuid, UUID rootNetworkUuid, LoadFlowParameters loadFlowParameters) { + private Map getSingleElementOptionalParameters(String elementId, String elementType, StudyEntity studyEntity, UUID nodeUuid, UUID rootNetworkUuid, + LoadFlowParameters loadFlowParameters) { Map additionalParameters = getOptionalParameters(elementType, studyEntity, loadFlowParameters); - if (elementType.equalsIgnoreCase("voltage_level")) { + if ("voltage_level".equalsIgnoreCase(elementType)) { try { additionalParameters.put( InfoTypeParameters.QUERY_PARAM_BUS_ID_TO_ICC_VALUES, @@ -1002,7 +1005,8 @@ private void handleLoadflowRequest(StudyEntity studyEntity, UUID nodeUuid, UUID boolean isSecurityNode = networkModificationTreeService.isSecurityNode(nodeUuid); networkModificationTreeService.updateComputationReportUuid(nodeUuid, rootNetworkUuid, LOAD_FLOW, lfReportUuid); - UUID result = loadflowService.runLoadFlow(new NodeReceiver(nodeUuid, rootNetworkUuid), loadflowResultUuid, new VariantInfos(networkUuid, variantId), new LoadFlowService.ParametersInfos(lfParametersUuid, withRatioTapChangers, isSecurityNode), lfReportUuid, userId); + UUID result = loadflowService.runLoadFlow(new NodeReceiver(nodeUuid, rootNetworkUuid), loadflowResultUuid, new VariantInfos(networkUuid, variantId), + new LoadFlowService.ParametersInfos(lfParametersUuid, withRatioTapChangers, isSecurityNode), lfReportUuid, userId); rootNetworkNodeInfoService.updateLoadflowResultUuid(nodeUuid, rootNetworkUuid, result, withRatioTapChangers); notificationService.emitStudyChanged(studyEntity.getId(), nodeUuid, rootNetworkUuid, LOAD_FLOW.getUpdateStatusType()); @@ -1493,7 +1497,8 @@ private StudyEntity updateRootNetworkIndexationStatus(StudyEntity studyEntity, R } public StudyEntity updateRootNetworkIndexationStatus(UUID studyUuid, UUID rootNetworkUuid, RootNetworkIndexationStatus indexationStatus) { - return updateRootNetworkIndexationStatus(getStudy(studyUuid), rootNetworkService.getRootNetwork(rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")), indexationStatus); + return updateRootNetworkIndexationStatus(getStudy(studyUuid), rootNetworkService.getRootNetwork(rootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")), + indexationStatus); } private StudyEntity saveStudyThenCreateBasicTree(UUID studyUuid, NetworkInfos networkInfos, @@ -1528,7 +1533,9 @@ private StudyEntity saveStudyThenCreateBasicTree(UUID studyUuid, NetworkInfos ne // in this case, the first root network's name is the name the user entered when selecting the case. firstRootNetworkName = studyCreationRequestEntity.get().getFirstRootNetworkName(); } - rootNetworkService.createRootNetwork(studyEntity, RootNetworkInfos.builder().id(UUID.randomUUID()).name(firstRootNetworkName).networkInfos(networkInfos).caseInfos(caseInfos).reportUuid(importReportUuid).importParameters(importParameters).tag("1").build()); + rootNetworkService.createRootNetwork(studyEntity, + RootNetworkInfos.builder().id(UUID.randomUUID()).name(firstRootNetworkName).networkInfos(networkInfos).caseInfos(caseInfos).reportUuid(importReportUuid).importParameters( + importParameters).tag("1").build()); networkModificationTreeService.createBasicTree(study); return study; @@ -1995,7 +2002,8 @@ public void deleteNetworkModifications(UUID studyUuid, UUID nodeUuid, List UUID groupId = networkModificationTreeService.getModificationGroupUuid(nodeUuid); networkModificationService.deleteModifications(groupId, modificationsUuids); // for each root network, remove modifications from excluded ones - studyEntity.getRootNetworks().forEach(rootNetworkEntity -> rootNetworkNodeInfoService.updateModificationsToExclude(nodeUuid, rootNetworkEntity.getId(), new HashSet<>(modificationsUuids), true)); + studyEntity.getRootNetworks().forEach(rootNetworkEntity -> rootNetworkNodeInfoService.updateModificationsToExclude(nodeUuid, rootNetworkEntity.getId(), new HashSet<>(modificationsUuids), + true)); } finally { notificationService.emitEndDeletionEquipmentNotification(studyUuid, nodeUuid, childrenUuids); } @@ -2222,7 +2230,8 @@ private StudyEntity getStudy(UUID studyUuid) { public Map getNodeBuildStatusByRootNetwork(UUID studyUuid, UUID nodeUuid) { return getStudyRootNetworks(studyUuid).stream().collect(Collectors.toMap( RootNetworkEntity::getId, - rn -> rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rn.getId()).map(rni -> rni.getNodeBuildStatus().toDto()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")) + rn -> rootNetworkNodeInfoService.getRootNetworkNodeInfo(nodeUuid, rn.getId()).map(rni -> rni.getNodeBuildStatus().toDto()).orElseThrow(() -> new StudyException(NOT_FOUND, + "Root network not found")) )); } @@ -2267,7 +2276,8 @@ public void moveNetworkModifications( .map(rootNetworkEntity -> rootNetworkNodeInfoService.getNetworkModificationApplicationContext(rootNetworkEntity.getId(), targetNodeUuid, rootNetworkEntity.getNetworkUuid())) .toList(); - NetworkModificationsResult networkModificationsResult = networkModificationService.moveModifications(originGroupUuid, targetGroupUuid, beforeUuid, Pair.of(modificationUuidList, modificationApplicationContexts), isTargetInDifferentNodeTree); + NetworkModificationsResult networkModificationsResult = networkModificationService.moveModifications(originGroupUuid, targetGroupUuid, beforeUuid, + Pair.of(modificationUuidList, modificationApplicationContexts), isTargetInDifferentNodeTree); Set allMovedUuids = networkModificationService.expandToLeafUuids(networkModificationsResult.modificationUuids()); rootNetworkNodeInfoService.moveModificationsToExclude(originNodeUuid, targetNodeUuid, new ArrayList<>(allMovedUuids)); @@ -2610,8 +2620,8 @@ private UUID handleSensitivityAnalysisRequest(StudyEntity study, UUID nodeUuid, // and retrieve their names, as they are needed in the results List elementIds = sensitivityAnalysisService.getElementIds(sensiParamsUuid); Map elementsIdNameMap = directoryService.getElementNames(new HashSet<>(elementIds)); - - UUID result = sensitivityAnalysisService.runSensitivityAnalysis(nodeUuid, rootNetworkUuid, networkUuid, variantId, sensiReportUuid, userId, sensiParamsUuid, study.getLoadFlowParametersUuid(), elementsIdNameMap); + UUID result = sensitivityAnalysisService.runSensitivityAnalysis(nodeUuid, rootNetworkUuid, networkUuid, variantId, + sensiReportUuid, userId, sensiParamsUuid, study.getLoadFlowParametersUuid(), elementsIdNameMap); updateComputationResultUuid(nodeUuid, rootNetworkUuid, result, SENSITIVITY_ANALYSIS); notificationService.emitStudyChanged(study.getId(), nodeUuid, rootNetworkUuid, NotificationService.UPDATE_TYPE_SENSITIVITY_ANALYSIS_STATUS); @@ -2637,7 +2647,8 @@ private UUID handleShortCircuitRequest(StudyEntity studyEntity, UUID nodeUuid, U UUID networkUuid = rootNetworkService.getNetworkUuid(rootNetworkUuid); String variantId = networkModificationTreeService.getVariantId(nodeUuid, rootNetworkUuid); networkModificationTreeService.updateComputationReportUuid(nodeUuid, rootNetworkUuid, computationType, scReportUuid); - final UUID result = shortCircuitService.runShortCircuit(rootNetworkUuid, new VariantInfos(networkUuid, variantId), busId.orElse(null), studyEntity.getShortCircuitParametersUuid(), new ReportInfos(scReportUuid, nodeUuid), userId, debug); + final UUID result = shortCircuitService.runShortCircuit(rootNetworkUuid, new VariantInfos(networkUuid, variantId), busId.orElse(null), studyEntity.getShortCircuitParametersUuid(), + new ReportInfos(scReportUuid, nodeUuid), userId, debug); updateComputationResultUuid(nodeUuid, rootNetworkUuid, result, computationType); notificationService.emitStudyChanged(studyEntity.getId(), nodeUuid, rootNetworkUuid, busId.isEmpty() ? NotificationService.UPDATE_TYPE_SHORT_CIRCUIT_STATUS : NotificationService.UPDATE_TYPE_ONE_BUS_SHORT_CIRCUIT_STATUS); @@ -2965,7 +2976,8 @@ private UUID handleDynamicSimulationRequest(StudyEntity studyEntity, UUID nodeUu // launch dynamic simulation UUID networkUuid = rootNetworkService.getNetworkUuid(rootNetworkUuid); String variantId = networkModificationTreeService.getVariantId(nodeUuid, rootNetworkUuid); - UUID dynamicSimulationResultUuid = dynamicSimulationService.runDynamicSimulation(nodeUuid, rootNetworkUuid, networkUuid, variantId, reportUuid, dynamicSimulationParametersUuid, events, userId, debug); + UUID dynamicSimulationResultUuid = dynamicSimulationService.runDynamicSimulation(nodeUuid, rootNetworkUuid, networkUuid, variantId, reportUuid, dynamicSimulationParametersUuid, events, userId, + debug); // update result uuid and notification updateComputationResultUuid(nodeUuid, rootNetworkUuid, dynamicSimulationResultUuid, DYNAMIC_SIMULATION); @@ -3180,7 +3192,8 @@ public void insertVoltageInitModifications(UUID studyUuid, UUID nodeUuid, UUID r } }); // duplicate the modification created by voltageInit server into the current node - NetworkModificationsResult networkModificationResults = networkModificationService.duplicateModificationsFromGroup(networkModificationTreeService.getModificationGroupUuid(nodeUuid), voltageInitModificationsGroupUuid, Pair.of(List.of(), modificationApplicationContexts)); + NetworkModificationsResult networkModificationResults = networkModificationService.duplicateModificationsFromGroup(networkModificationTreeService.getModificationGroupUuid(nodeUuid), + voltageInitModificationsGroupUuid, Pair.of(List.of(), modificationApplicationContexts)); // We expect a single voltageInit modification in the result list if (networkModificationResults != null && networkModificationResults.modificationUuids().size() == 1) { diff --git a/src/main/java/org/gridsuite/study/server/service/VoltageInitResultConsumer.java b/src/main/java/org/gridsuite/study/server/service/VoltageInitResultConsumer.java index 33153d766c..a4f0455912 100644 --- a/src/main/java/org/gridsuite/study/server/service/VoltageInitResultConsumer.java +++ b/src/main/java/org/gridsuite/study/server/service/VoltageInitResultConsumer.java @@ -50,7 +50,8 @@ private void checkReactiveSlacksOverThreshold(Message msg, UUID studyUui if (Boolean.TRUE.equals(alert)) { String userId = msg.getHeaders().get(HEADER_USER_ID, String.class); Double alertThreshold = msg.getHeaders().get(HEADER_REACTIVE_SLACKS_THRESHOLD_VALUE, Double.class); - notificationService.emitStudyAlert(studyUuid, nodeReceiver.getNodeUuid(), nodeReceiver.getRootNetworkUuid(), userId, new StudyAlert(AlertLevel.WARNING, HEADER_REACTIVE_SLACKS_OVER_THRESHOLD, Map.of("threshold", alertThreshold.toString()))); + notificationService.emitStudyAlert(studyUuid, nodeReceiver.getNodeUuid(), nodeReceiver.getRootNetworkUuid(), userId, new StudyAlert(AlertLevel.WARNING, + HEADER_REACTIVE_SLACKS_OVER_THRESHOLD, Map.of("threshold", alertThreshold.toString()))); } }); } @@ -60,7 +61,8 @@ private void checkVoltageLevelLimitsOutOfNominalVoltageRange(Message msg Boolean alert = msg.getHeaders().get(HEADER_VOLTAGE_LEVEL_LIMITS_OUT_OF_NOMINAL_VOLTAGE_RANGE, Boolean.class); if (Boolean.TRUE.equals(alert)) { String userId = msg.getHeaders().get(HEADER_USER_ID, String.class); - notificationService.emitStudyAlert(studyUuid, nodeReceiver.getNodeUuid(), nodeReceiver.getRootNetworkUuid(), userId, new StudyAlert(AlertLevel.WARNING, HEADER_VOLTAGE_LEVEL_LIMITS_OUT_OF_NOMINAL_VOLTAGE_RANGE, null)); + notificationService.emitStudyAlert(studyUuid, nodeReceiver.getNodeUuid(), nodeReceiver.getRootNetworkUuid(), userId, new StudyAlert(AlertLevel.WARNING, + HEADER_VOLTAGE_LEVEL_LIMITS_OUT_OF_NOMINAL_VOLTAGE_RANGE, null)); } }); } diff --git a/src/main/java/org/gridsuite/study/server/service/VoltageInitService.java b/src/main/java/org/gridsuite/study/server/service/VoltageInitService.java index 5f5290f75c..0500a14fbb 100644 --- a/src/main/java/org/gridsuite/study/server/service/VoltageInitService.java +++ b/src/main/java/org/gridsuite/study/server/service/VoltageInitService.java @@ -11,13 +11,13 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.dto.voltageinit.ContextInfos; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.NodeReceiver; import org.gridsuite.study.server.dto.ReportInfos; import org.gridsuite.study.server.dto.VariantInfos; import org.gridsuite.study.server.dto.VoltageInitStatus; +import org.gridsuite.study.server.dto.voltageinit.ContextInfos; import org.gridsuite.study.server.dto.voltageinit.parameters.VoltageInitParametersInfos; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; import org.springframework.http.*; @@ -25,14 +25,12 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; - import java.io.UncheckedIOException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; import java.util.Objects; import java.util.UUID; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; diff --git a/src/main/java/org/gridsuite/study/server/service/client/timeseries/impl/TimeSeriesClientImpl.java b/src/main/java/org/gridsuite/study/server/service/client/timeseries/impl/TimeSeriesClientImpl.java index 1d853b5e13..e161b0556c 100644 --- a/src/main/java/org/gridsuite/study/server/service/client/timeseries/impl/TimeSeriesClientImpl.java +++ b/src/main/java/org/gridsuite/study/server/service/client/timeseries/impl/TimeSeriesClientImpl.java @@ -25,7 +25,6 @@ import static org.gridsuite.study.server.service.client.util.UrlUtil.buildEndPointUrl; - /** * @author Thang PHAM */ diff --git a/src/main/java/org/gridsuite/study/server/service/dynamicmargincalculation/DynamicMarginCalculationService.java b/src/main/java/org/gridsuite/study/server/service/dynamicmargincalculation/DynamicMarginCalculationService.java index 5c86e5c28f..e139bbac31 100644 --- a/src/main/java/org/gridsuite/study/server/service/dynamicmargincalculation/DynamicMarginCalculationService.java +++ b/src/main/java/org/gridsuite/study/server/service/dynamicmargincalculation/DynamicMarginCalculationService.java @@ -70,7 +70,8 @@ public void deleteParameters(UUID parametersUuid) { } public UUID runDynamicMarginCalculation(UUID nodeUuid, UUID rootNetworkUuid, UUID networkUuid, - String variantId, UUID reportUuid, UUID dynamicSimulationParametersUuid, UUID dynamicSecurityAnalysisParametersUuid, UUID parametersUuid, String userId, boolean debug) { + String variantId, UUID reportUuid, UUID dynamicSimulationParametersUuid, UUID dynamicSecurityAnalysisParametersUuid, UUID parametersUuid, String userId, + boolean debug) { // create receiver for getting back the notification in rabbitmq String receiver; @@ -82,7 +83,8 @@ public UUID runDynamicMarginCalculation(UUID nodeUuid, UUID rootNetworkUuid, UUI throw new UncheckedIOException(e); } - return dynamicMarginCalculationClient.run(receiver, networkUuid, variantId, new ReportInfos(reportUuid, nodeUuid), dynamicSimulationParametersUuid, dynamicSecurityAnalysisParametersUuid, parametersUuid, userId, debug); + return dynamicMarginCalculationClient.run(receiver, networkUuid, variantId, new ReportInfos(reportUuid, nodeUuid), dynamicSimulationParametersUuid, dynamicSecurityAnalysisParametersUuid, + parametersUuid, userId, debug); } public DynamicMarginCalculationStatus getStatus(UUID resultUuid) { diff --git a/src/main/java/org/gridsuite/study/server/service/shortcircuit/FaultResultsMode.java b/src/main/java/org/gridsuite/study/server/service/shortcircuit/FaultResultsMode.java index 79f75fd9ec..fbcb33b394 100644 --- a/src/main/java/org/gridsuite/study/server/service/shortcircuit/FaultResultsMode.java +++ b/src/main/java/org/gridsuite/study/server/service/shortcircuit/FaultResultsMode.java @@ -8,7 +8,7 @@ /** * Specify if the faults are present in the result DTO and if so what they contain - * @author Sylvain Bouzols */ public enum FaultResultsMode { /** diff --git a/src/main/java/org/gridsuite/study/server/service/shortcircuit/ShortCircuitService.java b/src/main/java/org/gridsuite/study/server/service/shortcircuit/ShortCircuitService.java index 480db529a5..2fb9c90c20 100644 --- a/src/main/java/org/gridsuite/study/server/service/shortcircuit/ShortCircuitService.java +++ b/src/main/java/org/gridsuite/study/server/service/shortcircuit/ShortCircuitService.java @@ -13,11 +13,11 @@ import lombok.Setter; import org.apache.commons.lang3.StringUtils; import org.gridsuite.study.server.RemoteServicesProperties; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.NodeReceiver; import org.gridsuite.study.server.dto.ReportInfos; import org.gridsuite.study.server.dto.ShortCircuitStatus; import org.gridsuite.study.server.dto.VariantInfos; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.service.StudyService; import org.gridsuite.study.server.service.common.AbstractComputationService; import org.gridsuite.study.server.service.common.ComputationParameters; @@ -31,7 +31,6 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; - import java.io.UncheckedIOException; import java.net.URI; import java.net.URLEncoder; @@ -40,7 +39,6 @@ import java.util.Map; import java.util.Objects; import java.util.UUID; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.*; import static org.gridsuite.study.server.utils.StudyUtils.*; @@ -132,7 +130,8 @@ private String getShortCircuitAnalysisResultsPageResourcePath(UUID resultUuid, S return resultPath + "/paged"; } - public String getShortCircuitAnalysisResult(ResultParameters resultParameters, FaultResultsMode mode, ShortcircuitAnalysisType type, String filters, String globalFilters, boolean paged, Pageable pageable) { + public String getShortCircuitAnalysisResult(ResultParameters resultParameters, FaultResultsMode mode, ShortcircuitAnalysisType type, String filters, String globalFilters, boolean paged, Pageable + pageable) { if (paged) { return getShortCircuitAnalysisResultsPage(resultParameters, mode, type, filters, globalFilters, pageable); } else { diff --git a/src/main/java/org/gridsuite/study/server/utils/PropertyUtils.java b/src/main/java/org/gridsuite/study/server/utils/PropertyUtils.java index a37390c0f0..60a5639196 100644 --- a/src/main/java/org/gridsuite/study/server/utils/PropertyUtils.java +++ b/src/main/java/org/gridsuite/study/server/utils/PropertyUtils.java @@ -16,7 +16,7 @@ import java.util.Arrays; /** - * @author Jacques Borsenberger */ public final class PropertyUtils { private PropertyUtils() { diff --git a/src/main/java/org/gridsuite/study/server/utils/StudyUtils.java b/src/main/java/org/gridsuite/study/server/utils/StudyUtils.java index 69e25d4090..f7daee99a1 100644 --- a/src/main/java/org/gridsuite/study/server/utils/StudyUtils.java +++ b/src/main/java/org/gridsuite/study/server/utils/StudyUtils.java @@ -14,7 +14,7 @@ import static org.gridsuite.study.server.StudyConstants.*; /** - * @author Slimane amar */ public final class StudyUtils { diff --git a/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletion.java b/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletion.java index 8f0bbc751f..9f59e92352 100644 --- a/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletion.java +++ b/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletion.java @@ -12,7 +12,7 @@ import java.lang.annotation.Target; /** - * @author Nicolas Noir */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) diff --git a/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAdapter.java b/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAdapter.java index dafa5af119..58a8f2a140 100644 --- a/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAdapter.java +++ b/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAdapter.java @@ -15,7 +15,7 @@ import java.util.List; /** - * @author Nicolas Noir */ @Component public class PostCompletionAdapter implements TransactionSynchronization { diff --git a/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAnnotationAspect.java b/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAnnotationAspect.java index 36522505b9..2aaf5b7cbf 100644 --- a/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAnnotationAspect.java +++ b/src/main/java/org/gridsuite/study/server/utils/annotations/PostCompletionAnnotationAspect.java @@ -13,7 +13,7 @@ import org.springframework.stereotype.Component; /** - * @author Nicolas Noir */ @Aspect @AllArgsConstructor @@ -30,7 +30,7 @@ public Object executePostCompletion(final ProceedingJoinPoint pjp) { private static final class PjpAfterCompletionRunnable implements Runnable { private final ProceedingJoinPoint pjp; - public PjpAfterCompletionRunnable(ProceedingJoinPoint pjp) { + PjpAfterCompletionRunnable(ProceedingJoinPoint pjp) { this.pjp = pjp; } diff --git a/src/main/resources/org/gridsuite/study/server/reports_fr.properties b/src/main/resources/org/gridsuite/study/server/reports_fr.properties new file mode 100644 index 0000000000..8afa470eae --- /dev/null +++ b/src/main/resources/org/gridsuite/study/server/reports_fr.properties @@ -0,0 +1 @@ +study.server.modificationNodeId = ${modificationNodeId} diff --git a/src/test/java/org/gridsuite/study/server/EquipmentInfosServiceTests.java b/src/test/java/org/gridsuite/study/server/EquipmentInfosServiceTests.java index 076ee92adb..17fe3cfcd9 100644 --- a/src/test/java/org/gridsuite/study/server/EquipmentInfosServiceTests.java +++ b/src/test/java/org/gridsuite/study/server/EquipmentInfosServiceTests.java @@ -26,8 +26,8 @@ import org.gridsuite.study.server.elasticsearch.EquipmentInfosService; import org.gridsuite.study.server.service.NetworkModificationTreeService; import org.gridsuite.study.server.service.NetworkService; -import org.gridsuite.study.server.service.StudyService; import org.gridsuite.study.server.service.RootNetworkService; +import org.gridsuite.study.server.service.StudyService; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -36,10 +36,8 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.elasticsearch.client.elc.Queries; import org.springframework.test.context.bean.override.mockito.MockitoBean; - import java.util.*; import java.util.stream.Stream; - import static org.gridsuite.study.server.elasticsearch.EquipmentInfosService.EQUIPMENT_TYPE_SCORES; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -88,7 +86,7 @@ class EquipmentInfosServiceTests implements WithAssertions { @BeforeEach void setup() { -// when(networkStoreService.getNetworkUuid(NETWORK_UUID)).thenReturn(NETWORK_UUID); + // when(networkStoreService.getNetworkUuid(NETWORK_UUID)).thenReturn(NETWORK_UUID); when(networkModificationTreeService.getVariantId(NODE_UUID, ROOTNETWORK_UUID)).thenReturn(VariantManagerConstants.INITIAL_VARIANT_ID); when(rootNetworkService.getNetworkUuid(ROOTNETWORK_UUID)).thenReturn(NETWORK_UUID); } @@ -105,7 +103,8 @@ private static BoolQuery buildBoolQueryEquipmentType(String equipmentType) { @Test void testAddDeleteEquipmentInfos() { - EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); + EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build( + ))).build(); equipmentInfosService.addEquipmentInfos(loadInfos); assertEquals(1, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); EquipmentInfos loadInfosDB = equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).get(0); @@ -113,7 +112,8 @@ void testAddDeleteEquipmentInfos() { assertEquals(loadInfos.getNetworkUuid() + "_" + loadInfos.getVariantId() + "_" + loadInfos.getId(), loadInfosDB.getUniqueId()); assertEquals(1, equipmentInfosService.getEquipmentInfosCount(NETWORK_UUID)); - EquipmentInfos loadInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID_2).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); + EquipmentInfos loadInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID_2).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build( + ))).build(); equipmentInfosService.addEquipmentInfos(loadInfos2); assertEquals(1, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID_2).size()); EquipmentInfos loadInfosDB2 = equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID_2).get(0); @@ -138,8 +138,10 @@ void testAddDeleteEquipmentInfos() { assertEquals(0, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); assertEquals(0, equipmentInfosService.getEquipmentInfosCount(NETWORK_UUID)); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id1").name("name1").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build()); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id2").name("name2").type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build()); + equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id1").name("name1").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id( + "vl1").name("vl1").build())).build()); + equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id2").name("name2").type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id( + "vl2").name("vl2").build())).build()); assertEquals(2, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); assertEquals(2, equipmentInfosService.getEquipmentInfosCount(NETWORK_UUID)); @@ -178,7 +180,8 @@ void testAddDeleteTombstonedEquipmentInfos() { @Test void testDeleteAllEquipmentInfos() { TombstonedEquipmentInfos tsLoadInfos = TombstonedEquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id").build(); - EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); + EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build( + ))).build(); assertEquals(equipmentInfosService.addTombstonedEquipmentInfos(tsLoadInfos), tsLoadInfos); assertEquals(equipmentInfosService.addEquipmentInfos(loadInfos), loadInfos); @@ -196,12 +199,15 @@ void testDeleteAllEquipmentInfos() { void testGetOrphanEquipmentInfosNetworkUuids() { // index some equipment infos as orphan UUID orphanNetworkUuid = UUID.randomUUID(); - EquipmentInfos orphanLoadInfos = EquipmentInfos.builder().networkUuid(orphanNetworkUuid).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); + EquipmentInfos orphanLoadInfos = EquipmentInfos.builder().networkUuid(orphanNetworkUuid).id("id").name("name").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name( + "vl").build())).build(); UUID orphanNetworkUuid2 = UUID.randomUUID(); - EquipmentInfos orphanVlInfos = EquipmentInfos.builder().networkUuid(orphanNetworkUuid2).id("id").name("name").type("VOLTAGE_LEVEL").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); + EquipmentInfos orphanVlInfos = EquipmentInfos.builder().networkUuid(orphanNetworkUuid2).id("id").name("name").type("VOLTAGE_LEVEL").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); // index an equipment infos for the existing network - EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id2").name("name2").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build(); + EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id2").name("name2").type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build( + ))).build(); equipmentInfosService.addEquipmentInfos(loadInfos); equipmentInfosService.addEquipmentInfos(orphanLoadInfos); @@ -226,7 +232,8 @@ void testGetOrphanEquipmentInfosNetworkUuids() { @Test void testCloneVariant() { - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id1").name("name1").type(IdentifiableType.LOAD.name()).variantId("variant1").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build()); + equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id1").name("name1").type(IdentifiableType.LOAD.name()).variantId("variant1").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build()); assertEquals(1, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); equipmentInfosService.deleteVariants(NETWORK_UUID, List.of("variant1", "variant2")); @@ -235,13 +242,16 @@ void testCloneVariant() { @Test void testDeleteVariants() { - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id1").name("name1").type(IdentifiableType.LOAD.name()).variantId("variant1").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build()); + equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id1").name("name1").type(IdentifiableType.LOAD.name()).variantId("variant1").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build()); assertEquals(1, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id2").name("name2").type(IdentifiableType.GENERATOR.name()).variantId("variant2").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build()); + equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id2").name("name2").type(IdentifiableType.GENERATOR.name()).variantId("variant2").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build()); assertEquals(2, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id3").name("name3").type(IdentifiableType.BATTERY.name()).variantId("variant3").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build()); + equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id3").name("name3").type(IdentifiableType.BATTERY.name()).variantId("variant3").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build()); assertEquals(3, equipmentInfosService.findAllEquipmentInfos(NETWORK_UUID).size()); equipmentInfosService.deleteVariants(NETWORK_UUID, List.of("variant1", "variant3")); @@ -255,13 +265,20 @@ void testDeleteVariants() { @Test void searchEquipmentInfos() { - EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); - EquipmentInfos line1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l1").name("name_l1").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); - EquipmentInfos line2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l2").name("name_l2").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); - EquipmentInfos otherLineInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_other_line").name("name_other_line").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl4").name("vl4").build())).build(); - EquipmentInfos tw1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw1").name("name_tw1").type("TWO_WINDINGS_TRANSFORMER").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl5").name("vl5").build())).build(); - EquipmentInfos tw2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw2").name("name_tw2").type("TWO_WINDINGS_TRANSFORMER").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl6").name("vl6").build())).build(); - EquipmentInfos configuredBus = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_bus").name("name_bus").type("CONFIGURED_BUS").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl7").name("vl7").build())).build(); + EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id( + "vl1").name("vl1").build())).build(); + EquipmentInfos line1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l1").name("name_l1").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name( + "vl2").build())).build(); + EquipmentInfos line2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l2").name("name_l2").type("LINE").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); + EquipmentInfos otherLineInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_other_line").name("name_other_line").type("LINE").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl4").name("vl4").build())).build(); + EquipmentInfos tw1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw1").name("name_tw1").type("TWO_WINDINGS_TRANSFORMER").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl5").name("vl5").build())).build(); + EquipmentInfos tw2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw2").name("name_tw2").type("TWO_WINDINGS_TRANSFORMER").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl6").name("vl6").build())).build(); + EquipmentInfos configuredBus = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_bus").name("name_bus").type("CONFIGURED_BUS").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl7").name("vl7").build())).build(); Stream.of(generatorInfos, line1Infos, line2Infos, otherLineInfos, tw1Infos, tw2Infos, configuredBus).forEach(equipmentInfosService::addEquipmentInfos); @@ -293,13 +310,20 @@ void searchEquipmentInfos() { @Test void searchEquipmentInfosWithPattern() { BoolQuery query; - EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); - EquipmentInfos line1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l1").name("name_l1").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); - EquipmentInfos line2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l2").name("name_l2").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); - EquipmentInfos otherLineInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_other_line").name("name_other_line").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl4").name("vl4").build())).build(); - EquipmentInfos tw1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw1").name("name_tw1").type("TWO_WINDINGS_TRANSFORMER").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl5").name("vl5").build())).build(); - EquipmentInfos tw2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw2").name("name_tw2").type("TWO_WINDINGS_TRANSFORMER").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl6").name("vl6").build())).build(); - EquipmentInfos configuredBus = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_bus").name("name_bus").type("CONFIGURED_BUS").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl7").name("vl7").build())).build(); + EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id( + "vl1").name("vl1").build())).build(); + EquipmentInfos line1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l1").name("name_l1").type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name( + "vl2").build())).build(); + EquipmentInfos line2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l2").name("name_l2").type("LINE").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); + EquipmentInfos otherLineInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_other_line").name("name_other_line").type("LINE").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl4").name("vl4").build())).build(); + EquipmentInfos tw1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw1").name("name_tw1").type("TWO_WINDINGS_TRANSFORMER").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl5").name("vl5").build())).build(); + EquipmentInfos tw2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw2").name("name_tw2").type("TWO_WINDINGS_TRANSFORMER").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl6").name("vl6").build())).build(); + EquipmentInfos configuredBus = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_bus").name("name_bus").type("CONFIGURED_BUS").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl7").name("vl7").build())).build(); Stream.of(generatorInfos, line1Infos, line2Infos, otherLineInfos, tw1Infos, tw2Infos, configuredBus).forEach(equipmentInfosService::addEquipmentInfos); query = new BoolQuery.Builder().must(Queries.wildcardQuery(EQUIPMENT_ID_FIELD, "*")._toQuery()).build(); @@ -335,7 +359,8 @@ void searchEquipmentInfosWithPattern() { query = new BoolQuery.Builder().must(Queries.wildcardQuery(EQUIPMENT_ID_FIELD, "id_l*")._toQuery(), Queries.wildcardQuery(EQUIPMENT_ID_FIELD, "id_tw*")._toQuery()).build(); hits = new HashSet<>(equipmentInfosService.searchEquipments(query, List.of())); assertEquals(0, hits.size()); - hits = new HashSet<>(equipmentInfosService.searchEquipments(new BoolQuery.Builder().must(Queries.wildcardQuery(EQUIPMENT_ID_FIELD, "*other*")._toQuery(), Queries.termQuery(EQUIPMENT_TYPE_FIELD, "LINE")._toQuery()).build(), List.of())); + hits = new HashSet<>(equipmentInfosService.searchEquipments(new BoolQuery.Builder().must(Queries.wildcardQuery(EQUIPMENT_ID_FIELD, "*other*")._toQuery(), Queries.termQuery( + EQUIPMENT_TYPE_FIELD, "LINE")._toQuery()).build(), List.of())); assertEquals(1, hits.size()); assertTrue(hits.contains(otherLineInfos)); } @@ -456,13 +481,16 @@ void testSearchGlobalOrder() { EquipmentInfos tw2Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("id_tw2").name("name_tw2").type("TWO_WINDINGS_TRANSFORMER").build(); EquipmentInfos substation2Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("id_substation_2").name("name_sub_1").type("SUBSTATION").build(); EquipmentInfos substation1Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("id_substation_1").name("name_sub_2").type("SUBSTATION").build(); - EquipmentInfos alphabeticallySecondSubstation1Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("def_substation_id").name("name_sub_def").type("SUBSTATION").build(); - EquipmentInfos alphabeticallyFirstSubstation1Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("abc_substation_id").name("name_sub_abc").type("SUBSTATION").build(); + EquipmentInfos alphabeticallySecondSubstation1Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("def_substation_id").name("name_sub_def").type( + "SUBSTATION").build(); + EquipmentInfos alphabeticallyFirstSubstation1Infos = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("abc_substation_id").name("name_sub_abc").type( + "SUBSTATION").build(); EquipmentInfos filteredOutSubstation = EquipmentInfos.builder().variantId(VARIANT_ID).networkUuid(NETWORK_UUID).id("filtered").name("filtered_name ").type("SUBSTATION").build(); String userinput = "id"; - List equipmentInfosList = List.of(generatorInfos, line1Infos, line2Infos, otherLineInfos, tw1Infos, tw2Infos, substation2Infos, substation1Infos, alphabeticallySecondSubstation1Infos, alphabeticallyFirstSubstation1Infos, filteredOutSubstation); + List equipmentInfosList = List.of(generatorInfos, line1Infos, line2Infos, otherLineInfos, tw1Infos, tw2Infos, substation2Infos, substation1Infos, + alphabeticallySecondSubstation1Infos, alphabeticallyFirstSubstation1Infos, filteredOutSubstation); equipmentInfosList.forEach(equipmentInfosService::addEquipmentInfos); List result = equipmentInfosService.searchEquipments(NETWORK_UUID, VARIANT_ID, userinput, EquipmentInfosService.FieldSelector.ID, null); diff --git a/src/test/java/org/gridsuite/study/server/FilterServiceTest.java b/src/test/java/org/gridsuite/study/server/FilterServiceTest.java index 2cf8165f48..2845814f21 100644 --- a/src/test/java/org/gridsuite/study/server/FilterServiceTest.java +++ b/src/test/java/org/gridsuite/study/server/FilterServiceTest.java @@ -19,8 +19,8 @@ import org.gridsuite.study.server.service.FilterService; import org.gridsuite.study.server.service.NetworkModificationTreeService; import org.gridsuite.study.server.utils.TestUtils; -import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; +import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -35,11 +35,9 @@ import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; - import java.util.List; import java.util.UUID; import java.util.stream.Collectors; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.utils.TestUtils.createModificationNodeInfo; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -414,7 +412,8 @@ void testExportFilters() throws Exception { """; UUID stubUuid = wireMockStubs.stubFiltersExport(NETWORK_UUID_STRING, FILTERS_UUID_STRING, responseBody); - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/filters/elements?filtersUuid=" + FILTERS_UUID_STRING.stream().collect(Collectors.joining(",")), + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/filters/elements?filtersUuid=" + FILTERS_UUID_STRING.stream().collect( + Collectors.joining(",")), studyUuid, firstRootNetworkUuid, rootNodeUuid)) .andExpect(status().isOk()) .andReturn(); @@ -424,7 +423,8 @@ void testExportFilters() throws Exception { wireMockStubs.verifyFiltersExport(stubUuid, FILTERS_UUID_STRING, NETWORK_UUID_STRING); // export on first node - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/filters/elements?filtersUuid=" + FILTERS_UUID_STRING.stream().collect(Collectors.joining(",")), + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/filters/elements?filtersUuid=" + FILTERS_UUID_STRING.stream().collect( + Collectors.joining(",")), studyUuid, firstRootNetworkUuid, firstNode.getId())) .andExpect(status().isOk()) .andReturn(); diff --git a/src/test/java/org/gridsuite/study/server/JsonUtilsTest.java b/src/test/java/org/gridsuite/study/server/JsonUtilsTest.java index bb8a69b7ca..0a8a5a4d79 100644 --- a/src/test/java/org/gridsuite/study/server/JsonUtilsTest.java +++ b/src/test/java/org/gridsuite/study/server/JsonUtilsTest.java @@ -19,7 +19,7 @@ import static org.junit.jupiter.api.Assertions.*; /** - * @author Etienne HOMER + * @author Etienne HOMER */ class JsonUtilsTest { private static final ObjectMapper MAPPER = new ObjectMapper(); diff --git a/src/test/java/org/gridsuite/study/server/ModificationSearchTest.java b/src/test/java/org/gridsuite/study/server/ModificationSearchTest.java index db661298ea..5844675e44 100644 --- a/src/test/java/org/gridsuite/study/server/ModificationSearchTest.java +++ b/src/test/java/org/gridsuite/study/server/ModificationSearchTest.java @@ -18,24 +18,22 @@ import org.gridsuite.study.server.service.NetworkModificationTreeService; import org.gridsuite.study.server.service.RootNetworkService; import org.gridsuite.study.server.utils.TestUtils; -import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; +import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; - import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.utils.TestUtils.createModificationNodeInfo; import static org.junit.jupiter.api.Assertions.assertTrue; diff --git a/src/test/java/org/gridsuite/study/server/NadConfigTest.java b/src/test/java/org/gridsuite/study/server/NadConfigTest.java index 05ed0bd483..029bd3e2db 100644 --- a/src/test/java/org/gridsuite/study/server/NadConfigTest.java +++ b/src/test/java/org/gridsuite/study/server/NadConfigTest.java @@ -8,7 +8,6 @@ import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; -import org.springframework.web.client.HttpServerErrorException; import org.gridsuite.study.server.service.NadConfigService; import org.gridsuite.study.server.service.SingleLineDiagramService; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; @@ -18,8 +17,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.web.client.HttpServerErrorException; import java.util.*; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.StudyConstants.DELIMITER; import static org.junit.jupiter.api.Assertions.*; diff --git a/src/test/java/org/gridsuite/study/server/NetworkAreaDiagramTest.java b/src/test/java/org/gridsuite/study/server/NetworkAreaDiagramTest.java index 1fef3096bd..12413e8a68 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkAreaDiagramTest.java +++ b/src/test/java/org/gridsuite/study/server/NetworkAreaDiagramTest.java @@ -6,7 +6,6 @@ import com.powsybl.iidm.network.VariantManagerConstants; import com.powsybl.network.store.client.NetworkStoreService; import com.powsybl.network.store.model.VariantInfos; - import org.gridsuite.study.server.dto.ComputationType; import org.gridsuite.study.server.dto.CurrentLimitViolationInfos; import org.gridsuite.study.server.dto.LimitViolationInfos; @@ -26,12 +25,10 @@ import org.springframework.http.MediaType; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.web.servlet.MockMvc; - import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.UUID; - import static com.github.tomakehurst.wiremock.client.WireMock.equalTo; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.StudyConstants.CURRENT_LIMIT_VIOLATIONS_INFOS; diff --git a/src/test/java/org/gridsuite/study/server/NetworkMapTest.java b/src/test/java/org/gridsuite/study/server/NetworkMapTest.java index ab7fc08028..3e470759ee 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkMapTest.java +++ b/src/test/java/org/gridsuite/study/server/NetworkMapTest.java @@ -22,8 +22,8 @@ import mockwebserver3.junit5.internal.MockWebServerExtension; import okhttp3.Headers; import okhttp3.HttpUrl; -import org.gridsuite.study.server.dto.ComputationType; import org.gridsuite.filter.utils.EquipmentType; +import org.gridsuite.study.server.dto.ComputationType; import org.gridsuite.study.server.dto.IdentifiableInfos; import org.gridsuite.study.server.dto.LoadFlowParametersInfos; import org.gridsuite.study.server.networkmodificationtree.dto.AbstractNode; @@ -34,8 +34,8 @@ import org.gridsuite.study.server.service.shortcircuit.ShortCircuitService; import org.gridsuite.study.server.utils.MatcherJson; import org.gridsuite.study.server.utils.TestUtils; -import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; +import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.wiremock.WireMockUtils; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.AfterEach; @@ -56,7 +56,6 @@ import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; import org.springframework.util.LinkedMultiValueMap; - import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.List; @@ -64,7 +63,6 @@ import java.util.Objects; import java.util.UUID; import java.util.stream.Collectors; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.dto.InfoTypeParameters.QUERY_PARAM_DC_POWERFACTOR; @@ -100,12 +98,23 @@ class NetworkMapTest { private static final String SUBSTATION_ID_1 = "SUBSTATION_ID_1"; private static final String VL_ID_1 = "VL_ID_1"; private static final String VOLTAGE_LEVEL_ID = "VOLTAGE_LEVEL_ID"; - private static final String VOLTAGE_LEVEL_EQUIPMENTS_JSON = "[{\"id\":\"GEN\",\"name\":null,\"type\":\"GENERATOR\"},{\"id\":\"GEN2\",\"name\":null,\"type\":\"GENERATOR\"},{\"id\":\"LCC1\",\"name\":\"LCC1\",\"type\":\"HVDC_CONVERTER_STATION\"},{\"id\":\"SVC1\",\"name\":\"SVC1\",\"type\":\"STATIC_VAR_COMPENSATOR\"},{\"id\":\"NGEN_NHV1\",\"name\":null,\"type\":\"TWO_WINDINGS_TRANSFORMER\"},{\"id\":\"TWT\",\"name\":\"TWT\",\"type\":\"THREE_WINDINGS_TRANSFORMER\"},{\"id\":\"TWT21\",\"name\":\"TWT21\",\"type\":\"THREE_WINDINGS_TRANSFORMER\"},{\"id\":\"TWT32\",\"name\":\"TWT32\",\"type\":\"THREE_WINDINGS_TRANSFORMER\"},{\"id\":\"BL1\",\"name\":\"BL1\",\"type\":\"BOUNDARY_LINE\"},{\"id\":\"LINE3\",\"name\":null,\"type\":\"LINE\"}]"; + private static final String VOLTAGE_LEVEL_EQUIPMENTS_JSON = + "[{\"id\":\"GEN\",\"name\":null,\"type\":\"GENERATOR\"},{\"id\":\"GEN2\",\"name\":null,\"type\":\"GENERATOR\"},{\"id\":\"LCC1\",\"name\":\"LCC1\",\"type\":\"HVDC_CONVERTER_STATION\"}," + + "{\"id\":\"SVC1\",\"name\":\"SVC1\",\"type\":\"STATIC_VAR_COMPENSATOR\"},{\"id\":\"NGEN_NHV1\",\"name\":null,\"type\":\"TWO_WINDINGS_TRANSFORMER\"},{\"id\":\"TWT\"," + + "\"name\":\"TWT\",\"type\":\"THREE_WINDINGS_TRANSFORMER\"},{\"id\":\"TWT21\",\"name\":\"TWT21\",\"type\":\"THREE_WINDINGS_TRANSFORMER\"},{\"id\":\"TWT32\"," + + "\"name\":\"TWT32\",\"type\":\"THREE_WINDINGS_TRANSFORMER\"},{\"id\":\"BL1\",\"name\":\"BL1\",\"type\":\"BOUNDARY_LINE\"},{\"id\":\"LINE3\",\"name\":null," + + "\"type\":\"LINE\"}]"; private static final String LOADFLOW_PARAMETERS_UUID_STRING = "0c0f1efd-bd22-4a75-83d3-9e530245c7f4"; private static final UUID LOADFLOW_PARAMETERS_UUID = UUID.fromString(LOADFLOW_PARAMETERS_UUID_STRING); private static final String SWITCHES_INFOS_JSON = "[{\"id\":\".ABRE 6_.ABRE6TR615 SA.1_OC\",\"open\":false\"},{\"id\":\".ABRE 6_.ABRE6SEC..12 SS.1.12_OC\",\"open\":false\"}]"; - private static final String BUSBAR_SECTIONS_INFO_JSON = "{\"topologyKind\":\"NODE_BREAKER\",\"switchKinds\":[\"DISCONNECTOR\"],\"isSymmetrical\":true,\"isBusbarSectionPositionFound\":true,\"busBarSections\":{\"1\":[\"NGEN4\"]}}"; - private static final String FEEDER_BAYS_BUSBAR_SECTIONS_INFO_JSON = "{\"feederBaysInfos\":{\"SHUNT_VLNB\":[{\"busbarSectionId\":\"NGEN4\",\"connectablePositionInfos\":{\"connectionDirection\":null},\"connectionSide\":null}],\"LINE7\":[{\"busbarSectionId\":\"NGEN4\",\"connectablePositionInfos\":{\"connectionDirection\":\"BOTTOM\",\"connectionPosition\":5,\"connectionName\":\"LINE7_Side_VLGEN4\"},\"connectionSide\":\"ONE\"}],\"SHUNT_NON_LINEAR\":[{\"busbarSectionId\":\"NGEN4\",\"connectablePositionInfos\":{\"connectionDirection\":null},\"connectionSide\":null}]},\"busBarSectionsInfos\":{\"topologyKind\":\"NODE_BREAKER\",\"switchKinds\":[\"DISCONNECTOR\"],\"isSymmetrical\":true,\"isBusbarSectionPositionFound\":true,\"busBarSections\":{\"1\":[\"NGEN4\"]}}}"; + private static final String BUSBAR_SECTIONS_INFO_JSON = + "{\"topologyKind\":\"NODE_BREAKER\",\"switchKinds\":[\"DISCONNECTOR\"],\"isSymmetrical\":true,\"isBusbarSectionPositionFound\":true,\"busBarSections\":{\"1\":[\"NGEN4\"]}}"; + private static final String FEEDER_BAYS_BUSBAR_SECTIONS_INFO_JSON = + "{\"feederBaysInfos\":{\"SHUNT_VLNB\":[{\"busbarSectionId\":\"NGEN4\",\"connectablePositionInfos\":{\"connectionDirection\":null},\"connectionSide\":null}]," + + "\"LINE7\":[{\"busbarSectionId\":\"NGEN4\",\"connectablePositionInfos\":{\"connectionDirection\":\"BOTTOM\",\"connectionPosition\":5," + + "\"connectionName\":\"LINE7_Side_VLGEN4\"},\"connectionSide\":\"ONE\"}],\"SHUNT_NON_LINEAR\":[{\"busbarSectionId\":\"NGEN4\"," + + "\"connectablePositionInfos\":{\"connectionDirection\":null},\"connectionSide\":null}]},\"busBarSectionsInfos\":{\"topologyKind\":\"NODE_BREAKER\"," + + "\"switchKinds\":[\"DISCONNECTOR\"],\"isSymmetrical\":true,\"isBusbarSectionPositionFound\":true,\"busBarSections\":{\"1\":[\"NGEN4\"]}}}"; @Autowired private MockMvc mockMvc; @@ -382,7 +391,8 @@ void testGetVoltageLevelsTopology(final MockWebServer server) throws Exception { AbstractNode node = getRootNode(studyEntity.getId()).getChildren().stream().findFirst().orElseThrow(); //get the voltage levels and its equipments - getNetworkElementsInfos(studyEntity.getId(), firstRootNetworkUuid, node.getId(), "LIST", "VOLTAGE_LEVEL", List.of(24.0), mapper.writeValueAsString(List.of()), "[{\"id\":\"MTAUBP3\",\"nominalVoltage\":24.0,\"topologyKind\":\"NODE_BREAKER\"}]"); + getNetworkElementsInfos(studyEntity.getId(), firstRootNetworkUuid, node.getId(), "LIST", "VOLTAGE_LEVEL", List.of(24.0), mapper.writeValueAsString(List.of()), + "[{\"id\":\"MTAUBP3\",\"nominalVoltage\":24.0,\"topologyKind\":\"NODE_BREAKER\"}]"); assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/parameters/" + LOADFLOW_PARAMETERS_UUID_STRING))); } @@ -484,7 +494,8 @@ void testGetBranchOr3WTVoltageLevelId(final MockWebServer server) throws Excepti AbstractNode node = getRootNode(studyEntity.getId()).getChildren().stream().findFirst().orElseThrow(); MvcResult mvcResult = mockMvc - .perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/branch-or-3wt/{equipmentId}/voltage-level-id", studyEntity.getId(), firstRootNetworkUuid, node.getId(), LINE_ID_1) + .perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/branch-or-3wt/{equipmentId}/voltage-level-id", studyEntity.getId(), + firstRootNetworkUuid, node.getId(), LINE_ID_1) .queryParam(QUERY_PARAM_SIDE, TwoSides.ONE.name())) .andExpect(status().isOk()) .andReturn(); @@ -774,7 +785,8 @@ private RootNode getRootNode(UUID study) throws Exception { .getContentAsString(), new TypeReference<>() { }); } - private MvcResult getNetworkElementsIds(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String elementType, List nominalVoltages, String responseBody, String requestBody) throws Exception { + private MvcResult getNetworkElementsIds(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String elementType, List nominalVoltages, String responseBody, String requestBody) throws + Exception { UUID stubUuid = wireMockStubs.stubNetworkElementsIdsPost(NETWORK_UUID_STRING, responseBody); LinkedMultiValueMap queryParams = new LinkedMultiValueMap<>(); queryParams.add(QUERY_PARAM_EQUIPMENT_TYPE, elementType); @@ -784,7 +796,8 @@ private MvcResult getNetworkElementsIds(UUID studyUuid, UUID rootNetworkUuid, UU .collect(Collectors.toList()); queryParams.addAll(QUERY_PARAM_NOMINAL_VOLTAGES, nominalVoltageStrings); } - MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/equipments-ids", studyUuid, rootNetworkUuid, rootNodeUuid) + MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-map/equipments-ids", studyUuid, + rootNetworkUuid, rootNodeUuid) .queryParams(queryParams) .contentType(MediaType.APPLICATION_JSON) .content(requestBody); @@ -795,10 +808,12 @@ private MvcResult getNetworkElementsIds(UUID studyUuid, UUID rootNetworkUuid, UU return mvcResult; } - private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String infoType, String elementType, List nominalVoltages, String requestBody, String responseBody) throws Exception { + private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String infoType, String elementType, List nominalVoltages, String requestBody, String + responseBody) throws Exception { UUID stubUuid = wireMockStubs.stubNetworkElementsInfosPost(NETWORK_UUID_STRING, infoType, elementType, nominalVoltages, responseBody); - MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNetworkUuid, rootNodeUuid) + MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNetworkUuid, + rootNodeUuid) .queryParam(QUERY_PARAM_INFO_TYPE, infoType) .queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType) .queryParam(String.format(QUERY_FORMAT_OPTIONAL_PARAMS, QUERY_PARAM_DC_POWERFACTOR), Double.toString(LoadFlowParameters.DEFAULT_DC_POWER_FACTOR)); @@ -818,7 +833,8 @@ private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNetworkUuid, private MvcResult getNetworkElementInfos(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String elementType, String infoType, String elementId, String responseBody) throws Exception { UUID stubUuid = wireMockStubs.stubNetworkElementInfosGet(NETWORK_UUID_STRING, elementType, infoType, elementId, responseBody); - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements/{elementId}", studyUuid, rootNetworkUuid, rootNodeUuid, elementId) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements/{elementId}", studyUuid, rootNetworkUuid, rootNodeUuid, + elementId) .queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType) .queryParam(QUERY_PARAM_INFO_TYPE, infoType) ) @@ -830,7 +846,8 @@ private MvcResult getNetworkElementInfos(UUID studyUuid, UUID rootNetworkUuid, U private MvcResult getNetworkElementInfosNotFound(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String elementType, String infoType, String elementId) throws Exception { UUID stubUuid = wireMockStubs.stubNetworkElementInfosGetNotFound(NETWORK_UUID_STRING, elementType, infoType, elementId); - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements/{elementId}", studyUuid, rootNetworkUuid, rootNodeUuid, elementId) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements/{elementId}", studyUuid, rootNetworkUuid, rootNodeUuid, + elementId) .queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType) .queryParam(QUERY_PARAM_INFO_TYPE, infoType) .queryParam(String.format(QUERY_FORMAT_OPTIONAL_PARAMS, QUERY_PARAM_DC_POWERFACTOR), Double.toString(LoadFlowParameters.DEFAULT_DC_POWER_FACTOR)) diff --git a/src/test/java/org/gridsuite/study/server/NetworkModificationTest.java b/src/test/java/org/gridsuite/study/server/NetworkModificationTest.java index 8394d4b7af..823d25a96d 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkModificationTest.java +++ b/src/test/java/org/gridsuite/study/server/NetworkModificationTest.java @@ -167,7 +167,8 @@ class NetworkModificationTest { private static final String URI_NETWORK_MODIF = "/v1/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications"; private static final String URI_NETWORK_MODIF_WITH_ID = "/v1/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications/{uuid}"; - private static final NetworkModificationResult DEFAULT_BUILD_RESULT = createModificationResultWithElementImpact(SimpleImpactType.CREATION, IdentifiableType.LINE, "lineId", Set.of("s1", "s2")).get(); + private static final NetworkModificationResult DEFAULT_BUILD_RESULT = createModificationResultWithElementImpact(SimpleImpactType.CREATION, IdentifiableType.LINE, "lineId", Set.of("s1", + "s2")).get(); @Autowired private MockMvc mockMvc; @@ -446,28 +447,32 @@ void testBuild() throws Exception { assertEquals(List.of(modificationGroupUuid1, modificationGroupUuid2, modificationGroupUuid3, modificationGroupUuid4, modificationGroupUuid5), buildInfos.getModificationGroupUuids()); // Mark the node 3 status as built - RootNetworkNodeInfoEntity rootNetworkNodeInfo3Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo3Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo3Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo3Entity); buildInfos = networkModificationTreeService.getBuildInfos(modificationNode4.getId(), rootNetworkUuid); assertEquals("variant_3", buildInfos.getOriginVariantId()); // variant to clone is variant associated to node - // modificationNode3 + // modificationNode3 assertEquals("variant_4", buildInfos.getDestinationVariantId()); assertEquals(List.of(modificationGroupUuid4), buildInfos.getModificationGroupUuids()); // Mark the node 2 status as not built - RootNetworkNodeInfoEntity rootNetworkNodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo2Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo2Entity); // Mark the node 4 status as not built - RootNetworkNodeInfoEntity rootNetworkNodeInfo4Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode4.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo4Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode4.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo4Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo4Entity); // Mark the node 5 status as built - RootNetworkNodeInfoEntity rootNetworkNodeInfo5Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode5.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo5Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode5.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo5Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo5Entity); @@ -479,7 +484,8 @@ void testBuild() throws Exception { assertEquals(BuildStatus.BUILT, networkModificationTreeService.getNodeBuildStatus(modificationNode5.getId(), rootNetworkUuid).getGlobalBuildStatus()); // Mark the node 3 status as not built - rootNetworkNodeInfo3Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + rootNetworkNodeInfo3Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo3Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo3Entity); @@ -507,7 +513,8 @@ void testLocalBuildValue() throws Exception { wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); // Mark the node status as built - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); @@ -537,7 +544,8 @@ void testLocalBuildValue() throws Exception { checkEquipmentMessagesReceived(studyNameUserIdUuid, modificationNodeUuid, expectedPayload); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); assertEquals(BuildStatus.BUILT_WITH_ERROR, networkModificationTreeService.getNodeBuildStatus(modificationNodeUuid, rootNetworkUuid).getGlobalBuildStatus()); - Pair> modificationBody = Pair.of(jsonCreateLoadInfos, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(jsonCreateLoadInfos, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // Build second node is OK @@ -604,7 +612,8 @@ void testBuildAsserts() throws Exception { Set.of()); // Mark the node 1 status as building - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); @@ -616,7 +625,8 @@ void testBuildAsserts() throws Exception { ); // Mark the node 2 status as building - RootNetworkNodeInfoEntity rootNetworkNodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT)); rootNetworkNodeInfo2Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.saveAll(List.of(rootNetworkNodeInfo1Entity, rootNetworkNodeInfo2Entity)); @@ -629,7 +639,8 @@ void testBuildAsserts() throws Exception { ); // Mark the node 4 status as building - RootNetworkNodeInfoEntity rootNetworkNodeInfo4Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode4.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo4Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode4.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo2Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT)); rootNetworkNodeInfo4Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.saveAll(List.of(rootNetworkNodeInfo2Entity, rootNetworkNodeInfo4Entity)); @@ -699,7 +710,8 @@ void testNetworkModificationSwitch() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); List csbiListResult = studyService.getStudies(); @@ -719,10 +731,12 @@ void testNetworkModificationSwitch() throws Exception { wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // test build status on switch modification - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); - RootNetworkNodeInfoEntity rootNetworkNodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo2Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo2Entity); @@ -790,7 +804,8 @@ void testNetworkModificationEquipment() throws Exception { checkUpdateStatusMessagesReceived(studyNameUserIdUuid, modificationNodeUuid, output); checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); - Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); List csbiListResponse = studyService.getStudies(); @@ -856,7 +871,8 @@ void testCreateGenerator() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(bodyJsonCreate, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(bodyJsonCreate, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // create generator on second modification node @@ -914,7 +930,8 @@ void testCreateShuntsCompensator() throws Exception { UUID.randomUUID(), VARIANT_ID, "node 1", userId); UUID modificationNode1Uuid = modificationNode1.getId(); - String createShuntCompensatorAttributes = "{\"type\":\"" + ModificationType.SHUNT_COMPENSATOR_CREATION + "\",\"shuntCompensatorId\":\"shuntCompensatorId1\",\"shuntCompensatorName\":\"shuntCompensatorName1\",\"voltageLevelId\":\"idVL1\",\"busOrBusbarSectionId\":\"idBus1\"}"; + String createShuntCompensatorAttributes = "{\"type\":\"" + ModificationType.SHUNT_COMPENSATOR_CREATION + + "\",\"shuntCompensatorId\":\"shuntCompensatorId1\",\"shuntCompensatorName\":\"shuntCompensatorName1\",\"voltageLevelId\":\"idVL1\",\"busOrBusbarSectionId\":\"idBus1\"}"; // create shuntCompensator on root node (not allowed) mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, rootNodeUuid) @@ -932,12 +949,14 @@ void testCreateShuntsCompensator() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createShuntCompensatorAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createShuntCompensatorAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // update shunt compensator creation UUID stubPutId = wireMockStubs.stubNetworkModificationPut(MODIFICATION_UUID); - String shuntCompensatorAttributesUpdated = "{\"type\":\"" + ModificationType.SHUNT_COMPENSATOR_CREATION + "\",\"shuntCompensatorId\":\"shuntCompensatorId2\",\"shuntCompensatorName\":\"shuntCompensatorName2\",\"voltageLevelId\":\"idVL2\",\"busOrBusbarSectionId\":\"idBus1\"}"; + String shuntCompensatorAttributesUpdated = "{\"type\":\"" + ModificationType.SHUNT_COMPENSATOR_CREATION + + "\",\"shuntCompensatorId\":\"shuntCompensatorId2\",\"shuntCompensatorName\":\"shuntCompensatorName2\",\"voltageLevelId\":\"idVL2\",\"busOrBusbarSectionId\":\"idBus1\"}"; mockMvc.perform(put(URI_NETWORK_MODIF_WITH_ID, studyNameUserIdUuid, modificationNode1Uuid, MODIFICATION_UUID) .content(shuntCompensatorAttributesUpdated).contentType(MediaType.APPLICATION_JSON) .header(USER_ID_HEADER, userId)) @@ -948,7 +967,8 @@ void testCreateShuntsCompensator() throws Exception { checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); wireMockStubs.verifyNetworkModificationPut(stubPutId, MODIFICATION_UUID, shuntCompensatorAttributesUpdated); - String createShuntCompensatorAttributes2 = "{\"type\":\"" + ModificationType.SHUNT_COMPENSATOR_CREATION + "\",\"shuntCompensatorId\":\"shuntCompensatorId3\",\"shuntCompensatorName\":\"shuntCompensatorName3\",\"voltageLevelId\":\"idVL1\",\"busOrBusbarSectionId\":\"idBus1\"}"; + String createShuntCompensatorAttributes2 = "{\"type\":\"" + ModificationType.SHUNT_COMPENSATOR_CREATION + + "\",\"shuntCompensatorId\":\"shuntCompensatorId3\",\"shuntCompensatorName\":\"shuntCompensatorName3\",\"voltageLevelId\":\"idVL1\",\"busOrBusbarSectionId\":\"idBus1\"}"; when(rootNetworkNodeInfoRepository.existsByNodeUuidsAndBuildStatus(firstRootNetworkUuid, List.of(modificationNode1Uuid), BuildStatus.BUILDING)).thenReturn(true); // create shunt compensator on building node @@ -996,7 +1016,8 @@ void testCreateLine() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createLineAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createLineAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // create line on second modification node @@ -1037,7 +1058,8 @@ void testCreateLine() throws Exception { + "\"voltageLevelId1\":\"idVL1\"," + "\"busOrBusbarSectionId1\":\"idBus1\"," + "\"voltageLevelId2\":\"idVL2\"," + "\"busOrBusbarSectionId2\":\"idBus2\"}"; // Mark the node 1 status as building - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); // create line on building node @@ -1061,7 +1083,10 @@ void testCreateTwoWindingsTransformer() throws Exception { modificationNode1Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 2", userId); UUID modificationNode2Uuid = modificationNode2.getId(); - String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; // create 2WT on root node (not allowed) mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, rootNodeUuid) @@ -1079,7 +1104,8 @@ void testCreateTwoWindingsTransformer() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // create 2WT on second modification node @@ -1091,11 +1117,15 @@ void testCreateTwoWindingsTransformer() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode2Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode2Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode2Uuid, NETWORK_UUID))); + modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode2Uuid, + NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // update Two Windings Transformer creation - String twoWindingsTransformerAttributesUpdated = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String twoWindingsTransformerAttributesUpdated = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; UUID stubPutId = wireMockStubs.stubNetworkModificationPut(MODIFICATION_UUID); mockMvc.perform(put(URI_NETWORK_MODIF_WITH_ID, studyNameUserIdUuid, modificationNode1Uuid, MODIFICATION_UUID) .content(twoWindingsTransformerAttributesUpdated).contentType(MediaType.APPLICATION_JSON) @@ -1107,9 +1137,13 @@ void testCreateTwoWindingsTransformer() throws Exception { checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); wireMockStubs.verifyNetworkModificationPut(stubPutId, MODIFICATION_UUID, twoWindingsTransformerAttributesUpdated); - String createTwoWindingsTransformerAttributes2 = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId3\",\"equipmentName\":\"2wtName3\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes2 = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId3\",\"equipmentName\":\"2wtName3\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; // Mark the node 1 status as building - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); // create Two Windings Transformer on building node @@ -1201,12 +1235,14 @@ void testUpdateLines() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(bodyJsonCreate1, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(bodyJsonCreate1, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); bodyLineInfos.put("equipmentId", "lineFailedId"); String bodyJsonCreate2 = mapper.writeValueAsString(bodyLineInfos); - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate2, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate2, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithError(modificationBodyJson); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNode1Uuid) .content(bodyJsonCreate2).contentType(MediaType.APPLICATION_JSON) @@ -1235,7 +1271,8 @@ void testUpdateLines() throws Exception { bodyLineInfos.put("equipmentId", "lineFailedId"); String bodyJsonCreate4 = mapper.writeValueAsString(bodyLineInfos); - modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate4, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID)))); + modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate4, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithError(modificationBodyJson); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNode1Uuid) .content(bodyJsonCreate4).contentType(MediaType.APPLICATION_JSON) @@ -1264,7 +1301,8 @@ void testUpdateLines() throws Exception { bodyLineInfos.put("equipmentId", "lineFailedId"); String bodyJsonCreate6 = mapper.writeValueAsString(bodyLineInfos); - modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate6, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID)))); + modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate6, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithError(modificationBodyJson); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNode1Uuid) .content(bodyJsonCreate6).contentType(MediaType.APPLICATION_JSON) @@ -1293,7 +1331,8 @@ void testUpdateLines() throws Exception { bodyLineInfos.put("equipmentId", "lineFailedId"); String bodyJsonCreate8 = mapper.writeValueAsString(bodyLineInfos); - modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate8, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID)))); + modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(bodyJsonCreate8, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithError(modificationBodyJson); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNode1Uuid) .content(bodyJsonCreate8).contentType(MediaType.APPLICATION_JSON) @@ -1336,7 +1375,9 @@ void testCreateLoad() throws Exception { UUID.randomUUID(), VARIANT_ID, "node 3", userId); UUID modificationNode3Uuid = modificationNode3.getId(); - String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; // create load on root node (not allowed) mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, rootNodeUuid) @@ -1354,7 +1395,8 @@ void testCreateLoad() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createLoadAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createLoadAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // create load on second modification node @@ -1370,7 +1412,9 @@ void testCreateLoad() throws Exception { wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // update load creation - String loadAttributesUpdated = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId2\",\"loadName\":\"loadName2\",\"loadType\":\"UNDEFINED\",\"activePower\":\"50.0\",\"reactivePower\":\"25.0\",\"voltageLevelId\":\"idVL2\",\"busId\":\"idBus2\"}"; + String loadAttributesUpdated = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId2\",\"loadName\":\"loadName2\",\"loadType\":\"UNDEFINED\",\"activePower\":\"50.0\",\"reactivePower\":\"25.0\",\"voltageLevelId\":\"idVL2\"," + + "\"busId\":\"idBus2\"}"; UUID stubPostId = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, loadAttributesUpdated); mockMvc.perform(put(URI_NETWORK_MODIF_WITH_ID, studyNameUserIdUuid, modificationNode1Uuid, MODIFICATION_UUID) .content(loadAttributesUpdated).contentType(MediaType.APPLICATION_JSON) @@ -1382,9 +1426,12 @@ void testCreateLoad() throws Exception { checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); wireMockStubs.verifyNetworkModificationPut(stubPostId, MODIFICATION_UUID, loadAttributesUpdated); - String createLoadAttributes2 = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId3\",\"loadName\":\"loadName3\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes2 = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId3\",\"loadName\":\"loadName3\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; // Mark the node 3 status as built - RootNetworkNodeInfoEntity rootNetworkNodeInfo3Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo3Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo3Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo3Entity); @@ -1409,7 +1456,8 @@ void testModifyLoad() throws Exception { modificationNodeUuid, UUID.randomUUID(), VARIANT_ID_2, "node 2", userId); UUID modificationNodeUuid2 = modificationNode2.getId(); - String loadModificationAttributes = "{\"type\":\"" + ModificationType.LOAD_MODIFICATION + "\",\"equipmentId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"AUXILIARY\",\"activePower\":\"100.0\"}"; + String loadModificationAttributes = "{\"type\":\"" + ModificationType.LOAD_MODIFICATION + + "\",\"equipmentId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"AUXILIARY\",\"activePower\":\"100.0\"}"; // modify load on root node (not allowed) mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, rootNodeUuid) @@ -1427,7 +1475,8 @@ void testModifyLoad() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(loadModificationAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(loadModificationAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // modify load on second modification node @@ -1485,7 +1534,8 @@ void testModifyEquipment() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(equipmentModificationAttribute, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(equipmentModificationAttribute, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // modify generator on second modification node @@ -1497,7 +1547,8 @@ void testModifyEquipment() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid2); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid2); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - modificationBody = Pair.of(equipmentModificationAttribute, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid2, NETWORK_UUID))); + modificationBody = Pair.of(equipmentModificationAttribute, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid2, + NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // update generator modification @@ -1546,7 +1597,8 @@ void testCreateSubstation() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createSubstationAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createSubstationAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // create substation on second modification node @@ -1576,7 +1628,8 @@ void testCreateSubstation() throws Exception { String createSubstationAttributes2 = "{\"type\":\"" + ModificationType.SUBSTATION_CREATION + "\",\"substationId\":\"substationId2\",\"substationName\":\"substationName2\",\"country\":\"AD\"}"; // Mark the node 1 status as built - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); // create substation on building node @@ -1618,7 +1671,8 @@ void testCreateVoltageLevel() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createVoltageLevelAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createVoltageLevelAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // create voltage level on second modification node @@ -1630,7 +1684,8 @@ void testCreateVoltageLevel() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode2Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode2Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - modificationBody = Pair.of(createVoltageLevelAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode2Uuid, NETWORK_UUID))); + modificationBody = Pair.of(createVoltageLevelAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode2Uuid, + NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // update voltage level creation @@ -1650,7 +1705,8 @@ void testCreateVoltageLevel() throws Exception { String createVoltageLevelAttributes2 = "{\"type\":\"" + ModificationType.VOLTAGE_LEVEL_CREATION + "\",\"voltageLevelId\":\"voltageLevelId3\",\"voltageLevelName\":\"voltageLevelName3\"" + ",\"nominalVoltage\":\"379.1\", \"substationId\":\"s2\"}"; // Mark the node 1 status as building - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILDING)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); // create voltage level on building node @@ -1692,7 +1748,8 @@ void testLineSplitWithVoltageLevel() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(lineSplitWoVLasJSON, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(lineSplitWoVLasJSON, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); UUID stubPutId = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, lineSplitWoVLasJSON); @@ -1707,7 +1764,8 @@ void testLineSplitWithVoltageLevel() throws Exception { wireMockStubs.verifyNetworkModificationPut(stubPutId, MODIFICATION_UUID, lineSplitWoVLasJSON); String badBody = "{\"type\":\"" + ModificationType.LINE_SPLIT_WITH_VOLTAGE_LEVEL + "\",\"bogus\":\"bogus\"}"; - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithBodyAndError(modificationBodyJson); stubPutId = wireMockStubs.stubNetworkModificationPutWithBodyAndError(MODIFICATION_UUID, badBody); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) @@ -1740,7 +1798,8 @@ void testLineAttachToVoltageLevel() throws Exception { String createVoltageLevelAttributes = "{\"voltageLevelId\":\"vl1\",\"voltageLevelName\":\"voltageLevelName1\"" + ",\"nominalVoltage\":\"379.1\",\"substationId\":\"s1\"}"; String createLineAttributes = "{\"seriesResistance\":\"25\",\"seriesReactance\":\"12\"}"; - String createLineAttachToVoltageLevelAttributes = "{\"type\":\"" + ModificationType.LINE_ATTACH_TO_VOLTAGE_LEVEL + "\",\"lineToAttachToId\":\"line3\",\"percent\":\"10\",\"mayNewVoltageLevelInfos\":" + + String createLineAttachToVoltageLevelAttributes = "{\"type\":\"" + ModificationType.LINE_ATTACH_TO_VOLTAGE_LEVEL + + "\",\"lineToAttachToId\":\"line3\",\"percent\":\"10\",\"mayNewVoltageLevelInfos\":" + createVoltageLevelAttributes + ",\"attachmentLine\":" + createLineAttributes + "}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); @@ -1752,7 +1811,8 @@ void testLineAttachToVoltageLevel() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createLineAttachToVoltageLevelAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createLineAttachToVoltageLevelAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); UUID stubPutId = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, createLineAttachToVoltageLevelAttributes); @@ -1777,7 +1837,10 @@ void testLinesAttachToSplitLines() throws Exception { NetworkModificationNode modificationNode = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, VARIANT_ID, "node", "userId"); UUID modificationNodeUuid = modificationNode.getId(); - String createLinesAttachToSplitLinesAttributes = "{\"type\":\"" + ModificationType.LINES_ATTACH_TO_SPLIT_LINES + "\",\"lineToAttachTo1Id\":\"line1\",\"lineToAttachTo2Id\":\"line2\",\"attachedLineId\":\"line3\",\"voltageLevelId\":\"vl1\",\"bbsBusId\":\"v1bbs\",\"replacingLine1Id\":\"replacingLine1Id\",\"replacingLine1Name\":\"replacingLine1Name\",\"replacingLine2Id\":\"replacingLine2Id\",\"replacingLine2Name\":\"replacingLine2Name\"}"; + String createLinesAttachToSplitLinesAttributes = "{\"type\":\"" + ModificationType.LINES_ATTACH_TO_SPLIT_LINES + + "\",\"lineToAttachTo1Id\":\"line1\",\"lineToAttachTo2Id\":\"line2\",\"attachedLineId\":\"line3\",\"voltageLevelId\":\"vl1\",\"bbsBusId\":\"v1bbs\"," + + "\"replacingLine1Id\":\"replacingLine1Id\",\"replacingLine1Name\":\"replacingLine1Name\",\"replacingLine2Id\":\"replacingLine2Id\"," + + "\"replacingLine2Name\":\"replacingLine2Name\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) .content(createLinesAttachToSplitLinesAttributes).contentType(MediaType.APPLICATION_JSON) @@ -1787,7 +1850,8 @@ void testLinesAttachToSplitLines() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(createLinesAttachToSplitLinesAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createLinesAttachToSplitLinesAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); UUID stubPutId = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, createLinesAttachToSplitLinesAttributes); @@ -1802,7 +1866,8 @@ void testLinesAttachToSplitLines() throws Exception { wireMockStubs.verifyNetworkModificationPut(stubPutId, MODIFICATION_UUID, createLinesAttachToSplitLinesAttributes); String badBody = "{\"type\":\"" + ModificationType.LINES_ATTACH_TO_SPLIT_LINES + "\",\"bogus\":\"bogus\"}"; - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithBodyAndError(modificationBodyJson); stubPutId = wireMockStubs.stubNetworkModificationPutWithBodyAndError(MODIFICATION_UUID, badBody); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) @@ -1845,7 +1910,8 @@ void testScaling(ModificationType scalingType) throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(requestBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(requestBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); UUID stubPutId = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, requestBody); @@ -1860,7 +1926,8 @@ void testScaling(ModificationType scalingType) throws Exception { wireMockStubs.verifyNetworkModificationPut(stubPutId, MODIFICATION_UUID, requestBody); // test with errors - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(requestBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(requestBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithBodyAndError(modificationBodyJson); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) .content(requestBody).contentType(MediaType.APPLICATION_JSON) @@ -1891,7 +1958,8 @@ void testDeleteVoltageLevelOnline() throws Exception { NetworkModificationNode modificationNode = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, VARIANT_ID, "node", "userId"); UUID modificationNodeUuid = modificationNode.getId(); - String createDeleteVoltageLevelOnlineAttributes = "{\"type\":\"" + ModificationType.DELETE_VOLTAGE_LEVEL_ON_LINE + "\",\"lineToAttachTo1Id\":\"line1\",\"lineToAttachTo2Id\":\"line2\",\"replacingLine1Id\":\"replacingLine1Id\",\"replacingLine1Name\":\"replacingLine1Name\"}"; + String createDeleteVoltageLevelOnlineAttributes = "{\"type\":\"" + ModificationType.DELETE_VOLTAGE_LEVEL_ON_LINE + + "\",\"lineToAttachTo1Id\":\"line1\",\"lineToAttachTo2Id\":\"line2\",\"replacingLine1Id\":\"replacingLine1Id\",\"replacingLine1Name\":\"replacingLine1Name\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) .content(createDeleteVoltageLevelOnlineAttributes).contentType(MediaType.APPLICATION_JSON) @@ -1900,7 +1968,8 @@ void testDeleteVoltageLevelOnline() throws Exception { checkUpdateStatusMessagesReceived(studyNameUserIdUuid, modificationNodeUuid, output); checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); - Pair> modificationBody = Pair.of(createDeleteVoltageLevelOnlineAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createDeleteVoltageLevelOnlineAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); UUID stubIdPut = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, createDeleteVoltageLevelOnlineAttributes); @@ -1914,7 +1983,8 @@ void testDeleteVoltageLevelOnline() throws Exception { wireMockStubs.verifyNetworkModificationPut(stubIdPut, MODIFICATION_UUID, createDeleteVoltageLevelOnlineAttributes); String badBody = "{\"type\":\"" + ModificationType.DELETE_VOLTAGE_LEVEL_ON_LINE + "\",\"bogus\":\"bogus\"}"; - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithBodyAndError(modificationBodyJson); UUID stubIdPutErr = wireMockStubs.stubNetworkModificationPutWithBodyAndError(MODIFICATION_UUID, badBody); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid).header(USER_ID_HEADER, userId) @@ -1944,7 +2014,9 @@ void testDeleteAttachingline() throws Exception { NetworkModificationNode modificationNode = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, VARIANT_ID, "node", "userId"); UUID modificationNodeUuid = modificationNode.getId(); - String createDeleteAttachingLineAttributes = "{\"type\":\"" + ModificationType.DELETE_ATTACHING_LINE + "\",\"lineToAttachTo1Id\":\"line1\",\"lineToAttachTo2Id\":\"line2\",\"attachedLineId\":\"line3\",\"replacingLine1Id\":\"replacingLine1Id\",\"replacingLine1Name\":\"replacingLine1Name\"}"; + String createDeleteAttachingLineAttributes = "{\"type\":\"" + ModificationType.DELETE_ATTACHING_LINE + + "\",\"lineToAttachTo1Id\":\"line1\",\"lineToAttachTo2Id\":\"line2\",\"attachedLineId\":\"line3\",\"replacingLine1Id\":\"replacingLine1Id\"," + + "\"replacingLine1Name\":\"replacingLine1Name\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) .content(createDeleteAttachingLineAttributes).contentType(MediaType.APPLICATION_JSON) @@ -1953,7 +2025,8 @@ void testDeleteAttachingline() throws Exception { checkUpdateStatusMessagesReceived(studyNameUserIdUuid, modificationNodeUuid, output); checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); - Pair> modificationBody = Pair.of(createDeleteAttachingLineAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(createDeleteAttachingLineAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); UUID stubIdPut = wireMockStubs.stubNetworkModificationPutWithBody(MODIFICATION_UUID, createDeleteAttachingLineAttributes); @@ -1967,7 +2040,8 @@ void testDeleteAttachingline() throws Exception { wireMockStubs.verifyNetworkModificationPut(stubIdPut, MODIFICATION_UUID, createDeleteAttachingLineAttributes); String badBody = "{\"type\":\"" + ModificationType.DELETE_ATTACHING_LINE + "\",\"bogus\":\"bogus\"}"; - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(badBody, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNodeUuid, NETWORK_UUID)))); wireMockStubs.stubNetworkModificationPostWithBodyAndError(modificationBodyJson); UUID stubIdPutErr = wireMockStubs.stubNetworkModificationPutWithBodyAndError(MODIFICATION_UUID, badBody); mockMvc.perform(post(URI_NETWORK_MODIF, studyNameUserIdUuid, modificationNodeUuid) @@ -2024,7 +2098,8 @@ void testReorderModification() throws Exception { checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair, List> expectedBody = Pair.of(Collections.singletonList(modification1), List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair, List> expectedBody = Pair.of(Collections.singletonList(modification1), + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); String expectedBodyStr = mapper.writeValueAsString(expectedBody); String url = "/v1/groups/" + modificationNode.getModificationGroupUuid(); WireMockUtils.verifyPutRequest(wireMockServer, groupStubId, url, true, Map.of( @@ -2216,7 +2291,8 @@ void testDuplicateModification() throws Exception { checkEquipmentUpdatingFinishedMessagesReceived(studyUuid, nodeUuid1); checkElementUpdatedMessageSent(studyUuid, userId); - Pair, List> modificationBody = Pair.of(modificationUuids, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair, List> modificationBody = Pair.of(modificationUuids, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); String expectedBody = mapper.writeValueAsString(modificationBody); String url = "/v1/groups/" + node1.getModificationGroupUuid(); WireMockUtilsCriteria.verifyPutRequest(wireMockServer, url, Map.of("action", WireMock.equalTo("COPY")), expectedBody); @@ -2227,7 +2303,8 @@ void testDuplicateModification() throws Exception { verify(rootNetworkNodeInfoService, times(1)).copyModificationsToExcludeFromTags(any(), any(), any()); // now we do the same but on a built node - RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid1, studyTestUtils.getOneRootNetworkUuid(studyUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(nodeUuid1, + studyTestUtils.getOneRootNetworkUuid(studyUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfo1Entity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfo1Entity); @@ -2313,8 +2390,10 @@ void testDuplicateModificationReplicateChildExcludedUuids() throws Exception { checkEquipmentUpdatingFinishedMessagesReceived(studyUuid, nodeUuid1); checkElementUpdatedMessageSent(studyUuid, userId); - Pair, List> modificationBody = Pair.of(modificationUuids, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(studyTestUtils.getOneRootNetworkUuid(studyUuid), node1.getId(), NETWORK_UUID))); - WireMockUtilsCriteria.verifyPutRequest(wireMockServer, "/v1/groups/" + node1.getModificationGroupUuid(), Map.of("action", WireMock.equalTo("COPY")), mapper.writeValueAsString(modificationBody)); + Pair, List> modificationBody = Pair.of(modificationUuids, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(studyTestUtils.getOneRootNetworkUuid(studyUuid), node1.getId(), NETWORK_UUID))); + WireMockUtilsCriteria.verifyPutRequest(wireMockServer, "/v1/groups/" + node1.getModificationGroupUuid(), Map.of("action", WireMock.equalTo("COPY")), + mapper.writeValueAsString(modificationBody)); WireMockUtilsCriteria.verifyGetRequest(wireMockServer, "/v1/network-composite-modifications/children-uuids", Map.of("uuids", WireMock.matching(".*")), 2); // The mapping must contain both the root-level pair AND the child pair @@ -2365,7 +2444,8 @@ void testDuplicateModificationBetweenStudies() throws Exception { checkEquipmentUpdatingFinishedMessagesReceived(studyEntity1.getId(), node1.getId()); checkElementUpdatedMessageSent(studyEntity1.getId(), userId); - Pair, List> modificationBody = Pair.of(modifications, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(studyTestUtils.getOneRootNetworkUuid(studyEntity1.getId()), node1.getId(), NETWORK_UUID))); + Pair, List> modificationBody = Pair.of(modifications, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(studyTestUtils.getOneRootNetworkUuid(studyEntity1.getId()), node1.getId(), NETWORK_UUID))); String expectedBody = mapper.writeValueAsString(modificationBody); String url = "/v1/groups/" + node1.getModificationGroupUuid(); WireMockUtilsCriteria.verifyPutRequest(wireMockServer, url, Map.of("action", WireMock.equalTo("COPY")), expectedBody); @@ -2454,7 +2534,8 @@ void testCutAndPasteModification() throws Exception { checkEquipmentUpdatingMessagesReceived(studyUuid, nodeUuid1); checkEquipmentUpdatingFinishedMessagesReceived(studyUuid, nodeUuid1); - Pair, List> expectedBody = Pair.of(List.of(modification1, modification2), List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair, List> expectedBody = Pair.of(List.of(modification1, modification2), + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); String expectedBodyStr = mapper.writeValueAsString(expectedBody); String url = "/v1/groups/" + node1.getModificationGroupUuid(); WireMockUtils.verifyPutRequest(wireMockServer, groupStubId, url, true, Map.of( @@ -2568,7 +2649,8 @@ void testDeleteEquipment() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // delete equipment on second modification node @@ -2606,14 +2688,18 @@ void testNodesInvalidation() throws Exception { UUID firstRootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(studyEntity.getId()); UUID studyNameUserIdUuid = studyEntity.getId(); UUID rootNodeUuid = getRootNode(studyNameUserIdUuid).getId(); - NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 1", NetworkModificationNodeType.CONSTRUCTION, BuildStatus.BUILT, userId); + NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 1", NetworkModificationNodeType.CONSTRUCTION, + BuildStatus.BUILT, userId); UUID modificationNode1Uuid = modificationNode1.getId(); - NetworkModificationNode modificationNode2 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode1Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 2", NetworkModificationNodeType.SECURITY, BuildStatus.BUILT, userId); + NetworkModificationNode modificationNode2 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode1Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 2", + NetworkModificationNodeType.SECURITY, BuildStatus.BUILT, userId); UUID modificationNode2Uuid = modificationNode2.getId(); - NetworkModificationNode modificationNode3 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode2Uuid, UUID.randomUUID(), VARIANT_ID_3, "node 3", NetworkModificationNodeType.SECURITY, BuildStatus.BUILT, userId); + NetworkModificationNode modificationNode3 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode2Uuid, UUID.randomUUID(), VARIANT_ID_3, "node 3", + NetworkModificationNodeType.SECURITY, BuildStatus.BUILT, userId); UUID modificationNode3Uuid = modificationNode3.getId(); - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity.setSecurityAnalysisResultUuid(UUID.fromString(SECURITY_ANALYSIS_RESULT_UUID)); rootNetworkNodeInfoEntity.setSensitivityAnalysisResultUuid(UUID.fromString(SENSITIVITY_ANALYSIS_RESULT_UUID)); rootNetworkNodeInfoEntity.setShortCircuitAnalysisResultUuid(UUID.fromString(SHORTCIRCUIT_ANALYSIS_RESULT_UUID)); @@ -2661,10 +2747,12 @@ void testNodesInvalidation() throws Exception { }); // Mark nodes 2 and 3 status as built - rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode2Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); - rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode3Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); @@ -2684,7 +2772,8 @@ void testNodesInvalidation() throws Exception { checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode2Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); assertEquals(BuildStatus.NOT_BUILT, networkModificationTreeService.getNodeBuildStatus(modificationNode3Uuid, firstRootNetworkUuid).getGlobalBuildStatus()); - Pair> modificationBody = Pair.of(jsonCreateLoadInfos, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode2Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(jsonCreateLoadInfos, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode2Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); } @@ -2698,10 +2787,12 @@ void testRemoveLoadFlowComputationReport() throws Exception { UUID studyNameUserIdUuid = studyEntity.getId(); UUID firstRootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid); UUID rootNodeUuid = getRootNode(studyNameUserIdUuid).getId(); - NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 1", NetworkModificationNodeType.SECURITY, BuildStatus.BUILT, userId); + NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 1", NetworkModificationNodeType.SECURITY, + BuildStatus.BUILT, userId); UUID modificationNode1Uuid = modificationNode1.getId(); // In this node, let's say we have all computation results - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode1Uuid, + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity.setLoadFlowResultUuid(UUID.fromString(LOADFLOW_RESULT_UUID)); rootNetworkNodeInfoEntity.setSecurityAnalysisResultUuid(UUID.fromString(SECURITY_ANALYSIS_RESULT_UUID)); rootNetworkNodeInfoEntity.setDynamicSimulationResultUuid(UUID.fromString(DYNAMIC_SIMULATION_RESULT_UUID)); @@ -2713,7 +2804,7 @@ void testRemoveLoadFlowComputationReport() throws Exception { rootNetworkNodeInfoEntity.setVoltageInitResultUuid(UUID.fromString(VOLTAGE_INIT_RESULT_UUID)); rootNetworkNodeInfoEntity.setStateEstimationResultUuid(UUID.fromString(STATE_ESTIMATION_RESULT_UUID)); rootNetworkNodeInfoEntity.setPccMinResultUuid(UUID.fromString(PCC_MIN_RESULT_UUID)); - Map computationReportsMap = Arrays.stream(ComputationType.values()) + Map computationReportsMap = Arrays.stream(ComputationType.values()) .collect(Collectors.toMap(ComputationType::name, computationType -> UUID.randomUUID())); rootNetworkNodeInfoEntity.setComputationReports(computationReportsMap); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); @@ -2740,7 +2831,8 @@ void testRemoveLoadFlowComputationReport() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNode1Uuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNode1Uuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(bodyJson, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, + modificationNode1Uuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); wireMockStubs.verifyNetworkModificationDeleteIndex(deleteModificationIndexStub); @@ -2791,11 +2883,13 @@ void testUpdateOfBuildStatus() throws Exception { checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); assertEquals(BuildStatus.NOT_BUILT, networkModificationTreeService.getNodeBuildStatus(modificationNodeUuid, firstRootNetworkUuid).getGlobalBuildStatus()); - Pair> modificationBody = Pair.of(jsonCreateLoadInfos, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); + Pair> modificationBody = Pair.of(jsonCreateLoadInfos, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // Mark the node status as built - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(modificationNode.getId(), + studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid)).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity.setNodeBuildStatus(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT)); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); @@ -3001,12 +3095,16 @@ private ComputationResultStubIds stubAllComputationResults() throws JsonProcessi }); getStatusStubIds.put(LOADFLOW_RESULT_UUID, computationServerStubs.stubGetResultStatus(LOADFLOW_RESULT_UUID, mapper.writeValueAsString(LoadFlowStatus.CONVERGED))); getStatusStubIds.put(SECURITY_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(SECURITY_ANALYSIS_RESULT_UUID, SECURITY_ANALYSIS_STATUS_JSON)); - getStatusStubIds.put(DYNAMIC_SIMULATION_RESULT_UUID, computationServerStubs.stubGetResultStatus(DYNAMIC_SIMULATION_RESULT_UUID, objectMapper.writeValueAsString(DynamicSimulationStatus.CONVERGED))); - getStatusStubIds.put(DYNAMIC_SECURITY_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(DYNAMIC_SECURITY_ANALYSIS_RESULT_UUID, objectMapper.writeValueAsString(DynamicSecurityAnalysisStatus.SUCCEED))); - getStatusStubIds.put(DYNAMIC_MARGIN_CALCULATION_RESULT_UUID, computationServerStubs.stubGetResultStatus(DYNAMIC_MARGIN_CALCULATION_RESULT_UUID, objectMapper.writeValueAsString(DynamicMarginCalculationStatus.SUCCEED))); + getStatusStubIds.put(DYNAMIC_SIMULATION_RESULT_UUID, computationServerStubs.stubGetResultStatus(DYNAMIC_SIMULATION_RESULT_UUID, + objectMapper.writeValueAsString(DynamicSimulationStatus.CONVERGED))); + getStatusStubIds.put(DYNAMIC_SECURITY_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(DYNAMIC_SECURITY_ANALYSIS_RESULT_UUID, + objectMapper.writeValueAsString(DynamicSecurityAnalysisStatus.SUCCEED))); + getStatusStubIds.put(DYNAMIC_MARGIN_CALCULATION_RESULT_UUID, computationServerStubs.stubGetResultStatus(DYNAMIC_MARGIN_CALCULATION_RESULT_UUID, + objectMapper.writeValueAsString(DynamicMarginCalculationStatus.SUCCEED))); getStatusStubIds.put(SENSITIVITY_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(SENSITIVITY_ANALYSIS_RESULT_UUID, SENSITIVITY_ANALYSIS_STATUS_JSON)); getStatusStubIds.put(SHORTCIRCUIT_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(SHORTCIRCUIT_ANALYSIS_RESULT_UUID, SHORTCIRCUIT_ANALYSIS_STATUS_JSON)); - getStatusStubIds.put(ONE_BUS_SHORTCIRCUIT_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(ONE_BUS_SHORTCIRCUIT_ANALYSIS_RESULT_UUID, ONE_BUS_SHORTCIRCUIT_ANALYSIS_STATUS_JSON)); + getStatusStubIds.put(ONE_BUS_SHORTCIRCUIT_ANALYSIS_RESULT_UUID, computationServerStubs.stubGetResultStatus(ONE_BUS_SHORTCIRCUIT_ANALYSIS_RESULT_UUID, + ONE_BUS_SHORTCIRCUIT_ANALYSIS_STATUS_JSON)); getStatusStubIds.put(VOLTAGE_INIT_RESULT_UUID, computationServerStubs.stubGetResultStatus(VOLTAGE_INIT_RESULT_UUID, VOLTAGE_INIT_STATUS_JSON)); getStatusStubIds.put(STATE_ESTIMATION_RESULT_UUID, computationServerStubs.stubGetResultStatus(STATE_ESTIMATION_RESULT_UUID, STATE_ESTIMATION_STATUS_JSON)); getStatusStubIds.put(PCC_MIN_RESULT_UUID, computationServerStubs.stubGetResultStatus(PCC_MIN_RESULT_UUID, PCC_MIN_STATUS_JSON)); @@ -3188,7 +3286,8 @@ void testCreateModificationWithErrors() throws Exception { checkEquipmentCreatingMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkEquipmentUpdatingFinishedMessagesReceived(studyNameUserIdUuid, modificationNodeUuid); checkElementUpdatedMessageSent(studyNameUserIdUuid, userId); - String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(jsonCreateLoadInfos, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); + String modificationBodyJson = getModificationContextJsonString(mapper, Pair.of(jsonCreateLoadInfos, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, modificationNodeUuid, NETWORK_UUID)))); wireMockStubs.verifyNetworkModificationPostWithVariant(modificationBodyJson); // String message error diff --git a/src/test/java/org/gridsuite/study/server/NetworkModificationTreeTest.java b/src/test/java/org/gridsuite/study/server/NetworkModificationTreeTest.java index 511751764d..2baf8ed8c7 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkModificationTreeTest.java +++ b/src/test/java/org/gridsuite/study/server/NetworkModificationTreeTest.java @@ -532,7 +532,8 @@ void testNodeCreationRules() throws Exception { UUID firstRootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(root.getStudyId()); // Build a construction node - final NetworkModificationNode constructionNode = NetworkModificationTreeTest.buildNetworkModificationConstructionNode("construction_node_1", "this is a construction node", UUID.randomUUID(), VARIANT_ID, + final NetworkModificationNode constructionNode = NetworkModificationTreeTest.buildNetworkModificationConstructionNode("construction_node_1", "this is a construction node", UUID.randomUUID(), + VARIANT_ID, randomUuidsResultStack(), BuildStatus.NOT_BUILT); // === CONSTRUCTION NODE RULES === @@ -792,7 +793,8 @@ void testNodeModificationInfos() throws Exception { assertEquals(2, children.size()); NetworkModificationNode n1 = (NetworkModificationNode) (children.stream().filter(c -> c.getName().equals("n1")).findFirst().orElseThrow()); NetworkModificationNodeInfoEntity n1Infos = networkModificationTreeService.getNetworkModificationNodeInfoEntity(n1.getId()); - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(n1.getId(), firstRootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(n1.getId(), + firstRootNetworkUuid).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); assertEquals("n1", n1.getName()); assertEquals("zzz", n1.getDescription()); @@ -1569,7 +1571,8 @@ void testGetNetworkModificationsToRestoreByNode() throws Exception { node = NetworkModificationTreeTest.buildNetworkModificationConstructionNode("modification node 3", "", UUID.fromString(MODIFICATION_GROUP_UUID_STRING), VARIANT_ID, nullResultStack(), BuildStatus.BUILT); createNode(root.getStudyId(), root, node, userId); - mockMvc.perform(put("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications?uuids={modificationID1}&stashed=false&rootNetworkUuid={rootNetworkUuid}", root.getStudyId(), node.getId(), MODIFICATION1_UUID_STRING, firstRootNetworkUuid) + mockMvc.perform(put("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications?uuids={modificationID1}&stashed=false&rootNetworkUuid={rootNetworkUuid}", root.getStudyId(), node.getId(), + MODIFICATION1_UUID_STRING, firstRootNetworkUuid) .header(USER_ID_HEADER, userId)) .andExpect(status().isOk()); @@ -1595,7 +1598,8 @@ void testGetNetworkModificationsToStashByNode() throws Exception { node = NetworkModificationTreeTest.buildNetworkModificationConstructionNode("modification node 3", "", UUID.fromString(MODIFICATION_GROUP_UUID_STRING), VARIANT_ID, nullResultStack(), BuildStatus.BUILT); createNode(root.getStudyId(), root, node, userId); - mockMvc.perform(put("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications?uuids={modificationID1}&stashed=true&rootNetworkUuid={rootNetworkUuid}", root.getStudyId(), node.getId(), MODIFICATION1_UUID_STRING, firstRootNetworkUuid) + mockMvc.perform(put("/v1/studies/{studyUuid}/nodes/{nodeUuid}/network-modifications?uuids={modificationID1}&stashed=true&rootNetworkUuid={rootNetworkUuid}", root.getStudyId(), node.getId(), + MODIFICATION1_UUID_STRING, firstRootNetworkUuid) .header(USER_ID_HEADER, userId)) .andExpect(status().isOk()); @@ -1646,24 +1650,28 @@ void testUpdateApplicationStatus() throws Exception { UUID rootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(studyUuid); // take the closest built parent severity - networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.ALL_OK, NetworkModificationResult.ApplicationStatus.WITH_WARNINGS)); + networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.ALL_OK, + NetworkModificationResult.ApplicationStatus.WITH_WARNINGS)); assertEquals(BuildStatus.BUILT_WITH_WARNING, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getGlobalBuildStatus()); assertEquals(BuildStatus.BUILT, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getLocalBuildStatus()); checkUpdateNodesMessageReceived(studyUuid, List.of(leafNodeId)); - networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.WITH_WARNINGS, NetworkModificationResult.ApplicationStatus.WITH_WARNINGS)); + networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.WITH_WARNINGS, + NetworkModificationResult.ApplicationStatus.WITH_WARNINGS)); assertEquals(BuildStatus.BUILT_WITH_WARNING, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getGlobalBuildStatus()); assertEquals(BuildStatus.BUILT_WITH_WARNING, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getLocalBuildStatus()); // local build status has been updated checkUpdateNodesMessageReceived(studyUuid, List.of(leafNodeId)); - networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.WITH_ERRORS, NetworkModificationResult.ApplicationStatus.WITH_ERRORS)); + networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.WITH_ERRORS, + NetworkModificationResult.ApplicationStatus.WITH_ERRORS)); assertEquals(BuildStatus.BUILT_WITH_ERROR, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getGlobalBuildStatus()); assertEquals(BuildStatus.BUILT_WITH_ERROR, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getLocalBuildStatus()); checkUpdateNodesMessageReceived(studyUuid, List.of(leafNodeId)); // keep the previous status (BUILT_WITH_ERROR) because it has higher severity - networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.ALL_OK, NetworkModificationResult.ApplicationStatus.WITH_ERRORS)); + networkModificationTreeService.updateNodeBuildStatus(leafNodeId, rootNetworkUuid, NodeBuildStatus.from(NetworkModificationResult.ApplicationStatus.ALL_OK, + NetworkModificationResult.ApplicationStatus.WITH_ERRORS)); assertEquals(BuildStatus.BUILT_WITH_ERROR, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getGlobalBuildStatus()); assertEquals(BuildStatus.BUILT_WITH_ERROR, networkModificationTreeService.getNodeBuildStatus(leafNodeId, rootNetworkUuid).getLocalBuildStatus()); } diff --git a/src/test/java/org/gridsuite/study/server/NetworkModificationUnitTest.java b/src/test/java/org/gridsuite/study/server/NetworkModificationUnitTest.java index 9a70890ecf..ef50a603c0 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkModificationUnitTest.java +++ b/src/test/java/org/gridsuite/study/server/NetworkModificationUnitTest.java @@ -63,7 +63,7 @@ import static org.mockito.Mockito.*; /** - * @author Kevin Le Saulnier + * @author Kevin Le Saulnier */ @SpringBootTest @DisableElasticsearch @@ -201,7 +201,8 @@ void unbuildNode() { } private void assertNodeBuildStatus(UUID nodeUuid, BuildStatus buildStatus) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findAllByNodeInfoId(nodeUuid).stream().findFirst().orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = rootNetworkNodeInfoRepository.findAllByNodeInfoId(nodeUuid).stream().findFirst().orElseThrow(() -> new StudyException(NOT_FOUND, + "Root network not found")); assertEquals(buildStatus, rootNetworkNodeInfoEntity.getNodeBuildStatus().getLocalBuildStatus()); } @@ -334,9 +335,11 @@ private StudyEntity insertStudy() { .build(); } - private NodeEntity insertNode(StudyEntity study, UUID nodeId, NetworkModificationNodeType nodeType, String variantId, UUID reportUuid, NodeEntity parentNode, List rootNetworkEntities, BuildStatus buildStatus) { + private NodeEntity insertNode(StudyEntity study, UUID nodeId, NetworkModificationNodeType nodeType, String variantId, UUID reportUuid, NodeEntity parentNode, + List rootNetworkEntities, BuildStatus buildStatus) { NodeEntity nodeEntity = nodeRepository.save(new NodeEntity(nodeId, parentNode, NodeType.NETWORK_MODIFICATION, study, false, null, new ArrayList<>())); - NetworkModificationNodeInfoEntity modificationNodeInfoEntity = networkModificationNodeInfoRepository.save(NetworkModificationNodeInfoEntity.builder().idNode(nodeEntity.getIdNode()).nodeType(nodeType).modificationGroupUuid(UUID.randomUUID()).build()); + NetworkModificationNodeInfoEntity modificationNodeInfoEntity = networkModificationNodeInfoRepository.save( + NetworkModificationNodeInfoEntity.builder().idNode(nodeEntity.getIdNode()).nodeType(nodeType).modificationGroupUuid(UUID.randomUUID()).build()); rootNetworkEntities.forEach(rn -> { createNodeLinks(rn, modificationNodeInfoEntity, variantId, reportUuid, buildStatus); }); @@ -346,7 +349,8 @@ private NodeEntity insertNode(StudyEntity study, UUID nodeId, NetworkModificatio // We can't use the method RootNetworkNodeInfoService::createNodeLinks because there is no transaction in a session private void createNodeLinks(RootNetworkEntity rootNetworkEntity, NetworkModificationNodeInfoEntity modificationNodeInfoEntity, String variantId, UUID reportUuid, BuildStatus buildStatus) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = RootNetworkNodeInfoEntity.builder().variantId(variantId).modificationReports(Map.of(modificationNodeInfoEntity.getId(), reportUuid)).nodeBuildStatus(NodeBuildStatus.from(buildStatus).toEntity()).build(); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = RootNetworkNodeInfoEntity.builder().variantId(variantId).modificationReports(Map.of(modificationNodeInfoEntity.getId(), + reportUuid)).nodeBuildStatus(NodeBuildStatus.from(buildStatus).toEntity()).build(); modificationNodeInfoEntity.addRootNetworkNodeInfo(rootNetworkNodeInfoEntity); rootNetworkEntity.addRootNetworkNodeInfo(rootNetworkNodeInfoEntity); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); @@ -447,6 +451,7 @@ private void checkElementUpdatedMessageSent(UUID elementUuid, String userId) { } @AfterEach + @SuppressWarnings("checkstyle:IllegalCatch") void tearDown() { List destinations = List.of(STUDY_UPDATE_DESTINATION); try { diff --git a/src/test/java/org/gridsuite/study/server/NetworkVariantsListenerTests.java b/src/test/java/org/gridsuite/study/server/NetworkVariantsListenerTests.java index 84c3d20cb7..a504c1b565 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkVariantsListenerTests.java +++ b/src/test/java/org/gridsuite/study/server/NetworkVariantsListenerTests.java @@ -46,11 +46,19 @@ void tearDown() { @Test void testVariantNotifications() { // In initial variant - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("load0").name("load0").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("gen0").name("gen0").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); + equipmentInfosService.addEquipmentInfos( + EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("load0").name("load0").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LOAD").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); + equipmentInfosService.addEquipmentInfos( + EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("gen0").name("gen0").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("GENERATOR").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("load1").name("load1").variantId(VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); - equipmentInfosService.addEquipmentInfos(EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("gen1").name("gen1").variantId(VARIANT_ID).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); + equipmentInfosService.addEquipmentInfos( + EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("load1").name("load1").variantId(VARIANT_ID).type("LOAD").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); + equipmentInfosService.addEquipmentInfos( + EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("gen1").name("gen1").variantId(VARIANT_ID).type("GENERATOR").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl").name("vl").build())).build()); NetworkVariantsListener listener = new NetworkVariantsListener(NETWORK_UUID, equipmentInfosService); diff --git a/src/test/java/org/gridsuite/study/server/NetworkVisualizationParamsTest.java b/src/test/java/org/gridsuite/study/server/NetworkVisualizationParamsTest.java index c4b34dd403..27c06191d4 100644 --- a/src/test/java/org/gridsuite/study/server/NetworkVisualizationParamsTest.java +++ b/src/test/java/org/gridsuite/study/server/NetworkVisualizationParamsTest.java @@ -107,7 +107,7 @@ public MockResponse dispatch(RecordedRequest request) { String path = Objects.requireNonNull(request.getPath()); String method = Objects.requireNonNull(request.getMethod()); if (path.startsWith("/v1/network-visualizations-params")) { - if (method.equals("GET")) { + if ("GET".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), NETWORK_VISU_DEFAULT_PARAMETERS_JSON); } else { return new MockResponse(200); diff --git a/src/test/java/org/gridsuite/study/server/NodePositionTest.java b/src/test/java/org/gridsuite/study/server/NodePositionTest.java index cb67c5ab4c..3eb588d137 100644 --- a/src/test/java/org/gridsuite/study/server/NodePositionTest.java +++ b/src/test/java/org/gridsuite/study/server/NodePositionTest.java @@ -34,7 +34,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; /** - * @author Slimane amar */ @SpringBootTest @DisableElasticsearch diff --git a/src/test/java/org/gridsuite/study/server/NodeSequenceTest.java b/src/test/java/org/gridsuite/study/server/NodeSequenceTest.java index ffe15330e8..3749372f99 100644 --- a/src/test/java/org/gridsuite/study/server/NodeSequenceTest.java +++ b/src/test/java/org/gridsuite/study/server/NodeSequenceTest.java @@ -42,7 +42,7 @@ import static org.mockito.Mockito.*; /** - * @author Kevin Le Saulnier */ @SpringBootTest @DisableElasticsearch @@ -97,7 +97,7 @@ void testCreateSecuritySequence() { AbstractNode nNode = parentOfSubtree.getChildren().getFirst(); checkSecuritySequence(nNode, ""); - // verify notifications + // verify notifications verify(notificationService, times(1)).emitSubtreeInserted(studyUuid, nNode.getId(), parentOfSubtree.getId()); verify(notificationService, times(1)).emitElementUpdated(studyUuid, userId); @@ -151,7 +151,8 @@ void testCreateSecuritySequenceOnSecurityNode() { } NetworkModificationNode createNode(UUID parentNodeUuid, String name, NetworkModificationNodeType networkModificationNodeType) { - return networkModificationTreeService.createNode(studyEntity, parentNodeUuid, NetworkModificationNode.builder().name(name).nodeType(networkModificationNodeType).build(), InsertMode.CHILD, userId); + return networkModificationTreeService.createNode(studyEntity, parentNodeUuid, NetworkModificationNode.builder().name(name).nodeType(networkModificationNodeType).build(), InsertMode.CHILD, + userId); } void checkSecuritySequence(AbstractNode nNode, String nameSuffix) { diff --git a/src/test/java/org/gridsuite/study/server/PccMinTest.java b/src/test/java/org/gridsuite/study/server/PccMinTest.java index 178931954e..8492c3c557 100644 --- a/src/test/java/org/gridsuite/study/server/PccMinTest.java +++ b/src/test/java/org/gridsuite/study/server/PccMinTest.java @@ -9,7 +9,9 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.tomakehurst.wiremock.WireMockServer; import com.github.tomakehurst.wiremock.client.WireMock; +import com.github.tomakehurst.wiremock.core.WireMockConfiguration; import com.github.tomakehurst.wiremock.stubbing.ServeEvent; import lombok.AllArgsConstructor; import org.gridsuite.study.server.dto.ComputationType; @@ -27,10 +29,10 @@ import org.gridsuite.study.server.service.*; import org.gridsuite.study.server.utils.ResultParameters; import org.gridsuite.study.server.utils.TestUtils; +import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; import org.gridsuite.study.server.utils.wiremock.ComputationServerStubs; import org.gridsuite.study.server.utils.wiremock.UserAdminServerStubs; import org.gridsuite.study.server.utils.wiremock.WireMockStubs; -import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; import org.gridsuite.study.server.utils.wiremock.WireMockUtilsCriteria; import org.json.JSONObject; import org.junit.jupiter.api.*; @@ -49,15 +51,9 @@ import org.springframework.messaging.support.MessageBuilder; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; - +import org.springframework.web.client.HttpClientErrorException; import java.util.*; - import static com.github.tomakehurst.wiremock.client.WireMock.*; - -import com.github.tomakehurst.wiremock.WireMockServer; -import com.github.tomakehurst.wiremock.core.WireMockConfiguration; -import org.springframework.web.client.HttpClientErrorException; - import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.notification.NotificationService.*; import static org.junit.jupiter.api.Assertions.*; @@ -77,7 +73,10 @@ class PccMinTest { private static final String PCC_MIN_ERROR_RESULT_UUID = "25222222-9994-4e55-8ec7-07ea965d24eb"; private static final UUID PCCMIN_PARAMETERS_UUID = UUID.fromString("0c0f1efd-bd22-4a75-83d3-9e530245c7f2"); private static final String PCC_MIN_STATUS_JSON = "{\"status\":\"COMPLETED\"}"; - private static final String ALL_COMPUTATION_STATUS_JSON = "{\"LOAD_FLOW\":null,\"SECURITY_ANALYSIS\":null,\"SENSITIVITY_ANALYSIS\":null,\"SHORT_CIRCUIT\":null,\"SHORT_CIRCUIT_ONE_BUS\":null,\"VOLTAGE_INITIALIZATION\":null,\"DYNAMIC_SIMULATION\":null,\"DYNAMIC_SECURITY_ANALYSIS\":null,\"DYNAMIC_MARGIN_CALCULATION\":null,\"STATE_ESTIMATION\":null,\"PCC_MIN\":\"{\\\"status\\\":\\\"COMPLETED\\\"}\"}"; + private static final String ALL_COMPUTATION_STATUS_JSON = "{\"LOAD_FLOW\":null,\"SECURITY_ANALYSIS\":null," + + "\"SENSITIVITY_ANALYSIS\":null,\"SHORT_CIRCUIT\":null,\"SHORT_CIRCUIT_ONE_BUS\":null," + + "\"VOLTAGE_INITIALIZATION\":null,\"DYNAMIC_SIMULATION\":null,\"DYNAMIC_SECURITY_ANALYSIS\":null," + + "\"DYNAMIC_MARGIN_CALCULATION\":null,\"STATE_ESTIMATION\":null,\"PCC_MIN\":\"{\\\"status\\\":\\\"COMPLETED\\\"}\"}"; private static final String ELEMENT_UPDATE_DESTINATION = "element.update"; private static final String CASE_UUID_STRING = "00000000-8cf0-11bd-b23e-10b96e4ef00d"; @@ -99,15 +98,18 @@ class PccMinTest { private static final String PCC_MIN_PARAMETERS_UUID_STRING = "0c0f1efd-bd22-4a75-83d3-9e530245c7f4"; private static final UUID PCC_MIN_PARAMETERS_UUID = UUID.fromString(PCC_MIN_PARAMETERS_UUID_STRING); - private static final String PCC_MIN_PROFILE_PARAMETERS_JSON = "{\"uuid\":\"7cce52fd-2aca-4d93-9b7b-6a2b4c0c2c11\",\"filters\":[{\"filterId\":\"b5fafd19-25f4-45b9-b5c8-3af51fdc9d1c\",\"filterName\":\"filterName\"}]}"; + private static final String PCC_MIN_PROFILE_PARAMETERS_JSON = + "{\"uuid\":\"7cce52fd-2aca-4d93-9b7b-6a2b4c0c2c11\",\"filters\":[{\"filterId\":\"b5fafd19-25f4-45b9-b5c8-3af51fdc9d1c\",\"filterName\":\"filterName\"}]}"; private static final String PROFILE_PCC_MIN_DUPLICATED_PARAMETERS_UUID_STRING = "a4ce25e1-59a7-401d-abb1-04425fe24587"; private static final String PROFILE_PCC_MIN_INVALID_PARAMETERS_UUID_STRING = "f09f5282-8e34-48b5-b66e-7ef9f3f36c4f"; private static final String VALID_PARAMS_IN_PROFILE_USER_ID = "validParamInProfileUser"; private static final String PROFILE_PCC_MIN_VALID_PARAMETERS_UUID_STRING = "1cec4a7b-ab7e-4d78-9dd7-ce73c5ef11d9"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid pcc min params\",\"pccMinParameterId\":\"" + PROFILE_PCC_MIN_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; - private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken pcc min params\",\"pccMinParameterId\":\"" + PROFILE_PCC_MIN_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid pcc min params\",\"pccMinParameterId\":\"" + + PROFILE_PCC_MIN_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; + private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken pcc min params\",\"pccMinParameterId\":\"" + + PROFILE_PCC_MIN_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; private static final String DUPLICATED_PARAMS_JSON = "\"" + PROFILE_PCC_MIN_DUPLICATED_PARAMETERS_UUID_STRING + "\""; @Autowired diff --git a/src/test/java/org/gridsuite/study/server/RemoteServicesInspectorEndpointTest.java b/src/test/java/org/gridsuite/study/server/RemoteServicesInspectorEndpointTest.java index a0f3860b92..94185ec73d 100644 --- a/src/test/java/org/gridsuite/study/server/RemoteServicesInspectorEndpointTest.java +++ b/src/test/java/org/gridsuite/study/server/RemoteServicesInspectorEndpointTest.java @@ -13,9 +13,9 @@ import org.gridsuite.study.server.dto.ServiceStatusInfos; import org.gridsuite.study.server.dto.ServiceStatusInfos.ServiceStatus; import org.gridsuite.study.server.exception.PartialResultException; -import org.gridsuite.study.server.repository.rootnetwork.RootNetworkRequestRepository; import org.gridsuite.study.server.repository.rootnetwork.RootNetworkNodeInfoRepository; import org.gridsuite.study.server.repository.rootnetwork.RootNetworkRepository; +import org.gridsuite.study.server.repository.rootnetwork.RootNetworkRequestRepository; import org.gridsuite.study.server.service.FrontService; import org.gridsuite.study.server.service.NetworkModificationTreeService; import org.gridsuite.study.server.service.RemoteServicesInspector; @@ -36,11 +36,9 @@ import org.springframework.http.MediaType; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.web.servlet.MockMvc; - import java.util.HashMap; import java.util.List; import java.util.Map; - import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -101,7 +99,8 @@ void testActuatorHealthUp() throws Exception { mockMvc.perform(get("/v1/optional-services")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) - .andExpect(content().json("[{\"name\":\"loadflow-server\",\"status\":\"UP\"},{\"name\":\"security-analysis-server\",\"status\":\"UP\"},{\"name\":\"voltage-init-server\",\"status\":\"UP\"}]", true)); + .andExpect(content().json( + "[{\"name\":\"loadflow-server\",\"status\":\"UP\"},{\"name\":\"security-analysis-server\",\"status\":\"UP\"},{\"name\":\"voltage-init-server\",\"status\":\"UP\"}]", true)); Mockito.verify(remoteServicesInspector, Mockito.times(1)).getOptionalServices(); } @@ -124,7 +123,9 @@ void testActuatorHealthDown() throws Exception { mockMvc.perform(get("/v1/optional-services")) .andExpect(status().isOk()) .andExpect(content().contentType(MediaType.APPLICATION_JSON)) - .andExpect(content().json("[{\"name\":\"sensitivity-analysis-server\",\"status\":\"DOWN\"},{\"name\":\"shortcircuit-server\",\"status\":\"DOWN\"},{\"name\":\"state-estimation-server\",\"status\":\"DOWN\"}]", true)); + .andExpect(content().json( + "[{\"name\":\"sensitivity-analysis-server\",\"status\":\"DOWN\"},{\"name\":\"shortcircuit-server\",\"status\":\"DOWN\"},{\"name\":\"state-estimation-server\"," + + "\"status\":\"DOWN\"}]", true)); Mockito.verify(remoteServicesInspector, Mockito.times(1)).getOptionalServices(); } diff --git a/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java b/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java index 0c487563f0..1eeb3e9bbd 100644 --- a/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java +++ b/src/test/java/org/gridsuite/study/server/SensitivityAnalysisTest.java @@ -115,14 +115,42 @@ class SensitivityAnalysisTest { private static final String PROFILE_SENSITIVITY_ANALYSIS_VALID_PARAMETERS_UUID_STRING = "1cec4a7b-ab7e-4d78-9dd7-ce73c5ef11d9"; private static final String PROFILE_SENSITIVITY_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING = "a4ce25e1-59a7-401d-abb1-04425fe24587"; private static final String USER_PROFILE_NO_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile No params\"}"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"sensitivityAnalysisParameterId\":\"" + PROFILE_SENSITIVITY_ANALYSIS_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; - private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"sensitivityAnalysisParameterId\":\"" + PROFILE_SENSITIVITY_ANALYSIS_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"sensitivityAnalysisParameterId\":\"" + + PROFILE_SENSITIVITY_ANALYSIS_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; + private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"sensitivityAnalysisParameterId\":\"" + + PROFILE_SENSITIVITY_ANALYSIS_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; private static final String DUPLICATED_PARAMS_JSON = "\"" + PROFILE_SENSITIVITY_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING + "\""; - public static final String SENSITIVITY_ANALYSIS_DEFAULT_PARAMETERS_JSON = "{\"flowFlowSensitivityValueThreshold\":0.0,\"angleFlowSensitivityValueThreshold\":0.0,\"flowVoltageSensitivityValueThreshold\":0.0," + + public static final String SENSITIVITY_ANALYSIS_DEFAULT_PARAMETERS_JSON = + "{\"flowFlowSensitivityValueThreshold\":0.0,\"angleFlowSensitivityValueThreshold\":0.0,\"flowVoltageSensitivityValueThreshold\":0.0," + "\"sensitivityInjectionsSet\":[],\"sensitivityInjection\":[],\"sensitivityHVDC\":[],\"sensitivityPST\":[],\"sensitivityNodes\":[]}"; - public static final String SENSITIVITY_ANALYSIS_UPDATED_PARAMETERS_JSON = "{\"flowFlowSensitivityValueThreshold\":90.0,\"angleFlowSensitivityValueThreshold\":0.6,\"flowVoltageSensitivityValueThreshold\":0.1,\"sensitivityInjectionsSet\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}],\"injections\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}],\"distributionType\":\"PROPORTIONAL\",\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}],\"activated\":true}],\"sensitivityInjection\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}],\"injections\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}],\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}],\"activated\":true}],\"sensitivityHVDC\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}],\"sensitivityType\":\"DELTA_MW\",\"hvdcs\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}],\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}],\"activated\":true}],\"sensitivityPST\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}],\"sensitivityType\":\"DELTA_MW\",\"psts\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}],\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}],\"activated\":true}],\"sensitivityNodes\":[{\"monitoredVoltageLevels\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}],\"equipmentsInVoltageRegulation\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}],\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}],\"activated\":true}]}"; - - private static final String SENSITIVITY_ANALYSIS_PROFILE_PARAMETERS_JSON = "{\"flowFlowSensitivityValueThreshold\":30.0,\"voltageVoltageSensitivityValueThreshold\":0.4,\"flowVoltageSensitivityValueThreshold\":0.0,\"angleFlowSensitivityValueThreshold\":0.0}"; + public static final String SENSITIVITY_ANALYSIS_UPDATED_PARAMETERS_JSON = + "{\"flowFlowSensitivityValueThreshold\":90.0,\"angleFlowSensitivityValueThreshold\":0.6,\"flowVoltageSensitivityValueThreshold\":0.1," + + "\"sensitivityInjectionsSet\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}]," + + "\"injections\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}],\"distributionType\":\"PROPORTIONAL\"," + + "\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}],\"activated\":true}]," + + "\"sensitivityInjection\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}]," + + "\"injections\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}]," + + "\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\",\"containerName\":\"identifiable3\"}]," + + "\"activated\":true}],\"sensitivityHVDC\":[{\"monitoredBranches\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da321\"," + + "\"containerName\":\"identifiable1\"}],\"sensitivityType\":\"DELTA_MW\"," + + "\"hvdcs\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}]," + + "\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\"," + + "\"containerName\":\"identifiable3\"}],\"activated\":true}],\"sensitivityPST\":" + + "[{\"monitoredBranches\":[{\"containerId\":" + + "\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}]," + + "\"sensitivityType\":\"DELTA_MW\",\"psts\":[{\"containerId\":" + + "\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}]," + + "\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\"," + + "\"containerName\":\"identifiable3\"}],\"activated\":true}]," + + "\"sensitivityNodes\":[{\"monitoredVoltageLevels\":[{\"containerId\":" + + "\"cf399ef3-7f14-4884-8c82-1c90300da321\",\"containerName\":\"identifiable1\"}]," + + "\"equipmentsInVoltageRegulation\":[{\"containerId\":" + + "\"cf399ef3-7f14-4884-8c82-1c90300da322\",\"containerName\":\"identifiable2\"}]," + + "\"contingencies\":[{\"containerId\":\"cf399ef3-7f14-4884-8c82-1c90300da323\"," + + "\"containerName\":\"identifiable3\"}],\"activated\":true}]}"; + + private static final String SENSITIVITY_ANALYSIS_PROFILE_PARAMETERS_JSON = + "{\"flowFlowSensitivityValueThreshold\":30.0,\"voltageVoltageSensitivityValueThreshold\":0.4,\"flowVoltageSensitivityValueThreshold\":0.0,\"angleFlowSensitivityValueThreshold\":0.0}"; //output destinations private static final String STUDY_UPDATE_DESTINATION = "study.update"; @@ -491,10 +519,12 @@ void testGetSensitivityResultWithWrongId() throws Exception { UUID notFoundSensitivityUuid = UUID.randomUUID(); UUID studyUuid = studyEntity.getId(); UUID firstRootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(studyUuid); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result?selector={selector}", studyUuid, firstRootNetworkUuid, UUID.randomUUID(), FAKE_RESULT_JSON)) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result?selector={selector}", studyUuid, firstRootNetworkUuid, + UUID.randomUUID(), FAKE_RESULT_JSON)) .andExpect(status().isNotFound()).andReturn(); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result/filter-options?selector={selector}", studyUuid, firstRootNetworkUuid, UUID.randomUUID(), FAKE_RESULT_JSON)) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result/filter-options?selector={selector}", studyUuid, firstRootNetworkUuid, + UUID.randomUUID(), FAKE_RESULT_JSON)) .andExpect(status().isNoContent()).andReturn(); UUID rootNodeUuid = getRootNodeUuid(studyUuid); @@ -510,11 +540,13 @@ void testGetSensitivityResultWithWrongId() throws Exception { wireMockServer.stubFor(WireMock.get(WireMock.urlPathMatching("/v1/results/" + notFoundSensitivityUuid + "/filter-options" + ".*")) .willReturn(WireMock.notFound())); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result?selector={selector}", studyUuid, firstRootNetworkUuid, modificationNodeUuid, FAKE_RESULT_JSON)) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result?selector={selector}", studyUuid, firstRootNetworkUuid, + modificationNodeUuid, FAKE_RESULT_JSON)) .andExpect(status().isNotFound()).andReturn(); computationServerStubs.verifyGetResult(notFoundSensitivityUuid.toString(), Map.of("selector", WireMock.matching(".*"))); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result/filter-options?selector={selector}", studyUuid, firstRootNetworkUuid, modificationNodeUuid, FAKE_RESULT_JSON)) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/result/filter-options?selector={selector}", studyUuid, firstRootNetworkUuid, + modificationNodeUuid, FAKE_RESULT_JSON)) .andExpect(status().isNotFound()).andReturn(); computationServerStubs.verifyGetResultFilterOptions(notFoundSensitivityUuid.toString(), Map.of("selector", WireMock.matching(".*"))); } @@ -565,7 +597,8 @@ void testGetSensitivityAnalysisFactorCount() throws Exception { ) ); - MockHttpServletRequestBuilder requestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/factor-count", studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid); + MockHttpServletRequestBuilder requestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/sensitivity-analysis/factor-count", studyNameUserIdUuid, + firstRootNetworkUuid, rootNodeUuid); requestBuilder.content(SENSITIVITY_ANALYSIS_UPDATED_PARAMETERS_JSON); String resultAsString = mockMvc.perform(requestBuilder.header(HEADER_USER_ID, "userId")) .andExpect(status().isOk()) diff --git a/src/test/java/org/gridsuite/study/server/ShortCircuitTest.java b/src/test/java/org/gridsuite/study/server/ShortCircuitTest.java index e8efc121e8..20ed2a593a 100644 --- a/src/test/java/org/gridsuite/study/server/ShortCircuitTest.java +++ b/src/test/java/org/gridsuite/study/server/ShortCircuitTest.java @@ -102,7 +102,10 @@ class ShortCircuitTest implements WithAssertions { private static final byte[] SHORT_CIRCUIT_ANALYSIS_CSV_RESULT = {0x00, 0x11}; private static final String SHORT_CIRCUIT_ANALYSIS_STATUS_JSON = "{\"status\":\"COMPLETED\"}"; - private static final String ALL_COMPUTATIONS_STATUS_JSON = "{\"LOAD_FLOW\":null,\"SECURITY_ANALYSIS\":null,\"SENSITIVITY_ANALYSIS\":null,\"SHORT_CIRCUIT\":\"{\\\"status\\\":\\\"COMPLETED\\\"}\",\"SHORT_CIRCUIT_ONE_BUS\":null,\"VOLTAGE_INITIALIZATION\":null,\"DYNAMIC_SIMULATION\":null,\"DYNAMIC_SECURITY_ANALYSIS\":null,\"DYNAMIC_MARGIN_CALCULATION\":null,\"STATE_ESTIMATION\":null,\"PCC_MIN\":null}"; + private static final String ALL_COMPUTATIONS_STATUS_JSON = "{\"LOAD_FLOW\":null,\"SECURITY_ANALYSIS\":null," + + "\"SENSITIVITY_ANALYSIS\":null,\"SHORT_CIRCUIT\":\"{\\\"status\\\":\\\"COMPLETED\\\"}\"," + + "\"SHORT_CIRCUIT_ONE_BUS\":null,\"VOLTAGE_INITIALIZATION\":null,\"DYNAMIC_SIMULATION\":null," + + "\"DYNAMIC_SECURITY_ANALYSIS\":null,\"DYNAMIC_MARGIN_CALCULATION\":null,\"STATE_ESTIMATION\":null,\"PCC_MIN\":null}"; private static final String SHORT_CIRCUIT_ANALYSIS_PARAMETERS_UUID_STRING = "0c0f1efd-bd22-4a75-83d3-9e530245c7f4"; private static final UUID SHORT_CIRCUIT_ANALYSIS_PARAMETERS_UUID = UUID.fromString(SHORT_CIRCUIT_ANALYSIS_PARAMETERS_UUID_STRING); @@ -113,8 +116,10 @@ class ShortCircuitTest implements WithAssertions { private static final String VALID_PARAMS_IN_PROFILE_USER_ID = "validParamInProfileUser"; private static final String PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING = "1cec4a7b-ab7e-4d78-9dd7-ce73c5ef11d9"; private static final String PROFILE_SHORT_CIRCUIT_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING = "a4ce25e1-59a7-401d-abb1-04425fe24587"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"shortcircuitParameterId\":\"" + PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; - private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"shortcircuitParameterId\":\"" + PROFILE_SHORT_CIRCUIT_ANALYSIS_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"shortcircuitParameterId\":\"" + + PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; + private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"shortcircuitParameterId\":\"" + + PROFILE_SHORT_CIRCUIT_ANALYSIS_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; private static final String VARIANT_ID = "variant_1"; private static final String VARIANT_ID_2 = "variant_2"; @@ -265,23 +270,26 @@ void testAllBusesShortCircuit() throws Exception { mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result/csv", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid) .param("type", "ALL_BUSES") .content(CSV_HEADERS)).andExpectAll(status().isOk(), content().bytes(SHORT_CIRCUIT_ANALYSIS_CSV_RESULT)); - WireMockUtilsCriteria.verifyPostRequest(wireMockServer, "/v1/results/" + SHORT_CIRCUIT_ANALYSIS_RESULT_UUID + "/csv", Map.of("networkUuid", WireMock.equalTo(NETWORK_UUID_STRING), "variantId", WireMock.equalTo(VARIANT_ID_2))); + WireMockUtilsCriteria.verifyPostRequest(wireMockServer, "/v1/results/" + SHORT_CIRCUIT_ANALYSIS_RESULT_UUID + "/csv", Map.of("networkUuid", WireMock.equalTo(NETWORK_UUID_STRING), "variantId", + WireMock.equalTo(VARIANT_ID_2))); // get short circuit result but with unknown node - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result", studyNameUserIdUuid, firstRootNetworkUuid, unknownModificationNodeUuid)).andExpect( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result", studyNameUserIdUuid, firstRootNetworkUuid, + unknownModificationNodeUuid)).andExpect( status().isNoContent()); // get short circuit status computationServerStubs.stubGetResultStatus(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, SHORT_CIRCUIT_ANALYSIS_STATUS_JSON); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/status", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/status", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode3Uuid)).andExpectAll( status().isOk(), content().string(SHORT_CIRCUIT_ANALYSIS_STATUS_JSON)); computationServerStubs.verifyGetResultStatus(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID); // get all computing status and check shortcircuit status - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/computations/status", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid)).andExpectAll( - status().isOk(), - content().string(ALL_COMPUTATIONS_STATUS_JSON)); + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/computations/status", + studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid)) + .andExpectAll(status().isOk(), content().string(ALL_COMPUTATIONS_STATUS_JSON)); computationServerStubs.verifyGetResultStatus(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID); // stop short circuit analysis @@ -295,7 +303,8 @@ void testAllBusesShortCircuit() throws Exception { checkUpdateModelStatusMessagesReceived(studyNameUserIdUuid, NotificationService.UPDATE_TYPE_SHORT_CIRCUIT_STATUS, NotificationService.UPDATE_TYPE_SHORT_CIRCUIT_RESULT); // short circuit analysis failed - shortcircuitServerStubs.stubShortCircuitRunWithPostAction(NETWORK_UUID_STRING, VARIANT_ID, SHORT_CIRCUIT_ANALYSIS_ERROR_RESULT_UUID, shortCircuitAnalysisFailedDestination, modificationNode2Uuid, firstRootNetworkUuid); + shortcircuitServerStubs.stubShortCircuitRunWithPostAction(NETWORK_UUID_STRING, VARIANT_ID, SHORT_CIRCUIT_ANALYSIS_ERROR_RESULT_UUID, shortCircuitAnalysisFailedDestination, + modificationNode2Uuid, firstRootNetworkUuid); mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/run", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode2Uuid) .header(HEADER_USER_ID, "testUserId")) .andExpect(status().isOk()).andReturn(); @@ -388,7 +397,8 @@ void testGetShortCircuitAnalysisCsvResultNotFound() throws Exception { mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result/csv", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid) .param("type", "ALL_BUSES") .content(CSV_HEADERS)).andExpectAll(status().isNotFound()); - WireMockUtilsCriteria.verifyPostRequest(wireMockServer, "/v1/results/" + SHORT_CIRCUIT_ANALYSIS_RESULT_UUID_NOT_FOUND + "/csv", Map.of("networkUuid", WireMock.equalTo(NETWORK_UUID_STRING_NOT_FOUND), "variantId", WireMock.equalTo(VARIANT_ID_4))); + WireMockUtilsCriteria.verifyPostRequest(wireMockServer, "/v1/results/" + SHORT_CIRCUIT_ANALYSIS_RESULT_UUID_NOT_FOUND + "/csv", Map.of("networkUuid", + WireMock.equalTo(NETWORK_UUID_STRING_NOT_FOUND), "variantId", WireMock.equalTo(VARIANT_ID_4))); } private void consumeShortCircuitAnalysisResult(UUID studyUuid, UUID rootNetworkUuid, UUID nodeUuid, String resultUuid, boolean debug) throws JsonProcessingException { @@ -458,19 +468,22 @@ void testPagedShortCircuit() throws Exception { // get short circuit result with pagination shortcircuitServerStubs.stubGetPagedFaultResults(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, SHORT_CIRCUIT_ANALYSIS_RESULT_JSON, NETWORK_UUID_STRING, VARIANT_ID_2, "FULL", "0", "20", "id,DESC"); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result?paged=true&page=0&size=20&sort=id,DESC", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result?paged=true&page=0&size=20&sort=id,DESC", studyNameUserIdUuid, + firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( status().isOk(), content().string(SHORT_CIRCUIT_ANALYSIS_RESULT_JSON)); shortcircuitServerStubs.verifyGetPagedFaultResults(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, NETWORK_UUID_STRING, VARIANT_ID_2, "FULL", "0", "20", "id,DESC"); // get short circuit result with pagination but with unknown node - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result?paged=true&page=0&size=20", studyNameUserIdUuid, firstRootNetworkUuid, unknownModificationNodeUuid)).andExpect( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result?paged=true&page=0&size=20", studyNameUserIdUuid, firstRootNetworkUuid, + unknownModificationNodeUuid)).andExpect( status().isNoContent()); // get short circuit status computationServerStubs.stubGetResultStatus(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, SHORT_CIRCUIT_ANALYSIS_STATUS_JSON); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/status", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/status", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid)).andExpectAll( status().isOk(), content().string(SHORT_CIRCUIT_ANALYSIS_STATUS_JSON)); computationServerStubs.verifyGetResultStatus(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, 1); @@ -532,8 +545,10 @@ void testOneBusShortCircuit() throws Exception { WireMockUtilsCriteria.verifyGetRequest(wireMockServer, "/v1/results/" + SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, Map.of("mode", WireMock.equalTo("FULL"))); // get short circuit result with pagination - shortcircuitServerStubs.stubGetPagedFeederResults(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, SHORT_CIRCUIT_ANALYSIS_RESULT_JSON, NETWORK_UUID_STRING, VARIANT_ID_2, "fakeFilters", "FULL", "0", "20", "id,DESC"); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result?paged=true&page=0&size=20&sort=id,DESC&filters=fakeFilters", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid) + shortcircuitServerStubs.stubGetPagedFeederResults(SHORT_CIRCUIT_ANALYSIS_RESULT_UUID, SHORT_CIRCUIT_ANALYSIS_RESULT_JSON, NETWORK_UUID_STRING, VARIANT_ID_2, "fakeFilters", "FULL", "0", "20", + "id,DESC"); + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result?paged=true&page=0&size=20&sort=id,DESC&filters=fakeFilters", + studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid) .param("type", ShortcircuitAnalysisType.ONE_BUS.name()) ).andExpectAll( status().isOk(), @@ -627,7 +642,8 @@ void testNoResult() throws Exception { UUID modificationNode1Uuid = modificationNode1.getId(); // No short circuit result - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/result", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid)).andExpectAll( status().isNoContent()); // No one bus short circuit result @@ -641,7 +657,8 @@ void testNoResult() throws Exception { .content(CSV_HEADERS)).andExpectAll(status().isNotFound()); // No short circuit status - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/status", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/shortcircuit/status", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid)).andExpectAll( status().isNoContent()); // stop non-existing short circuit analysis @@ -804,7 +821,8 @@ void testResetShortCircuitAnalysisParametersUserHasValidParamsInProfile(final Mo UUID studyNameUserIdUuid = studyEntity.getId(); userAdminServerStubs.stubGetUserProfile(VALID_PARAMS_IN_PROFILE_USER_ID, USER_PROFILE_VALID_PARAMS_JSON); - computationServerStubs.stubParametersDuplicateFrom(PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING, objectMapper.writeValueAsString(PROFILE_SHORT_CIRCUIT_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING)); + computationServerStubs.stubParametersDuplicateFrom(PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING, + objectMapper.writeValueAsString(PROFILE_SHORT_CIRCUIT_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING)); computationServerStubs.stubDeleteParameters(SHORT_CIRCUIT_ANALYSIS_PARAMETERS_UUID_STRING); createOrUpdateParametersAndDoChecks(studyNameUserIdUuid, "", VALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.OK); userAdminServerStubs.verifyGetUserProfile(VALID_PARAMS_IN_PROFILE_USER_ID); @@ -818,7 +836,8 @@ void testResetShortCircuitAnalysisParametersUserHasValidParamsInProfileButNoExis UUID studyNameUserIdUuid = studyEntity.getId(); userAdminServerStubs.stubGetUserProfile(VALID_PARAMS_IN_PROFILE_USER_ID, USER_PROFILE_VALID_PARAMS_JSON); - computationServerStubs.stubParametersDuplicateFrom(PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING, objectMapper.writeValueAsString(PROFILE_SHORT_CIRCUIT_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING)); + computationServerStubs.stubParametersDuplicateFrom(PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING, + objectMapper.writeValueAsString(PROFILE_SHORT_CIRCUIT_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING)); createOrUpdateParametersAndDoChecks(studyNameUserIdUuid, "", VALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.OK); userAdminServerStubs.verifyGetUserProfile(VALID_PARAMS_IN_PROFILE_USER_ID); computationServerStubs.verifyParametersDuplicateFrom(PROFILE_SHORT_CIRCUIT_ANALYSIS_VALID_PARAMETERS_UUID_STRING); diff --git a/src/test/java/org/gridsuite/study/server/SingleLineDiagramTest.java b/src/test/java/org/gridsuite/study/server/SingleLineDiagramTest.java index 7fc7aadf5b..1b20f07af6 100644 --- a/src/test/java/org/gridsuite/study/server/SingleLineDiagramTest.java +++ b/src/test/java/org/gridsuite/study/server/SingleLineDiagramTest.java @@ -34,8 +34,8 @@ import org.gridsuite.study.server.service.*; import org.gridsuite.study.server.utils.MatcherJson; import org.gridsuite.study.server.utils.TestUtils; -import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; +import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.jetbrains.annotations.NotNull; import org.json.JSONObject; import org.junit.jupiter.api.AfterEach; @@ -54,10 +54,8 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; - import java.util.*; import java.util.stream.Collectors; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.StudyConstants.*; import static org.gridsuite.study.server.dto.InfoTypeParameters.QUERY_PARAM_DC_POWERFACTOR; @@ -209,7 +207,7 @@ public MockResponse dispatch(RecordedRequest request) { case "/v1/substation-svg-and-metadata/" + NETWORK_UUID_STRING + "/substationNotFoundId": return new MockResponse(404); - case "/v1/network-area-diagram/" + NETWORK_UUID_STRING : + case "/v1/network-area-diagram/" + NETWORK_UUID_STRING: return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), "nad-svg"); case "/v1/svg/" + NETWORK_UUID_STRING + "/voltageLevelId": return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), "byte"); @@ -328,7 +326,8 @@ void testDiagramsAndGraphics(final MockWebServer server) throws Exception { .andExpect(status().isNotFound()); //get voltage levels - mvcResult = getNetworkElementsInfos(studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "MAP", "VOLTAGE_LEVEL", null, objectMapper.writeValueAsString(List.of()), TestUtils.resourceToString("/network-voltage-levels-infos.json")); + mvcResult = getNetworkElementsInfos(studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "MAP", "VOLTAGE_LEVEL", null, objectMapper.writeValueAsString(List.of()), + TestUtils.resourceToString("/network-voltage-levels-infos.json")); List vliListResponse = objectMapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); assertThat(vliListResponse, new MatcherJson<>(objectMapper, List.of( VoltageLevelInfos.builder().id("BBE1AA1").name("BBE1AA1").substationId("BBE1AA").build(), @@ -426,19 +425,23 @@ void testDiagramsAndGraphics(final MockWebServer server) throws Exception { assertTrue(TestUtils.getRequestsDone(1, server).contains("/v1/svg-component-libraries")); // Test getting non existing voltage level or substation svg - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/svg", studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "voltageLevelNotFoundId") + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/svg", studyNameUserIdUuid, firstRootNetworkUuid, + rootNodeUuid, "voltageLevelNotFoundId") .content(objectMapper.writeValueAsString(BODY_CONTENT)).contentType(MediaType.APPLICATION_JSON)).andExpectAll(status().isNotFound()); assertTrue(TestUtils.getRequestsDone(1, server).contains("/v1/svg/%s/voltageLevelNotFoundId".formatted(NETWORK_UUID_STRING))); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/svg-and-metadata", studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "voltageLevelNotFoundId") + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/voltage-levels/{voltageLevelId}/svg-and-metadata", studyNameUserIdUuid, + firstRootNetworkUuid, rootNodeUuid, "voltageLevelNotFoundId") .content(objectMapper.writeValueAsString(BODY_CONTENT)).contentType(MediaType.APPLICATION_JSON)).andExpectAll(status().isNotFound()); assertTrue(TestUtils.getRequestsDone(1, server).contains("/v1/svg-and-metadata/%s/voltageLevelNotFoundId".formatted(NETWORK_UUID_STRING))); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/substations/{substationId}/svg", studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "substationNotFoundId") + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/substations/{substationId}/svg", studyNameUserIdUuid, firstRootNetworkUuid, + rootNodeUuid, "substationNotFoundId") .content(objectMapper.writeValueAsString(BODY_CONTENT)).contentType(MediaType.APPLICATION_JSON)).andExpectAll(status().isNotFound()); assertTrue(TestUtils.getRequestsDone(1, server).contains("/v1/substation-svg/%s/substationNotFoundId".formatted(NETWORK_UUID_STRING))); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/substations/{substationId}/svg-and-metadata", studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "substationNotFoundId") + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/substations/{substationId}/svg-and-metadata", studyNameUserIdUuid, firstRootNetworkUuid, + rootNodeUuid, "substationNotFoundId") .content(objectMapper.writeValueAsString(BODY_CONTENT)).contentType(MediaType.APPLICATION_JSON)).andExpectAll(status().isNotFound()); assertTrue(TestUtils.getRequestsDone(1, server).contains("/v1/substation-svg-and-metadata/%s/substationNotFoundId".formatted(NETWORK_UUID_STRING))); } @@ -535,7 +538,8 @@ private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UU return modificationNode; } - private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String infoType, String elementType, List nominalVoltages, String requestBody, String responseBody) throws Exception { + private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNetworkUuid, UUID rootNodeUuid, String infoType, String elementType, List nominalVoltages, String requestBody, String + responseBody) throws Exception { List nominalVoltageStrings = new ArrayList<>(); if (nominalVoltages != null && !nominalVoltages.isEmpty()) { @@ -546,7 +550,8 @@ private MvcResult getNetworkElementsInfos(UUID studyUuid, UUID rootNetworkUuid, String nominalVoltagesParam = nominalVoltageStrings.isEmpty() ? null : objectMapper.writeValueAsString(nominalVoltageStrings); UUID stubUuid = wireMockStubs.stubNetworkElementsInfosPost(NETWORK_UUID_STRING, infoType, elementType, nominalVoltages, responseBody); - MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNetworkUuid, rootNodeUuid) + MockHttpServletRequestBuilder mockHttpServletRequestBuilder = post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network/elements", studyUuid, rootNetworkUuid, + rootNodeUuid) .queryParam(QUERY_PARAM_INFO_TYPE, infoType) .queryParam(QUERY_PARAM_ELEMENT_TYPE, elementType) .queryParam(QUERY_PARAM_NOMINAL_VOLTAGES, nominalVoltagesParam) diff --git a/src/test/java/org/gridsuite/study/server/SingleLineDiagramWiremockTest.java b/src/test/java/org/gridsuite/study/server/SingleLineDiagramWiremockTest.java index 30788c19f4..524a4ffebd 100644 --- a/src/test/java/org/gridsuite/study/server/SingleLineDiagramWiremockTest.java +++ b/src/test/java/org/gridsuite/study/server/SingleLineDiagramWiremockTest.java @@ -132,7 +132,8 @@ private void testGenerateSingleLineDiagram(UUID loadflowResultUuid, UUID shortci } } - private void mockServicesAroundSvgGeneration(UUID nodeUuid, UUID rootNetworkUuid, UUID networkUuid, UUID loadflowResultUuid, UUID shortcircuitResultUuid, String variantId, Map sldRequestInfos) { + private void mockServicesAroundSvgGeneration(UUID nodeUuid, UUID rootNetworkUuid, UUID networkUuid, UUID loadflowResultUuid, UUID shortcircuitResultUuid, String variantId, Map sldRequestInfos) { doReturn(networkUuid).when(rootNetworkService).getNetworkUuid(rootNetworkUuid); doReturn(variantId).when(networkModificationTreeService).getVariantId(nodeUuid, rootNetworkUuid); doReturn(true).when(networkService).existVariant(networkUuid, variantId); diff --git a/src/test/java/org/gridsuite/study/server/SpreadsheetConfigCollectionTest.java b/src/test/java/org/gridsuite/study/server/SpreadsheetConfigCollectionTest.java index 0ab77c20ae..2a7d6bf496 100644 --- a/src/test/java/org/gridsuite/study/server/SpreadsheetConfigCollectionTest.java +++ b/src/test/java/org/gridsuite/study/server/SpreadsheetConfigCollectionTest.java @@ -83,7 +83,8 @@ class SpreadsheetConfigCollectionTest { private static final String NO_PROFILE_USER_ID = "noProfileUser"; private static final String VALID_PROFILE_USER_ID = "validProfileUser"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"spreadsheetConfigCollectionId\":\"" + SPREADSHEET_CONFIG_COLLECTION_UUID_STRING + "\"}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"spreadsheetConfigCollectionId\":\"" + + SPREADSHEET_CONFIG_COLLECTION_UUID_STRING + "\"}"; // UUID for testing delete failure private static final String ERROR_DELETE_COLLECTION_UUID_STRING = "7715da48-3390-47cb-8d9a-f936c8ca6a71"; @@ -135,19 +136,19 @@ void setup(final MockWebServer server) { public MockResponse dispatch(RecordedRequest request) { String path = Objects.requireNonNull(request.getPath()); String method = request.getMethod(); - if (path.equals("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID_STRING)) { + if (("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID_STRING).equals(path)) { if ("GET".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), SPREADSHEET_CONFIG_COLLECTION_JSON); } else if ("PUT".equals(method)) { return new MockResponse(200); } - } else if (path.equals("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/reorder")) { + } else if (("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/reorder").equals(path)) { return new MockResponse(204); - } else if ("DELETE".equals(method) && path.equals("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/spreadsheet-configs" + SPREADSHEET_CONFIG_UUID)) { + } else if ("DELETE".equals(method) && ("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/spreadsheet-configs" + SPREADSHEET_CONFIG_UUID).equals(path)) { return new MockResponse(204); - } else if ("POST".equals(method) && path.equals("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/spreadsheet-configs")) { + } else if ("POST".equals(method) && ("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/spreadsheet-configs").equals(path)) { return new MockResponse(201, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), NEW_SPREADSHEET_CONFIG_UUID_JSON); - } else if (path.equals("/v1/spreadsheet-config-collections/" + NEW_SPREADSHEET_CONFIG_COLLECTION_UUID_STRING)) { + } else if (("/v1/spreadsheet-config-collections/" + NEW_SPREADSHEET_CONFIG_COLLECTION_UUID_STRING).equals(path)) { if ("GET".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), NEW_SPREADSHEET_CONFIG_COLLECTION_JSON); } else if ("PUT".equals(method)) { @@ -155,11 +156,11 @@ public MockResponse dispatch(RecordedRequest request) { } else if ("DELETE".equals(method)) { return new MockResponse(200); } - } else if (path.equals("/v1/spreadsheet-config-collections/non-existing-collection")) { + } else if ("/v1/spreadsheet-config-collections/non-existing-collection".equals(path)) { return new MockResponse(404); } else if (path.matches("/v1/spreadsheet-config-collections\\?duplicateFrom=.*") && "POST".equals(method)) { String collectionId = path.substring(path.lastIndexOf("=") + 1); - if (collectionId.equals("non-existing-collection")) { + if ("non-existing-collection".equals(collectionId)) { return new MockResponse(404); } return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), NEW_SPREADSHEET_CONFIG_COLLECTION_UUID_JSON); @@ -171,9 +172,9 @@ public MockResponse dispatch(RecordedRequest request) { return new MockResponse(HttpStatus.INTERNAL_SERVER_ERROR.value()); } return new MockResponse(200); - } else if (path.equals("/v1/spreadsheet-config-collections/default")) { + } else if ("/v1/spreadsheet-config-collections/default".equals(path)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), SPREADSHEET_CONFIG_COLLECTION_UUID_JSON); - } else if (path.equals("/v1/spreadsheet-config-collections") && "POST".equals(method)) { + } else if ("/v1/spreadsheet-config-collections".equals(path) && "POST".equals(method)) { String body = null; try { body = request.getBody().readUtf8(); @@ -246,7 +247,8 @@ void testAppendSpreadsheetConfigCollection(final MockWebServer server) throws Ex // Verify the HTTP requests made to the server var requests = TestUtils.getRequestsDone(2, server); - assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/append\\?sourceCollection=" + APPENDED_SPREADSHEET_CONFIG_COLLECTION_UUID))); + assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID + "/append\\?sourceCollection=" + + APPENDED_SPREADSHEET_CONFIG_COLLECTION_UUID))); assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/spreadsheet-config-collections/" + SPREADSHEET_CONFIG_COLLECTION_UUID))); } @@ -452,7 +454,8 @@ void testRemoveConfig(final MockWebServer server) throws Exception { // Create a study with an existing spreadsheet config collection StudyEntity studyEntity = insertDummyStudy(UUID.fromString(NETWORK_UUID_STRING), CASE_LOADFLOW_UUID, SPREADSHEET_CONFIG_COLLECTION_UUID); UUID studyUuid = studyEntity.getId(); - mockMvc.perform(delete("/v1/studies/{studyUuid}/spreadsheet-config-collection/{collectionUuid}/spreadsheet-configs/{configId}", studyUuid, SPREADSHEET_CONFIG_COLLECTION_UUID, SPREADSHEET_CONFIG_UUID)) + mockMvc.perform(delete("/v1/studies/{studyUuid}/spreadsheet-config-collection/{collectionUuid}/spreadsheet-configs/{configId}", studyUuid, SPREADSHEET_CONFIG_COLLECTION_UUID, + SPREADSHEET_CONFIG_UUID)) .andExpect(status().isNoContent()); checkSpreadsheetCollectionUpdateMessageReceived(studyUuid); var requests = TestUtils.getRequestsDone(1, server); diff --git a/src/test/java/org/gridsuite/study/server/StateEstimationTest.java b/src/test/java/org/gridsuite/study/server/StateEstimationTest.java index 3146384540..ae6f78298f 100644 --- a/src/test/java/org/gridsuite/study/server/StateEstimationTest.java +++ b/src/test/java/org/gridsuite/study/server/StateEstimationTest.java @@ -182,13 +182,15 @@ public MockResponse dispatch(RecordedRequest request) { if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + "&receiver=.*")) { // estim with success return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), estimResultUuidStr); - } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + "&debug=true&receiver=.*")) { + } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + + "&debug=true&receiver=.*")) { // debug estim with success return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), estimResultUuidStr); } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID_2 + "&receiver=.*")) { // estim with failure input.send(MessageBuilder.withPayload("") - .setHeader("receiver", "%7B%22nodeUuid%22%3A%22" + request.getPath().split("%")[5].substring(4) + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + request.getPath().split("%")[11].substring(4) + "%22%2C%20%22userId%22%3A%22userId%22%7D") + .setHeader("receiver", "%7B%22nodeUuid%22%3A%22" + request.getPath().split("%")[5].substring(4) + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + request.getPath().split("%")[ + 11].substring(4) + "%22%2C%20%22userId%22%3A%22userId%22%7D") .build(), ESTIM_FAILED_DESTINATION); return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), estimErrorResultUuidStr); } else if (path.matches("/v1/results/" + STATE_ESTIMATION_RESULT_UUID)) { @@ -198,7 +200,8 @@ public MockResponse dispatch(RecordedRequest request) { } else if (path.matches("/v1/results/" + STATE_ESTIMATION_RESULT_UUID + "/stop.*")) { input.send(MessageBuilder.withPayload("") .setHeader("resultUuid", STATE_ESTIMATION_RESULT_UUID) - .setHeader("receiver", "%7B%22nodeUuid%22%3A%22" + request.getPath().split("%")[5].substring(4) + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + request.getPath().split("%")[11].substring(4) + "%22%2C%20%22userId%22%3A%22userId%22%7D") + .setHeader("receiver", "%7B%22nodeUuid%22%3A%22" + request.getPath().split("%")[5].substring(4) + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + request.getPath().split("%")[ + 11].substring(4) + "%22%2C%20%22userId%22%3A%22userId%22%7D") .build(), ESTIM_STOPPED_DESTINATION); return new MockResponse(200); } else if (path.matches("/v1/supervision/results-count")) { @@ -212,15 +215,15 @@ public MockResponse dispatch(RecordedRequest request) { } else if (path.matches("/v1/parameters")) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(STATE_ESTIMATION_ERROR_RESULT_UUID)); } else if (path.matches("/v1/parameters/" + STATE_ESTIMATION_PARAMETERS_UUID)) { - if (method.equals("GET")) { + if ("GET".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), estimParametersJson); } else { //Method PUT return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(STATE_ESTIMATION_PARAMETERS_UUID)); } - } else if (path.matches("/v1/parameters") && method.equals("POST")) { + } else if (path.matches("/v1/parameters") && "POST".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(STATE_ESTIMATION_PARAMETERS_UUID)); - } else if (path.matches("/v1/parameters/default") && method.equals("POST")) { + } else if (path.matches("/v1/parameters/default") && "POST".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(STATE_ESTIMATION_PARAMETERS_UUID)); } else { return new MockResponse.Builder().code(418).body("Unhandled method+path: " + request.getMethod() + " " + request.getPath()).build(); @@ -274,7 +277,9 @@ private void runEstim(final MockWebServer server, StudyNodeIds ids) throws Excep consumeEstimResult(ids, STATE_ESTIMATION_RESULT_UUID); - assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + "&receiver=.*"))); + assertTrue(TestUtils.getRequestsDone(1, + server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + + "&receiver=.*"))); } private void consumeEstimResult(StudyNodeIds ids, String resultUuid) throws JsonProcessingException { @@ -393,7 +398,9 @@ void testFailure(final MockWebServer server) throws Exception { .andExpect(status().isOk()); checkUpdateModelStatusMessagesReceived(ids.studyId, NotificationService.UPDATE_TYPE_STATE_ESTIMATION_FAILED); checkUpdateModelStatusMessagesReceived(ids.studyId, NotificationService.UPDATE_TYPE_STATE_ESTIMATION_STATUS); - assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID_2 + "&receiver=.*"))); + assertTrue(TestUtils.getRequestsDone(1, + server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID_2 + + "&receiver=.*"))); } @Test @@ -464,7 +471,9 @@ void testDebugComputation(final MockWebServer server) throws Exception { .header("userId", "userId")) .andExpect(status().isOk()); consumeEstimResult(ids, STATE_ESTIMATION_RESULT_UUID); - assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + "&debug=true&receiver=.*"))); + assertTrue(TestUtils.getRequestsDone(1, + server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?reportUuid=.*&reporterId=.*&reportType=StateEstimation&variantId=" + VARIANT_ID + + "&debug=true&receiver=.*"))); // get estim result MvcResult mvcResult = mockMvc.perform(get(STATE_ESTIMATION_URL_BASE + "result", ids.studyId, ids.rootNetworkUuid, ids.nodeId)).andExpectAll( diff --git a/src/test/java/org/gridsuite/study/server/StudyControllerDynamicMarginCalculationTest.java b/src/test/java/org/gridsuite/study/server/StudyControllerDynamicMarginCalculationTest.java index eb2fa3340a..cae955e58d 100644 --- a/src/test/java/org/gridsuite/study/server/StudyControllerDynamicMarginCalculationTest.java +++ b/src/test/java/org/gridsuite/study/server/StudyControllerDynamicMarginCalculationTest.java @@ -186,7 +186,8 @@ private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UU } private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UUID parentNodeUuid, - UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, BuildStatus buildStatus) throws Exception { + UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, + BuildStatus buildStatus) throws Exception { NetworkModificationNode modificationNode = NetworkModificationNode.builder().name(nodeName).nodeType(nodeType) .description("description").modificationGroupUuid(modificationGroupUuid).variantId(variantId) .nodeBuildStatus(NodeBuildStatus.from(buildStatus)) diff --git a/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSecurityAnalysisTest.java b/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSecurityAnalysisTest.java index 7ef16a2fde..3383cd4e04 100644 --- a/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSecurityAnalysisTest.java +++ b/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSecurityAnalysisTest.java @@ -191,7 +191,8 @@ private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UU } private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UUID parentNodeUuid, - UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, BuildStatus buildStatus) throws Exception { + UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, + BuildStatus buildStatus) throws Exception { NetworkModificationNode modificationNode = NetworkModificationNode.builder().name(nodeName).nodeType(nodeType) .description("description").modificationGroupUuid(modificationGroupUuid).variantId(variantId) .nodeBuildStatus(NodeBuildStatus.from(buildStatus)) diff --git a/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSimulationTest.java b/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSimulationTest.java index 08f49f7d66..a6d121cf0f 100644 --- a/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSimulationTest.java +++ b/src/test/java/org/gridsuite/study/server/StudyControllerDynamicSimulationTest.java @@ -217,7 +217,8 @@ private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UU } private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UUID parentNodeUuid, - UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, BuildStatus buildStatus) throws Exception { + UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, + BuildStatus buildStatus) throws Exception { NetworkModificationNode modificationNode = NetworkModificationNode.builder().name(nodeName).nodeType(nodeType) .description("description").modificationGroupUuid(modificationGroupUuid).variantId(variantId) .nodeBuildStatus(NodeBuildStatus.from(buildStatus)) diff --git a/src/test/java/org/gridsuite/study/server/StudyServiceSearchTests.java b/src/test/java/org/gridsuite/study/server/StudyServiceSearchTests.java index e146abaa44..c8fdf6bfa9 100644 --- a/src/test/java/org/gridsuite/study/server/StudyServiceSearchTests.java +++ b/src/test/java/org/gridsuite/study/server/StudyServiceSearchTests.java @@ -12,8 +12,8 @@ import org.gridsuite.study.server.dto.elasticsearch.TombstonedEquipmentInfos; import org.gridsuite.study.server.elasticsearch.EquipmentInfosService; import org.gridsuite.study.server.service.NetworkModificationTreeService; -import org.gridsuite.study.server.service.StudyService; import org.gridsuite.study.server.service.RootNetworkService; +import org.gridsuite.study.server.service.StudyService; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -21,13 +21,11 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.elasticsearch.NoSuchIndexException; import org.springframework.test.context.bean.override.mockito.MockitoBean; - import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.UUID; import java.util.stream.Stream; - import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.when; @@ -84,12 +82,18 @@ void tearDown() { @Test void searchEquipmentInfosMultiVariants() { // Initialize equipment infos initial variant - EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); - EquipmentInfos line1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l1").name("name_l1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); - EquipmentInfos line2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l2").name("name_l2").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); - EquipmentInfos twInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw1").name("name_tw1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("TWO_WINDINGS_TRANSFORMER").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl5").name("vl5").build())).build(); - EquipmentInfos load1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); - EquipmentInfos load2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId2").name("name_load2").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); + EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); + EquipmentInfos line1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l1").name("name_l1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LINE").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos line2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_l2").name("name_l2").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LINE").voltageLevels( + Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); + EquipmentInfos twInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_tw1").name("name_tw1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "TWO_WINDINGS_TRANSFORMER").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl5").name("vl5").build())).build(); + EquipmentInfos load1Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); + EquipmentInfos load2Infos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId2").name("name_load2").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); Stream.of(generatorInfos, line1Infos, line2Infos, twInfos, load1Infos, load2Infos).forEach(equipmentInfosService::addEquipmentInfos); @@ -118,8 +122,10 @@ void searchEquipmentInfosMultiVariants() { assertTrue(hits.contains(line2Infos)); // Add new equipments infos for new variant - EquipmentInfos newGeneratorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_new_g1").name("name_new_g1").variantId(VARIANT_ID).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); - EquipmentInfos newLineInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_new_l1").name("name_new_l1").variantId(VARIANT_ID).type("LINE").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos newGeneratorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_new_g1").name("name_new_g1").variantId(VARIANT_ID).type("GENERATOR").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos newLineInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_new_l1").name("name_new_l1").variantId(VARIANT_ID).type("LINE").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); Stream.of(newGeneratorInfos, newLineInfos).forEach(equipmentInfosService::addEquipmentInfos); @@ -224,7 +230,8 @@ void searchEquipmentInfosMultiVariants() { @Test void searchModifiedEquipment() { // Adding an equipment with type "LOAD" and a specific variant to the EquipmentInfosService. - EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); + EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); equipmentInfosService.addEquipmentInfos(loadInfos); // Searching for the equipment by ID and checking if the list size is 1, indicating successful retrieval. @@ -232,7 +239,8 @@ void searchModifiedEquipment() { assertEquals(1, list.size()); // Adding another version of the same equipment but with a different variant ID. - EquipmentInfos loadInfos1 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos loadInfos1 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID).type("LOAD").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); equipmentInfosService.addEquipmentInfos(loadInfos1); // Searching for the equipment by ID to check if the correct version is retrieved. @@ -241,7 +249,8 @@ void searchModifiedEquipment() { assertTrue(list.contains(loadInfos1)); // Adding a third version of the same equipment with a different variant ID. - EquipmentInfos loadInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID_2).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos loadInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID_2).type("LOAD").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); equipmentInfosService.addEquipmentInfos(loadInfos2); // Searching for the third version of the equipment and validating its presence in the results. @@ -258,8 +267,10 @@ void searchModifiedEquipment() { @Test void testSearchForModifiedEquipmentsFilteredByType() { // Adding LOAD and GENERATOR type equipment to the EquipmentInfosService with initial variant. - EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); - EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); + EquipmentInfos loadInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); + EquipmentInfos generatorInfos = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VariantManagerConstants.INITIAL_VARIANT_ID).type( + "GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl1").name("vl1").build())).build(); equipmentInfosService.addEquipmentInfos(loadInfos); equipmentInfosService.addEquipmentInfos(generatorInfos); @@ -268,8 +279,10 @@ void testSearchForModifiedEquipmentsFilteredByType() { assertEquals(1, list.size()); // Adding new versions of LOAD and GENERATOR equipment with a different variant ID. - EquipmentInfos loadInfos1 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); - EquipmentInfos generatorInfos1 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VARIANT_ID).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos loadInfos1 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID).type("LOAD").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); + EquipmentInfos generatorInfos1 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VARIANT_ID).type("GENERATOR").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl2").name("vl2").build())).build(); equipmentInfosService.addEquipmentInfos(loadInfos1); equipmentInfosService.addEquipmentInfos(generatorInfos1); @@ -284,8 +297,10 @@ void testSearchForModifiedEquipmentsFilteredByType() { assertTrue(list.contains(generatorInfos1)); // Adding another set of LOAD and GENERATOR equipment with yet another variant ID. - EquipmentInfos loadInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID_2).type("LOAD").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); - EquipmentInfos generatorInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VARIANT_ID_2).type("GENERATOR").voltageLevels(Set.of(VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); + EquipmentInfos loadInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("loadId1").name("name_load1").variantId(VARIANT_ID_2).type("LOAD").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); + EquipmentInfos generatorInfos2 = EquipmentInfos.builder().networkUuid(NETWORK_UUID).id("id_g1").name("name_g1").variantId(VARIANT_ID_2).type("GENERATOR").voltageLevels(Set.of( + VoltageLevelInfos.builder().id("vl3").name("vl3").build())).build(); equipmentInfosService.addEquipmentInfos(loadInfos2); equipmentInfosService.addEquipmentInfos(generatorInfos2); diff --git a/src/test/java/org/gridsuite/study/server/VoltageInitTest.java b/src/test/java/org/gridsuite/study/server/VoltageInitTest.java index 8d63096edb..3b20f43163 100644 --- a/src/test/java/org/gridsuite/study/server/VoltageInitTest.java +++ b/src/test/java/org/gridsuite/study/server/VoltageInitTest.java @@ -166,7 +166,8 @@ class VoltageInitTest { private static final String VOLTAGE_INIT_RESULT_JSON = "{\"version\":\"1.0\"}"; - private static final String VOLTAGE_INIT_PREVIEW_MODIFICATION_LIST = "[{\"type\": \"VOLTAGE_INIT_MODIFICATION\",\"uuid\": \"254a3b85-14ad-4436-bf62-3e60af831dd1\",\"date\": \"2023-09-18T10:58:32.582239Z\",\"stashed\": false,\"generators\": [],\"transformers\": [],\"staticVarCompensators\": [],\"vscConverterStations\": [],\"shuntCompensators\": []}]"; + private static final String VOLTAGE_INIT_PREVIEW_MODIFICATION_LIST = "[{\"type\": \"VOLTAGE_INIT_MODIFICATION\",\"uuid\": \"254a3b85-14ad-4436-bf62-3e60af831dd1\",\"date\": " + + "\"2023-09-18T10:58:32.582239Z\",\"stashed\": false,\"generators\": [],\"transformers\": [],\"staticVarCompensators\": [],\"vscConverterStations\": [],\"shuntCompensators\": []}]"; private static final String VOLTAGE_INIT_STATUS_JSON = "{\"status\":\"COMPLETED\"}"; @@ -183,8 +184,10 @@ class VoltageInitTest { private static final String PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING = "1cec4a7b-ab7e-4d78-9dd7-ce73c5ef11d9"; private static final String PROFILE_VOLTAGE_INIT_DUPLICATED_PARAMETERS_UUID_STRING = "a4ce25e1-59a7-401d-abb1-04425fe24587"; private static final String USER_PROFILE_NO_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile No params\"}"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a804-e631246d42d6\",\"name\":\"Profile with valid params\",\"voltageInitParameterId\":\"" + PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; - private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a804-e631246d42d6\",\"name\":\"Profile with broken params\",\"voltageInitParameterId\":\"" + PROFILE_VOLTAGE_INIT_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a804-e631246d42d6\",\"name\":\"Profile with valid params\",\"voltageInitParameterId\":\"" + + PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; + private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a804-e631246d42d6\",\"name\":\"Profile with broken params\",\"voltageInitParameterId\":\"" + + PROFILE_VOLTAGE_INIT_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; private static final String DUPLICATED_PARAMS_JSON = "\"" + PROFILE_VOLTAGE_INIT_DUPLICATED_PARAMETERS_UUID_STRING + "\""; private String voltageInitDefaultParametersJson; private String voltageInitUpdatedParametersJson; @@ -324,9 +327,11 @@ public MockResponse dispatch(RecordedRequest request) { String method = Objects.requireNonNull(request.getMethod()); if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_3 + "&rootNetworkName=.*&nodeName=.*")) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), voltageInitResultUuidStr2); - } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_2 + ".*" + "&rootNetworkName=.*&nodeName=.*")) { + } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_2 + ".*" + + "&rootNetworkName=.*&nodeName=.*")) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), voltageInitResultUuidStr); - } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID + "&rootNetworkName=.*&nodeName=.*")) { + } else if (path.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID + + "&rootNetworkName=.*&nodeName=.*")) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), voltageInitErrorResultUuidStr); } else if (path.matches("/v1/results/" + VOLTAGE_INIT_RESULT_UUID)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), VOLTAGE_INIT_RESULT_JSON); @@ -340,7 +345,8 @@ public MockResponse dispatch(RecordedRequest request) { Optional networkModificationResult = createModificationResultWithElementImpact(SimpleImpactType.MODIFICATION, IdentifiableType.GENERATOR, "genId", Set.of("s1")); - return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(new NetworkModificationsResult(List.of(VOLTAGE_INIT_MODIFICATION_UUID), List.of(networkModificationResult)))); + return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), + objectMapper.writeValueAsString(new NetworkModificationsResult(List.of(VOLTAGE_INIT_MODIFICATION_UUID), List.of(networkModificationResult)))); } else if (path.matches("/v1/groups/" + MODIFICATIONS_GROUP_UUID + "/network-modifications\\?errorOnGroupNotFound=false&onlyStashed=false&onlyMetadata=.*")) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(VOLTAGE_INIT_PREVIEW_MODIFICATION_LIST)); } else if (path.matches("/v1/results/" + VOLTAGE_INIT_RESULT_UUID + "/stop.*") @@ -348,7 +354,8 @@ public MockResponse dispatch(RecordedRequest request) { String resultUuid = path.matches(".*variantId=" + VARIANT_ID_2 + ".*") ? VOLTAGE_INIT_OTHER_NODE_RESULT_UUID : VOLTAGE_INIT_RESULT_UUID; input.send(MessageBuilder.withPayload("") .setHeader("resultUuid", resultUuid) - .setHeader("receiver", "%7B%22nodeUuid%22%3A%22" + request.getPath().split("%")[5].substring(4) + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + request.getPath().split("%")[11].substring(4) + "%22%2C%20%22userId%22%3A%22userId%22%7D") + .setHeader("receiver", "%7B%22nodeUuid%22%3A%22" + request.getPath().split("%")[5].substring(4) + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + request.getPath().split("%")[ + 11].substring(4) + "%22%2C%20%22userId%22%3A%22userId%22%7D") .build(), voltageInitStoppedDestination); return new MockResponse(200); } else if (path.matches("/v1/results/" + VOLTAGE_INIT_CANCEL_FAILED_UUID + "/stop.*")) { @@ -380,28 +387,28 @@ public MockResponse dispatch(RecordedRequest request) { } else if (path.matches("/v1/users/" + INVALID_PARAMS_IN_PROFILE_USER_ID + "/profile")) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), USER_PROFILE_INVALID_PARAMS_JSON); } else if (path.matches("/v1/parameters/" + VOLTAGE_INIT_PARAMETERS_UUID)) { - if (method.equals("GET")) { + if ("GET".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), voltageInitDefaultParametersJson); } else { //Method PUT return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(VOLTAGE_INIT_PARAMETERS_UUID)); } - } else if (path.matches("/v1/parameters\\?duplicateFrom=" + PROFILE_VOLTAGE_INIT_INVALID_PARAMETERS_UUID_STRING) && method.equals("POST")) { + } else if (path.matches("/v1/parameters\\?duplicateFrom=" + PROFILE_VOLTAGE_INIT_INVALID_PARAMETERS_UUID_STRING) && "POST".equals(method)) { // params duplication request KO return new MockResponse(404); - } else if (path.matches("/v1/parameters/" + PROFILE_VOLTAGE_INIT_INVALID_PARAMETERS_UUID_STRING) && method.equals("GET")) { + } else if (path.matches("/v1/parameters/" + PROFILE_VOLTAGE_INIT_INVALID_PARAMETERS_UUID_STRING) && "GET".equals(method)) { return new MockResponse(404); - } else if (path.matches("/v1/parameters\\?duplicateFrom=" + PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING) && method.equals("POST")) { + } else if (path.matches("/v1/parameters\\?duplicateFrom=" + PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING) && "POST".equals(method)) { // params duplication request OK return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), DUPLICATED_PARAMS_JSON); - } else if (path.matches("/v1/parameters/" + PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING) && method.equals("GET")) { + } else if (path.matches("/v1/parameters/" + PROFILE_VOLTAGE_INIT_VALID_PARAMETERS_UUID_STRING) && "GET".equals(method)) { // profile params get request OK return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), voltageInitUpdatedParametersJson); - } else if (path.matches("/v1/parameters") && method.equals("POST")) { + } else if (path.matches("/v1/parameters") && "POST".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(VOLTAGE_INIT_PARAMETERS_UUID)); - } else if (path.matches("/v1/parameters/default") && method.equals("POST")) { + } else if (path.matches("/v1/parameters/default") && "POST".equals(method)) { return new MockResponse(200, Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), objectMapper.writeValueAsString(VOLTAGE_INIT_PARAMETERS_UUID)); - } else if (path.matches("/v1/network-modifications/index\\?networkUuid=.*") && method.equals("DELETE")) { + } else if (path.matches("/v1/network-modifications/index\\?networkUuid=.*") && "DELETE".equals(method)) { return new MockResponse(200); } else { LOGGER.error("Unhandled method+path: {} {}", request.getMethod(), request.getPath()); @@ -520,7 +527,8 @@ void testApplyModificationsWhenParameterIsActivated(final MockWebServer server) UUID.randomUUID(), VARIANT_ID_2, "node 1"); //run a voltage init analysis mockMvc.perform( - put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/run", studyEntity.getId(), firstRootNetworkUuid, modificationNode1.getId()).header("userId", "userId") + put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/run", studyEntity.getId(), firstRootNetworkUuid, modificationNode1.getId()).header("userId", + "userId") ) .andExpect(status().isOk()); @@ -573,22 +581,27 @@ void testVoltageInit(final MockWebServer server) throws Exception { consumeVoltageInitResult(studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid, VOLTAGE_INIT_RESULT_UUID, true); - assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_2 + "&debug=true&rootNetworkName=.*&nodeName=.*"))); + assertTrue(TestUtils.getRequestsDone(1, + server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_2 + + "&debug=true&rootNetworkName=.*&nodeName=.*"))); // get voltage init result - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/result", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/result", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode3Uuid)).andExpectAll( status().isOk(), content().string(VOLTAGE_INIT_RESULT_JSON)); TestUtils.assertRequestMatches("GET", "/v1/results/" + VOLTAGE_INIT_RESULT_UUID, server); // get voltage init result with globalFilters - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/result?globalFilters=ss", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/result?globalFilters=ss", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode3Uuid)).andExpectAll( status().isOk(), content().string(VOLTAGE_INIT_RESULT_JSON)); TestUtils.assertRequestMatches("GET", "/v1/results/" + VOLTAGE_INIT_RESULT_UUID + "\\?globalFilters=.*\\&networkUuid=.*\\&variantId=.*", server); // get voltage init status - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/status", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/status", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode3Uuid)).andExpectAll( status().isOk(), content().string(VOLTAGE_INIT_STATUS_JSON)); @@ -625,7 +638,8 @@ void testVoltageInit(final MockWebServer server) throws Exception { consumeVoltageInitFailed(studyNameUserIdUuid, firstRootNetworkUuid, modificationNode2Uuid); assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> - r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&reportType=VoltageInit¶metersUuid=.*&variantId=" + VARIANT_ID + "&rootNetworkName=.*&nodeName=.*") + r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&reportType=VoltageInit¶metersUuid=.*&variantId=" + VARIANT_ID + + "&rootNetworkName=.*&nodeName=.*") )); testResultCount(server); //Test result count @@ -634,7 +648,8 @@ void testVoltageInit(final MockWebServer server) throws Exception { private void consumeVoltageInitResult(UUID studyUuid, UUID rootNetworkUuid, UUID nodeUuid, String resultUuid, boolean debug) throws Exception { String resultUuidJson = objectMapper.writeValueAsString(new NodeReceiver(nodeUuid, rootNetworkUuid)); - MessageHeaders messageHeaders = new MessageHeaders(Map.of("resultUuid", resultUuid, HEADER_REACTIVE_SLACKS_OVER_THRESHOLD, Boolean.TRUE, HEADER_REACTIVE_SLACKS_THRESHOLD_VALUE, 10., HEADER_VOLTAGE_LEVEL_LIMITS_OUT_OF_NOMINAL_VOLTAGE_RANGE, Boolean.TRUE, HEADER_RECEIVER, resultUuidJson)); + MessageHeaders messageHeaders = new MessageHeaders(Map.of("resultUuid", resultUuid, HEADER_REACTIVE_SLACKS_OVER_THRESHOLD, Boolean.TRUE, HEADER_REACTIVE_SLACKS_THRESHOLD_VALUE, 10., + HEADER_VOLTAGE_LEVEL_LIMITS_OUT_OF_NOMINAL_VOLTAGE_RANGE, Boolean.TRUE, HEADER_RECEIVER, resultUuidJson)); voltageInitResultConsumer.consumeVoltageInitResult().accept(MessageBuilder.createMessage("", messageHeaders)); @@ -687,7 +702,9 @@ void testVoltageInitCancelFail(final MockWebServer server) throws Exception { mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/run", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode4Uuid) .header("userId", "userId")) .andExpect(status().isOk()); - assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_3 + "&rootNetworkName=.*&nodeName=.*"))); + assertTrue(TestUtils.getRequestsDone(1, + server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_3 + + "&rootNetworkName=.*&nodeName=.*"))); consumeVoltageInitResult(studyNameUserIdUuid, firstRootNetworkUuid, modificationNode4Uuid, VOLTAGE_INIT_CANCEL_FAILED_UUID, false); @@ -705,19 +722,23 @@ void testInsertVoltageInitModifications(final MockWebServer server) throws Excep UUID studyNameUserIdUuid = studyEntity.getId(); UUID firstRootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid); UUID rootNodeUuid = getRootNode(studyNameUserIdUuid).getId(); - NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 1", NetworkModificationNodeType.CONSTRUCTION, BuildStatus.BUILT); + NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 1", NetworkModificationNodeType.CONSTRUCTION, + BuildStatus.BUILT); UUID modificationNode1Uuid = modificationNode1.getId(); - NetworkModificationNode modificationNode2 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode1Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 2", NetworkModificationNodeType.CONSTRUCTION, BuildStatus.BUILT); + NetworkModificationNode modificationNode2 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode1Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 2", + NetworkModificationNodeType.CONSTRUCTION, BuildStatus.BUILT); UUID modificationNode2Uuid = modificationNode2.getId(); - NetworkModificationNode modificationNode3 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode2Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 3", NetworkModificationNodeType.SECURITY, BuildStatus.BUILT); + NetworkModificationNode modificationNode3 = createNetworkModificationNode(studyNameUserIdUuid, modificationNode2Uuid, UUID.randomUUID(), VARIANT_ID_2, "node 3", + NetworkModificationNodeType.SECURITY, BuildStatus.BUILT); UUID modificationNode3Uuid = modificationNode3.getId(); // run a voltage init analysis on a security node (modificationNode2Uuid) runVoltageInit(studyNameUserIdUuid, modificationNode3Uuid, firstRootNetworkUuid, server); // clone and insert voltage-init modification to modificationNode3Uuid - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid) + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode3Uuid) .header("userId", "userId")).andExpect(status().isOk()); assertTrue(TestUtils.getRequestsDone(4, server).stream().allMatch(r -> r.matches("/v1/results/" + VOLTAGE_INIT_RESULT_UUID + "/modifications-group-uuid") || @@ -731,7 +752,8 @@ void testInsertVoltageInitModifications(final MockWebServer server) throws Excep // clone and insert again voltage-init modification to modificationNode3Uuid, with LF result -> node is invalidated when(loadFlowService.getLoadFlowStatus(any())).thenReturn(LoadFlowStatus.CONVERGED); when(networkModificationService.duplicateModificationsFromGroup(any(), any(), any())).thenReturn(null); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode3Uuid) + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode3Uuid) .header("userId", "userId")).andExpect(status().isOk()); assertTrue(TestUtils.getRequestsDone(7, server).stream().allMatch(r -> r.matches("/v1/results/" + VOLTAGE_INIT_RESULT_UUID + "/modifications-group-uuid") || @@ -749,7 +771,8 @@ void testInsertVoltageInitModifications(final MockWebServer server) throws Excep runVoltageInit(studyNameUserIdUuid, modificationNode2Uuid, firstRootNetworkUuid, server); // clone and insert voltage-init modification in a construction node (modificationNode2Uuid) -> invalidate only children (modificationNode3Uuid) - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode2Uuid) + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode2Uuid) .header("userId", "userId")).andExpect(status().isOk()); assertTrue(TestUtils.getRequestsDone(5, server).stream().allMatch(r -> r.matches("/v1/results/" + VOLTAGE_INIT_RESULT_UUID + "/modifications-group-uuid") || @@ -763,7 +786,8 @@ void testInsertVoltageInitModifications(final MockWebServer server) throws Excep // clone and insert again voltage-init modification to modificationNode2Uuid, with LF result-> invalidate only children (construction node) when(loadFlowService.getLoadFlowStatus(any())).thenReturn(LoadFlowStatus.CONVERGED); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode2Uuid) + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode2Uuid) .header("userId", "userId")).andExpect(status().isOk()); assertTrue(TestUtils.getRequestsDone(5, server).stream().allMatch(r -> r.matches("/v1/results/" + VOLTAGE_INIT_RESULT_UUID + "/modifications-group-uuid") || @@ -788,7 +812,8 @@ private void runVoltageInit(UUID studyUuid, UUID nodeUuuid, UUID rootNetworkUuid consumeVoltageInitResult(studyUuid, rootNetworkUuid, nodeUuuid, VOLTAGE_INIT_RESULT_UUID, false); assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> - r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&reportType=VoltageInit¶metersUuid=.*&variantId=" + VARIANT_ID_2 + "&rootNetworkName=.*&nodeName=.*") + r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&reportType=VoltageInit¶metersUuid=.*&variantId=" + VARIANT_ID_2 + + "&rootNetworkName=.*&nodeName=.*") )); // just retrieve modifications list from modificationNode3Uuid @@ -846,7 +871,9 @@ void testInsertVoltageInitModificationsWithTwoRootNetworks(final MockWebServer s consumeVoltageInitResult(studyUuid, firstRootNetworkUuid, nodeUuid, VOLTAGE_INIT_RESULT_UUID, false); - assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_2 + "&rootNetworkName=.*&nodeName=.*"))); + assertTrue(TestUtils.getRequestsDone(1, + server).stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&variantId=" + VARIANT_ID_2 + + "&rootNetworkName=.*&nodeName=.*"))); // clone and insert voltage-init modification mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications/voltage-init", studyUuid, firstRootNetworkUuid, nodeUuid) @@ -886,7 +913,9 @@ NodeEntity insertRootNode(StudyEntity study, UUID nodeId) { private NodeEntity insertNode(StudyEntity study, NodeEntity parentNode, String firstVariantId, String secondVariantId, RootNetworkEntity firstRootNetworkEntity, RootNetworkEntity secondRootNetworkEntity) { NodeEntity nodeEntity = nodeRepository.save(new NodeEntity(null, parentNode, NodeType.NETWORK_MODIFICATION, study, false, null, new ArrayList<>())); - NetworkModificationNodeInfoEntity modificationNodeInfoEntity = networkModificationNodeInfoRepository.save(NetworkModificationNodeInfoEntity.builder().idNode(nodeEntity.getIdNode()).name("node").modificationGroupUuid(UUID.randomUUID()).nodeType(NetworkModificationNodeType.SECURITY).build()); + NetworkModificationNodeInfoEntity modificationNodeInfoEntity = networkModificationNodeInfoRepository.save( + NetworkModificationNodeInfoEntity.builder().idNode(nodeEntity.getIdNode()).name("node").modificationGroupUuid(UUID.randomUUID()).nodeType(NetworkModificationNodeType.SECURITY).build( + )); createNodeLinks(firstRootNetworkEntity, modificationNodeInfoEntity, firstVariantId, UUID.randomUUID(), BuildStatus.BUILT); createNodeLinks(secondRootNetworkEntity, modificationNodeInfoEntity, secondVariantId, UUID.randomUUID(), BuildStatus.NOT_BUILT); rootNetworkRepository.save(firstRootNetworkEntity); @@ -897,7 +926,8 @@ private NodeEntity insertNode(StudyEntity study, NodeEntity parentNode, String f // We can't use the method RootNetworkNodeInfoService::createNodeLinks because there is no transaction in a session private void createNodeLinks(RootNetworkEntity rootNetworkEntity, NetworkModificationNodeInfoEntity modificationNodeInfoEntity, String variantId, UUID reportUuid, BuildStatus buildStatus) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = RootNetworkNodeInfoEntity.builder().variantId(variantId).modificationReports(Map.of(modificationNodeInfoEntity.getId(), reportUuid)).nodeBuildStatus(NodeBuildStatus.from(buildStatus).toEntity()).build(); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = RootNetworkNodeInfoEntity.builder().variantId(variantId).modificationReports(Map.of(modificationNodeInfoEntity.getId(), + reportUuid)).nodeBuildStatus(NodeBuildStatus.from(buildStatus).toEntity()).build(); modificationNodeInfoEntity.addRootNetworkNodeInfo(rootNetworkNodeInfoEntity); rootNetworkEntity.addRootNetworkNodeInfo(rootNetworkNodeInfoEntity); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); @@ -1052,11 +1082,13 @@ void testNoResult() throws Exception { UUID modificationNode1Uuid = modificationNode1.getId(); // No voltage init result - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/result", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/result", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid)).andExpectAll( status().isNoContent()); // No voltage init status - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/status", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/voltage-init/status", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid)).andExpectAll( status().isNoContent()); // stop non-existing voltage init analysis @@ -1115,7 +1147,8 @@ void testResetVoltageInitParametersUserHasValidParamsInProfile(final MockWebServ createOrUpdateParametersAndDoChecks(studyUuid, null, VALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.OK); var requests = TestUtils.getRequestsDone(5, server); - assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&reportType=VoltageInit¶metersUuid=.*&variantId=variant_1&rootNetworkName=rootNetworkName&nodeName=.*"))); + assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/networks/" + NETWORK_UUID_STRING + + "/run-and-save\\?receiver=.*&reportUuid=.*&reporterId=.*&reportType=VoltageInit¶metersUuid=.*&variantId=variant_1&rootNetworkName=rootNetworkName&nodeName=.*"))); assertTrue(requests.stream().anyMatch(r -> r.matches("/v1/results/invalidate-status\\?resultUuid=.*"))); // result has been invalidated by params reset assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/users/" + VALID_PARAMS_IN_PROFILE_USER_ID + "/profile"))); assertTrue(requests.stream().anyMatch(r -> r.equals("/v1/parameters/" + VOLTAGE_INIT_PARAMETERS_UUID_STRING))); @@ -1156,7 +1189,8 @@ private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UU } private NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UUID parentNodeUuid, - UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, BuildStatus buildStatus) throws Exception { + UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, + BuildStatus buildStatus) throws Exception { NetworkModificationNode modificationNode = NetworkModificationNode.builder().name(nodeName) .description("description").modificationGroupUuid(modificationGroupUuid).variantId(variantId) .nodeType(nodeType) diff --git a/src/test/java/org/gridsuite/study/server/dto/modification/VoltageLevelCreationInfos.java b/src/test/java/org/gridsuite/study/server/dto/modification/VoltageLevelCreationInfos.java index bc64f6c2cc..d63fadae7c 100644 --- a/src/test/java/org/gridsuite/study/server/dto/modification/VoltageLevelCreationInfos.java +++ b/src/test/java/org/gridsuite/study/server/dto/modification/VoltageLevelCreationInfos.java @@ -6,14 +6,13 @@ */ package org.gridsuite.study.server.dto.modification; -import java.util.List; - import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import lombok.ToString; import lombok.experimental.SuperBuilder; +import java.util.List; /** * @author Laurent GARNIER diff --git a/src/test/java/org/gridsuite/study/server/Impacts/NetworkImpactTest.java b/src/test/java/org/gridsuite/study/server/impacts/NetworkImpactTest.java similarity index 91% rename from src/test/java/org/gridsuite/study/server/Impacts/NetworkImpactTest.java rename to src/test/java/org/gridsuite/study/server/impacts/NetworkImpactTest.java index da9c6388ae..91e6049a2c 100644 --- a/src/test/java/org/gridsuite/study/server/Impacts/NetworkImpactTest.java +++ b/src/test/java/org/gridsuite/study/server/impacts/NetworkImpactTest.java @@ -4,7 +4,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -package org.gridsuite.study.server.Impacts; +package org.gridsuite.study.server.impacts; import com.fasterxml.jackson.databind.ObjectMapper; import com.powsybl.iidm.network.IdentifiableType; @@ -51,11 +51,16 @@ void testNetworkModificationResult() throws Exception { List impacts = List.of(creationImpact, modificationImpact, injectionDeletionImpact, substationModificationImpact, substationDeletionImpact); - assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"LINE\",\"simpleImpactType\":\"CREATION\",\"elementId\":\"lineId\",\"substationIds\":[\"s1\",\"s2\"]}", mapper.writeValueAsString(creationImpact)); - assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"LOAD\",\"simpleImpactType\":\"MODIFICATION\",\"elementId\":\"loadId\",\"substationIds\":[\"s3\"]}", mapper.writeValueAsString(modificationImpact)); - assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"GENERATOR\",\"simpleImpactType\":\"DELETION\",\"elementId\":\"generatorId\",\"substationIds\":[\"s4\"]}", mapper.writeValueAsString(injectionDeletionImpact)); - assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"SUBSTATION\",\"simpleImpactType\":\"MODIFICATION\",\"elementId\":\"substationId1\",\"substationIds\":[\"substationId1\"]}", mapper.writeValueAsString(substationModificationImpact)); - assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"SUBSTATION\",\"simpleImpactType\":\"DELETION\",\"elementId\":\"substationId2\",\"substationIds\":[\"substationId2\"]}", mapper.writeValueAsString(substationDeletionImpact)); + assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"LINE\",\"simpleImpactType\":\"CREATION\",\"elementId\":\"lineId\",\"substationIds\":[\"s1\",\"s2\"]}", + mapper.writeValueAsString(creationImpact)); + assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"LOAD\",\"simpleImpactType\":\"MODIFICATION\",\"elementId\":\"loadId\",\"substationIds\":[\"s3\"]}", + mapper.writeValueAsString(modificationImpact)); + assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"GENERATOR\",\"simpleImpactType\":\"DELETION\",\"elementId\":\"generatorId\",\"substationIds\":[\"s4\"]}", + mapper.writeValueAsString(injectionDeletionImpact)); + assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"SUBSTATION\",\"simpleImpactType\":\"MODIFICATION\",\"elementId\":\"substationId1\",\"substationIds\":[\"substationId1\"]}", + mapper.writeValueAsString(substationModificationImpact)); + assertEquals("{\"type\":\"SIMPLE\",\"elementType\":\"SUBSTATION\",\"simpleImpactType\":\"DELETION\",\"elementId\":\"substationId2\",\"substationIds\":[\"substationId2\"]}", + mapper.writeValueAsString(substationDeletionImpact)); NetworkModificationResult result = NetworkModificationResult.builder() .applicationStatus(ApplicationStatus.ALL_OK) @@ -76,7 +81,8 @@ void testNetworkModificationResult() throws Exception { Set impactsSet = Set.copyOf(List.of(creationImpact, creationImpact, creationImpact)); - assertEquals("[{\"type\":\"SIMPLE\",\"elementType\":\"LINE\",\"simpleImpactType\":\"CREATION\",\"elementId\":\"lineId\",\"substationIds\":[\"s1\",\"s2\"]}]", mapper.writeValueAsString(impactsSet)); + assertEquals("[{\"type\":\"SIMPLE\",\"elementType\":\"LINE\",\"simpleImpactType\":\"CREATION\",\"elementId\":\"lineId\",\"substationIds\":[\"s1\",\"s2\"]}]", + mapper.writeValueAsString(impactsSet)); } @Test diff --git a/src/test/java/org/gridsuite/study/server/loadflow/LoadFLowIntegrationTest.java b/src/test/java/org/gridsuite/study/server/loadflow/LoadFLowIntegrationTest.java index 9a70fe8418..5a4ff8a1d0 100644 --- a/src/test/java/org/gridsuite/study/server/loadflow/LoadFLowIntegrationTest.java +++ b/src/test/java/org/gridsuite/study/server/loadflow/LoadFLowIntegrationTest.java @@ -30,8 +30,8 @@ import org.gridsuite.study.server.repository.voltageinit.StudyVoltageInitParametersEntity; import org.gridsuite.study.server.service.*; import org.gridsuite.study.server.utils.TestUtils; -import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; +import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -50,10 +50,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; - import java.util.*; import java.util.stream.Stream; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.gridsuite.study.server.StudyConstants.*; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -293,9 +291,11 @@ private StudyEntity insertStudy() { .build(); } - private UUID insertNode(StudyEntity study, String variantId, UUID reportUuid, NodeEntity parentNode, RootNetworkEntity rootNetworkEntity, BuildStatus buildStatus, NetworkModificationNodeType nodeType) { + private UUID insertNode(StudyEntity study, String variantId, UUID reportUuid, NodeEntity parentNode, RootNetworkEntity rootNetworkEntity, BuildStatus buildStatus, NetworkModificationNodeType + nodeType) { NodeEntity nodeEntity = nodeRepository.save(new NodeEntity(null, parentNode, NodeType.NETWORK_MODIFICATION, study, false, null, new ArrayList<>())); - NetworkModificationNodeInfoEntity modificationNodeInfoEntity = networkModificationNodeInfoRepository.save(NetworkModificationNodeInfoEntity.builder().idNode(nodeEntity.getIdNode()).modificationGroupUuid(UUID.randomUUID()).nodeType(nodeType).build()); + NetworkModificationNodeInfoEntity modificationNodeInfoEntity = networkModificationNodeInfoRepository.save( + NetworkModificationNodeInfoEntity.builder().idNode(nodeEntity.getIdNode()).modificationGroupUuid(UUID.randomUUID()).nodeType(nodeType).build()); createNodeLinks(rootNetworkEntity, modificationNodeInfoEntity, variantId, reportUuid, buildStatus); return nodeEntity.getIdNode(); } @@ -303,7 +303,8 @@ private UUID insertNode(StudyEntity study, String variantId, UUID reportUuid, No // We can't use the method RootNetworkNodeInfoService::createNodeLinks because there is no transaction in a session private void createNodeLinks(RootNetworkEntity rootNetworkEntity, NetworkModificationNodeInfoEntity modificationNodeInfoEntity, String variantId, UUID reportUuid, BuildStatus buildStatus) { - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = RootNetworkNodeInfoEntity.builder().variantId(variantId).modificationReports(Map.of(modificationNodeInfoEntity.getId(), reportUuid)).nodeBuildStatus(NodeBuildStatus.from(buildStatus).toEntity()).blockedNode(false).build(); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity = RootNetworkNodeInfoEntity.builder().variantId(variantId).modificationReports(Map.of(modificationNodeInfoEntity.getId(), + reportUuid)).nodeBuildStatus(NodeBuildStatus.from(buildStatus).toEntity()).blockedNode(false).build(); modificationNodeInfoEntity.addRootNetworkNodeInfo(rootNetworkNodeInfoEntity); rootNetworkEntity.addRootNetworkNodeInfo(rootNetworkNodeInfoEntity); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity); diff --git a/src/test/java/org/gridsuite/study/server/loadflow/LoadFlowTest.java b/src/test/java/org/gridsuite/study/server/loadflow/LoadFlowTest.java index f1cc956e65..e2d342ccf6 100644 --- a/src/test/java/org/gridsuite/study/server/loadflow/LoadFlowTest.java +++ b/src/test/java/org/gridsuite/study/server/loadflow/LoadFlowTest.java @@ -120,8 +120,10 @@ class LoadFlowTest { private static final String VALID_PARAMS_IN_PROFILE_USER_ID = "validParamInProfileUser"; private static final String INVALID_PARAMS_IN_PROFILE_USER_ID = "invalidParamInProfileUser"; private static final String USER_PROFILE_NO_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile No params\"}"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"loadFlowParameterId\":\"" + PROFILE_LOADFLOW_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; - private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"loadFlowParameterId\":\"" + PROFILE_LOADFLOW_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"loadFlowParameterId\":\"" + + PROFILE_LOADFLOW_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; + private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"loadFlowParameterId\":\"" + + PROFILE_LOADFLOW_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; private static final UUID LOADFLOW_PARAMETERS_UUID = UUID.fromString(LOADFLOW_PARAMETERS_UUID_STRING); @@ -137,10 +139,13 @@ class LoadFlowTest { private static final String DEFAULT_PROVIDER = "defaultProvider"; + @SuppressWarnings("checkstyle:AbbreviationAsWordInName") private static String LIMIT_VIOLATIONS_JSON; + @SuppressWarnings("checkstyle:AbbreviationAsWordInName") private static String COMPUTING_STATUS_JSON; + @SuppressWarnings("checkstyle:AbbreviationAsWordInName") private static String LOADFLOW_DEFAULT_PARAMETERS_JSON; //output destinations @@ -351,7 +356,8 @@ private void testLoadFlow(UUID studyNameUserIdUuid, NetworkModificationNode modi wireMockStubs.loadflowServer.stubGetLoadflowResult(loadflowResultUuid, TestUtils.resourceToString("/loadflow-result.json")); // get loadflow result - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/result", studyNameUserIdUuid, firstRootNetworkUuid, modificationNodeUuid)).andExpectAll( + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/result", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNodeUuid)).andExpectAll( status().isOk()).andReturn(); assertEquals(TestUtils.resourceToString("/loadflow-result.json"), mvcResult.getResponse().getContentAsString()); @@ -360,7 +366,8 @@ private void testLoadFlow(UUID studyNameUserIdUuid, NetworkModificationNode modi // get loadflow status wireMockStubs.loadflowServer.stubGetLoadflowStatus(loadflowResultUuid, objectMapper.writeValueAsString(LoadFlowStatus.CONVERGED), false); - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/status?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, firstRootNetworkUuid, modificationNodeUuid, false)) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/status?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, + firstRootNetworkUuid, modificationNodeUuid, false)) .andExpect(status().isOk()) .andReturn(); assertEquals(LoadFlowStatus.CONVERGED.name(), mvcResult.getResponse().getContentAsString()); @@ -368,7 +375,8 @@ private void testLoadFlow(UUID studyNameUserIdUuid, NetworkModificationNode modi // stop loadflow wireMockStubs.loadflowServer.stubStopLoadflow(loadflowResultUuid, modificationNodeUuid, firstRootNetworkUuid, objectMapper.writeValueAsString(LoadFlowStatus.CONVERGED)); - mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/stop?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, firstRootNetworkUuid, modificationNodeUuid, false) + mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/stop?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, + firstRootNetworkUuid, modificationNodeUuid, false) .header(HEADER_USER_ID, "userId")) .andExpect(status().isOk()); wireMockStubs.loadflowServer.verifyStopLoadflow(loadflowResultUuid); @@ -433,14 +441,16 @@ void testGetLimitViolations() throws Exception { wireMockStubs.loadflowServer.stubGetLimitViolation(LOADFLOW_RESULT_UUID, LIMIT_VIOLATIONS_JSON, false); // get limit violations - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/limit-violations", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/limit-violations", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid)).andExpectAll( status().isOk(), content().string(LIMIT_VIOLATIONS_JSON)); wireMockStubs.loadflowServer.verifyGetLimitViolation(LOADFLOW_RESULT_UUID, false); wireMockStubs.loadflowServer.stubGetLimitViolation(LOADFLOW_RESULT_UUID, LIMIT_VIOLATIONS_JSON, true); // get limit violations with filters, globalFilters and sort - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/limit-violations?filters=lineId2&sort=subjectId,ASC&globalFilters=ss", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/limit-violations?filters=lineId2&sort=subjectId,ASC&globalFilters=ss", studyNameUserIdUuid, + firstRootNetworkUuid, modificationNode1Uuid)).andExpectAll( status().isOk(), content().string(LIMIT_VIOLATIONS_JSON)); wireMockStubs.loadflowServer.verifyGetLimitViolation(LOADFLOW_RESULT_UUID, true); @@ -616,15 +626,18 @@ void testNoResult() throws Exception { status().isNoContent()); // No loadflow status - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/status?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid, false)).andExpectAll( + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/status?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, + firstRootNetworkUuid, modificationNode1Uuid, false)).andExpectAll( status().isNoContent()); // stop non-existing loadflow - mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/stop?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid, false) + mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/loadflow/stop?withRatioTapChangers={withRatioTapChangers}", studyNameUserIdUuid, + firstRootNetworkUuid, modificationNode1Uuid, false) .header(HEADER_USER_ID, "userId")).andExpect(status().isOk()); } - private void updateParametersAndDoChecks(UUID studyNameUserIdUuid, String parameters, String loadflowParametersUuid, String userId, HttpStatusCode status, String returnedUserProfileJson, boolean shouldDuplicate, String duplicateFromUuid, boolean duplicateIsNotFound) throws Exception { + private void updateParametersAndDoChecks(UUID studyNameUserIdUuid, String parameters, String loadflowParametersUuid, String userId, HttpStatusCode status, String returnedUserProfileJson, + boolean shouldDuplicate, String duplicateFromUuid, boolean duplicateIsNotFound) throws Exception { wireMockStubs.loadflowServer.stubPutLoadflowParameters(loadflowParametersUuid, parameters); UUID duplicatedLoadflowParametersUuid = UUID.randomUUID(); if (parameters == null || parameters.isEmpty()) { @@ -649,7 +662,8 @@ private void updateParametersAndDoChecks(UUID studyNameUserIdUuid, String parame testMessages(studyNameUserIdUuid); } - private void updateParametersAndDoChecksForResetLoadFlowParameters(UUID studyNameUserIdUuid, String loadflowParametersUuid, String userId, String returnedUserProfileJson, String duplicateFromUuid) throws Exception { + private void updateParametersAndDoChecksForResetLoadFlowParameters(UUID studyNameUserIdUuid, String loadflowParametersUuid, String userId, String returnedUserProfileJson, + String duplicateFromUuid) throws Exception { UUID duplicatedLoadflowParametersUuid = UUID.randomUUID(); wireMockStubs.userAdminServer.stubGetUserProfile(userId, returnedUserProfileJson); wireMockStubs.loadflowServer.stubDuplicateLoadflowParameters(duplicateFromUuid, objectMapper.writeValueAsString(duplicatedLoadflowParametersUuid), false); @@ -668,7 +682,8 @@ private void updateParametersAndDoChecksForResetLoadFlowParameters(UUID studyNam testMessages(studyNameUserIdUuid); } - private void createParametersAndDoChecks(UUID studyNameUserIdUuid, String parameters, String userId, String returnedUserProfileJson, boolean shouldDuplicate, String duplicateFromUuid) throws Exception { + private void createParametersAndDoChecks(UUID studyNameUserIdUuid, String parameters, String userId, String returnedUserProfileJson, boolean shouldDuplicate, + String duplicateFromUuid) throws Exception { String createdLoadflowParametersUuid = UUID.randomUUID().toString(); wireMockStubs.loadflowServer.stubCreateLoadflowParameters(objectMapper.writeValueAsString(createdLoadflowParametersUuid)); if (parameters == null || parameters.isEmpty()) { @@ -733,14 +748,16 @@ void testResetLoadFlowParametersUserHasNoParamsInProfile() throws Exception { void testResetLoadFlowParametersUserHasInvalidParamsInProfile() throws Exception { StudyEntity studyEntity = insertDummyStudy(UUID.fromString(NETWORK_UUID_STRING), CASE_LOADFLOW_UUID, LOADFLOW_PARAMETERS_UUID); UUID studyNameUserIdUuid = studyEntity.getId(); - updateParametersAndDoChecks(studyNameUserIdUuid, null, LOADFLOW_PARAMETERS_UUID_STRING, INVALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.NO_CONTENT, USER_PROFILE_INVALID_PARAMS_JSON, true, PROFILE_LOADFLOW_INVALID_PARAMETERS_UUID_STRING, true); + updateParametersAndDoChecks(studyNameUserIdUuid, null, LOADFLOW_PARAMETERS_UUID_STRING, INVALID_PARAMS_IN_PROFILE_USER_ID, HttpStatus.NO_CONTENT, USER_PROFILE_INVALID_PARAMS_JSON, true, + PROFILE_LOADFLOW_INVALID_PARAMETERS_UUID_STRING, true); } @Test void testResetLoadFlowParametersUserHasValidParamsInProfile() throws Exception { StudyEntity studyEntity = insertDummyStudy(UUID.fromString(NETWORK_UUID_STRING), CASE_LOADFLOW_UUID, LOADFLOW_PARAMETERS_UUID); UUID studyNameUserIdUuid = studyEntity.getId(); - updateParametersAndDoChecksForResetLoadFlowParameters(studyNameUserIdUuid, LOADFLOW_PARAMETERS_UUID_STRING, VALID_PARAMS_IN_PROFILE_USER_ID, USER_PROFILE_VALID_PARAMS_JSON, PROFILE_LOADFLOW_VALID_PARAMETERS_UUID_STRING); + updateParametersAndDoChecksForResetLoadFlowParameters(studyNameUserIdUuid, LOADFLOW_PARAMETERS_UUID_STRING, VALID_PARAMS_IN_PROFILE_USER_ID, USER_PROFILE_VALID_PARAMS_JSON, + PROFILE_LOADFLOW_VALID_PARAMETERS_UUID_STRING); } @Test @@ -888,9 +905,12 @@ void testInvalidateNodesAfterLoadflow() throws Exception { checkUpdateStatusMessageReceived(studyUuid, NotificationService.UPDATE_TYPE_DYNAMIC_MARGIN_CALCULATION_STATUS); checkUpdateStatusMessageReceived(studyUuid, NotificationService.UPDATE_TYPE_COMPUTATION_PARAMETERS); - assertEquals(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT), rootNetworkNodeInfoService.getRootNetworkNodeInfo(node1.getId(), rootNetworkUuid).map(RootNetworkNodeInfoEntity::getNodeBuildStatus).orElseThrow()); - assertEquals(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT), rootNetworkNodeInfoService.getRootNetworkNodeInfo(node2.getId(), rootNetworkUuid).map(RootNetworkNodeInfoEntity::getNodeBuildStatus).orElseThrow()); - assertEquals(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT), rootNetworkNodeInfoService.getRootNetworkNodeInfo(node3.getId(), rootNetworkUuid).map(RootNetworkNodeInfoEntity::getNodeBuildStatus).orElseThrow()); + assertEquals(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT), rootNetworkNodeInfoService.getRootNetworkNodeInfo(node1.getId(), + rootNetworkUuid).map(RootNetworkNodeInfoEntity::getNodeBuildStatus).orElseThrow()); + assertEquals(NodeBuildStatusEmbeddable.from(BuildStatus.BUILT), rootNetworkNodeInfoService.getRootNetworkNodeInfo(node2.getId(), + rootNetworkUuid).map(RootNetworkNodeInfoEntity::getNodeBuildStatus).orElseThrow()); + assertEquals(NodeBuildStatusEmbeddable.from(BuildStatus.NOT_BUILT), rootNetworkNodeInfoService.getRootNetworkNodeInfo(node3.getId(), + rootNetworkUuid).map(RootNetworkNodeInfoEntity::getNodeBuildStatus).orElseThrow()); } @Test diff --git a/src/test/java/org/gridsuite/study/server/networkmodificationtree/dto/BuildStatusTest.java b/src/test/java/org/gridsuite/study/server/networkmodificationtree/dto/BuildStatusTest.java index ba3d7ddbce..14cef0ac39 100644 --- a/src/test/java/org/gridsuite/study/server/networkmodificationtree/dto/BuildStatusTest.java +++ b/src/test/java/org/gridsuite/study/server/networkmodificationtree/dto/BuildStatusTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.*; /** - * @author Florent MILLOT + * @author Florent MILLOT */ class BuildStatusTest { diff --git a/src/test/java/org/gridsuite/study/server/rootnetworks/ModificationToExcludeTest.java b/src/test/java/org/gridsuite/study/server/rootnetworks/ModificationToExcludeTest.java index 6191113769..818d865f9b 100644 --- a/src/test/java/org/gridsuite/study/server/rootnetworks/ModificationToExcludeTest.java +++ b/src/test/java/org/gridsuite/study/server/rootnetworks/ModificationToExcludeTest.java @@ -9,10 +9,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Sets; import org.gridsuite.study.server.ContextConfigurationWithTestChannel; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.*; import org.gridsuite.study.server.dto.modification.NetworkModificationResult; import org.gridsuite.study.server.dto.modification.NetworkModificationsResult; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.networkmodificationtree.dto.ExcludedNetworkModifications; import org.gridsuite.study.server.networkmodificationtree.dto.InsertMode; import org.gridsuite.study.server.networkmodificationtree.dto.NetworkModificationNode; @@ -39,10 +39,8 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.web.server.ResponseStatusException; - import java.util.*; import java.util.stream.Collectors; - import static org.assertj.core.api.Assertions.assertThat; import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND; import static org.gridsuite.study.server.utils.TestUtils.createModificationNodeInfo; @@ -140,7 +138,8 @@ void testExcludeModifications() throws Exception { Mockito.doThrow(new ResponseStatusException(HttpStatus.NOT_FOUND)).when(networkModificationService).verifyModifications(firstNode.getModificationGroupUuid(), Set.of(invalidModificationUuid)); // try to disable invalid modification - should return 404 - mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", studyEntity.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid(), firstNode.getId()) + mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", studyEntity.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid(), + firstNode.getId()) .param("uuids", invalidModificationUuid.toString()) .param("activated", Boolean.FALSE.toString()) .header(USER_ID, USER_ID)) @@ -149,19 +148,23 @@ void testExcludeModifications() throws Exception { UUID validModificationUuid = UUID.randomUUID(); Mockito.doNothing().when(networkModificationService).verifyModifications(firstNode.getModificationGroupUuid(), Set.of(validModificationUuid)); // disable modification then check it's actually stored in database - mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", studyEntity.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid(), firstNode.getId()) + mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", studyEntity.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid(), + firstNode.getId()) .param("uuids", validModificationUuid.toString()) .param("activated", Boolean.FALSE.toString()) .header(USER_ID, USER_ID)) .andExpect(status().isOk()); - assertEquals(validModificationUuid, rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude().stream().findFirst().orElseThrow()); + assertEquals(validModificationUuid, rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst( + ).rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude().stream().findFirst().orElseThrow()); // enable modification then check it's not stored in database anymore - mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", studyEntity.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid(), firstNode.getId()) + mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/network-modifications", studyEntity.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid(), + firstNode.getId()) .param("uuids", validModificationUuid.toString()) .param("activated", Boolean.TRUE.toString()) .header(USER_ID, USER_ID)) .andExpect(status().isOk()); - assertEquals(0, rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude().size()); + assertEquals(0, rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow( + ).getModificationsUuidsToExclude().size()); } @Test @@ -177,11 +180,13 @@ void testDuplicateNodeWithModificationsToExclude() { NetworkModificationNode firstNode = networkModificationTreeService.createNode(studyEntity, rootNode.getIdNode(), createModificationNodeInfo(NODE_1_NAME), InsertMode.AFTER, null); // for each RootNetworkNodeInfoEntity, set some modifications to exclude - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid( + )).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity1.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity1); - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid( + )).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity2.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_2); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity2); @@ -192,12 +197,16 @@ void testDuplicateNodeWithModificationsToExclude() { UUID duplicateNodeUuid = networkModificationTreeService.duplicateStudyNode(firstNode.getId(), rootNode.getIdNode(), InsertMode.AFTER); // get RootNetworkNodeInfoEntity of duplicate node - RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicateNodeUuid, rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); - RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicateNodeUuid, rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicateNodeUuid, + rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicateNodeUuid, + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); // assert those values are actually defined from ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP - assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), duplicateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); - assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_2.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), duplicateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); + assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), + duplicateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); + assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_2.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), + duplicateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); } @Test @@ -337,7 +346,8 @@ void testDuplicateNodeBetweenStudiesWithModificationsToExcludeForCommonTag() { .findFirst() .orElseThrow(); - RootNetworkNodeInfoEntity rnYInfoStudy2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicatedNodeUuid, rnYStudy2.rootNetworkUuid()).orElseThrow(); + RootNetworkNodeInfoEntity rnYInfoStudy2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicatedNodeUuid, rnYStudy2.rootNetworkUuid( + )).orElseThrow(); assertTrue(rnYInfoStudy2.getModificationsUuidsToExclude().contains(modificationDupliqueeUuid), "Duplicated Modification should be excluded on RN2 (tag Y)"); @@ -348,7 +358,8 @@ void testDuplicateNodeBetweenStudiesWithModificationsToExcludeForCommonTag() { .findFirst() .orElseThrow(); - RootNetworkNodeInfoEntity rnXInfoStudy2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicatedNodeUuid, rnXStudy2.rootNetworkUuid()).orElseThrow(); + RootNetworkNodeInfoEntity rnXInfoStudy2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(duplicatedNodeUuid, rnXStudy2.rootNetworkUuid( + )).orElseThrow(); assertTrue(rnXInfoStudy2.getModificationsUuidsToExclude().isEmpty(), "Modification is active on RN1 (tag X)"); } @@ -434,11 +445,13 @@ void testGetModificationsToExclude() throws Exception { NetworkModificationNode firstNode = networkModificationTreeService.createNode(studyEntity, rootNode.getIdNode(), createModificationNodeInfo(NODE_1_NAME), InsertMode.AFTER, null); // for each RootNetworkNodeInfoEntity, set some modifications to exclude - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid( + )).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity1.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity1); - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid( + )).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity2.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_2); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity2); @@ -454,9 +467,11 @@ void testGetModificationsToExclude() throws Exception { assertEquals(2, excludedNetworkModifications.size()); assertEquals(excludedNetworkModifications.getFirst().rootNetworkUuid(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()); - assertEquals(excludedNetworkModifications.getFirst().modificationUuidsToExclude(), rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude()); + assertEquals(excludedNetworkModifications.getFirst().modificationUuidsToExclude(), rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude()); assertEquals(excludedNetworkModifications.get(1).rootNetworkUuid(), rootNetworkBasicInfos.get(1).rootNetworkUuid()); - assertEquals(excludedNetworkModifications.get(1).modificationUuidsToExclude(), rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude()); + assertEquals(excludedNetworkModifications.get(1).modificationUuidsToExclude(), rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow().getModificationsUuidsToExclude()); } @Test @@ -590,11 +605,13 @@ void testDuplicateModificationWithModificationsToExclude() { NetworkModificationNode secondNode = networkModificationTreeService.createNode(studyEntity, rootNode.getIdNode(), createModificationNodeInfo(NODE_2_NAME), InsertMode.AFTER, null); // for each RootNetworkNodeInfoEntity, set some modifications to exclude - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity1.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity1); - RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetworkNodeInfoEntity2.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_2); rootNetworkNodeInfoRepository.save(rootNetworkNodeInfoEntity2); @@ -616,15 +633,19 @@ void testDuplicateModificationWithModificationsToExclude() { // test duplication on same node : node1 studyService.duplicateNetworkModifications(studyEntity.getId(), firstNode.getId(), firstNode.getId(), modificationsToDuplicate, USER_ID); - RootNetworkNodeInfoEntity upToDateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); - RootNetworkNodeInfoEntity upToDateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity upToDateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity upToDateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); assertEquals(Sets.union(expectedExcludedModification1, MODIFICATIONS_TO_EXCLUDE_RN_1), upToDateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); assertEquals(Sets.union(expectedExcludedModification2, MODIFICATIONS_TO_EXCLUDE_RN_2), upToDateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); // test duplication on different nodes : node1 -> node2 studyService.duplicateNetworkModifications(studyEntity.getId(), secondNode.getId(), firstNode.getId(), modificationsToDuplicate, USER_ID); - upToDateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNode.getId(), rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); - upToDateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + upToDateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNode.getId(), + rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + upToDateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNode.getId(), + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); assertEquals(expectedExcludedModification1, upToDateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); assertEquals(expectedExcludedModification2, upToDateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); } @@ -645,12 +666,14 @@ void testDuplicateStudyTreeWithModificationsToExclude() { NetworkModificationNode secondNode = networkModificationTreeService.createNode(studyEntity, firstNode.getId(), createModificationNodeInfo(NODE_2_NAME), InsertMode.AFTER, null); // root network 0, first node, set some excluded modifications - RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork0NodeInfo1Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetwork0NodeInfo1Entity); // root network 1, second node, set some excluded modifications - RootNetworkNodeInfoEntity rootNetwork1NodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(secondNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork1NodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(secondNode.getId(), + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork1NodeInfo2Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_2); rootNetworkNodeInfoRepository.save(rootNetwork1NodeInfo2Entity); @@ -666,12 +689,16 @@ void testDuplicateStudyTreeWithModificationsToExclude() { UUID secondNodeDuplicateUuid = networkModificationNodeInfoRepository.findAllByNodeStudyIdAndName(studyEntity.getId(), NODE_2_NAME + " (1)").getFirst().getId(); // get RootNetworkNodeInfoEntity of duplicate node - RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeDuplicateUuid, rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); - RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeDuplicateUuid, rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeDuplicateUuid, + rootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeDuplicateUuid, + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); // assert those values are actually defined from ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP - assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), duplicateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); - assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_2.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), duplicateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); + assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), + duplicateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); + assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_2.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), + duplicateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); } @Test @@ -690,12 +717,14 @@ void testDuplicateStudyWithModificationsToExclude() { NetworkModificationNode secondNode = networkModificationTreeService.createNode(studyEntity, firstNode.getId(), createModificationNodeInfo(NODE_2_NAME), InsertMode.AFTER, null); // root network 0, first node, set some excluded modifications - RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork0NodeInfo1Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetwork0NodeInfo1Entity); // root network 1, second node, set some excluded modifications - RootNetworkNodeInfoEntity rootNetwork1NodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(secondNode.getId(), rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork1NodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(secondNode.getId(), + rootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork1NodeInfo2Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_2); rootNetworkNodeInfoRepository.save(rootNetwork1NodeInfo2Entity); @@ -717,12 +746,16 @@ void testDuplicateStudyWithModificationsToExclude() { UUID secondNodeDuplicateUuid = networkModificationNodeInfoRepository.findAllByNodeStudyIdAndName(newStudyUuid, NODE_2_NAME).getFirst().getId(); // get RootNetworkNodeInfoEntity of duplicate node - RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeDuplicateUuid, newStudyRootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); - RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeDuplicateUuid, newStudyRootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity1 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeDuplicateUuid, + newStudyRootNetworkBasicInfos.get(0).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity duplicateRootNetworkNodeInfoEntity2 = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeDuplicateUuid, + newStudyRootNetworkBasicInfos.get(1).rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); // assert those values are actually defined from ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP - assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), duplicateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); - assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_2.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), duplicateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); + assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), + duplicateRootNetworkNodeInfoEntity1.getModificationsUuidsToExclude()); + assertEquals(MODIFICATIONS_TO_EXCLUDE_RN_2.stream().map(ORIGIN_TO_DUPLICATE_MODIFICATION_UUID_MAP::get).collect(Collectors.toSet()), + duplicateRootNetworkNodeInfoEntity2.getModificationsUuidsToExclude()); } @Test @@ -739,7 +772,8 @@ void testDeleteExcludedModification() { UUID firstNodeUuid = firstNode.getId(); // add some modifications to exclude - RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork0NodeInfo1Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetwork0NodeInfo1Entity); @@ -748,7 +782,8 @@ void testDeleteExcludedModification() { List modificationsToRemove = List.of(MODIFICATIONS_TO_EXCLUDE_RN_1.stream().findFirst().orElseThrow()); assertThrows(RuntimeException.class, () -> studyService.deleteNetworkModifications(studyUuid, firstNodeUuid, modificationsToRemove, USER_ID)); - Set excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); + Set excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); Set expectedExcludedModifications = MODIFICATIONS_TO_EXCLUDE_RN_1; assertThat(expectedExcludedModifications).usingRecursiveComparison().isEqualTo(excludedModifications); @@ -756,7 +791,8 @@ void testDeleteExcludedModification() { Mockito.doNothing().when(networkModificationService).deleteModifications(any(), any()); studyService.deleteNetworkModifications(studyUuid, firstNodeUuid, modificationsToRemove, USER_ID); - excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); + excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); expectedExcludedModifications = MODIFICATIONS_TO_EXCLUDE_RN_1.stream().filter(uuid -> uuid != modificationsToRemove.getFirst()).collect(Collectors.toSet()); assertThat(expectedExcludedModifications).usingRecursiveComparison().isEqualTo(excludedModifications); } @@ -777,7 +813,8 @@ void testMoveExcludedModification() { UUID secondNodeUuid = secondNode.getId(); // add some modifications to exclude to node 1 - RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork0NodeInfo1Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetwork0NodeInfo1Entity); @@ -787,12 +824,14 @@ void testMoveExcludedModification() { assertThrows(RuntimeException.class, () -> studyService.moveNetworkModifications(studyUuid, firstNodeUuid, firstNodeUuid, modificationsToMove, null, false, USER_ID)); // assert origin node still have all excluded modifications - Set excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); + Set excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); Set expectedExcludedModifications = MODIFICATIONS_TO_EXCLUDE_RN_1; assertThat(expectedExcludedModifications).usingRecursiveComparison().isEqualTo(excludedModifications); // assert target node still have no excluded modifications - excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); + excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); expectedExcludedModifications = Collections.emptySet(); assertThat(expectedExcludedModifications).usingRecursiveComparison().isEqualTo(excludedModifications); @@ -809,12 +848,14 @@ void testMoveExcludedModification() { studyService.moveNetworkModifications(studyUuid, secondNodeUuid, firstNodeUuid, modificationsToMove, null, true, USER_ID); // assert origin node still have all excluded modifications, except the moved one - excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); + excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(firstNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); expectedExcludedModifications = MODIFICATIONS_TO_EXCLUDE_RN_1.stream().filter(uuid -> uuid != modificationsToMove.getFirst()).collect(Collectors.toSet()); assertThat(expectedExcludedModifications).usingRecursiveComparison().isEqualTo(excludedModifications); // assert target node now have the moved modification as excluded one - excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeUuid, rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); + excludedModifications = rootNetworkNodeInfoRepository.findWithModificationsToExcludeByNodeInfoIdAndRootNetworkId(secondNodeUuid, + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")).getModificationsUuidsToExclude(); expectedExcludedModifications = new HashSet<>(modificationsToMove); assertThat(expectedExcludedModifications).usingRecursiveComparison().isEqualTo(excludedModifications); } @@ -832,11 +873,13 @@ void testBuildNodeWithExcludedModifications() { NetworkModificationNode secondNode = networkModificationTreeService.createNode(studyEntity, firstNode.getId(), createModificationNodeInfo(NODE_2_NAME), InsertMode.AFTER, null); // add some modifications to exclude - RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork0NodeInfo1Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(firstNode.getId(), + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork0NodeInfo1Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_1); rootNetworkNodeInfoRepository.save(rootNetwork0NodeInfo1Entity); - RootNetworkNodeInfoEntity rootNetwork0NodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(secondNode.getId(), rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkNodeInfoEntity rootNetwork0NodeInfo2Entity = rootNetworkNodeInfoRepository.findByNodeInfoIdAndRootNetworkId(secondNode.getId(), + rootNetworkBasicInfos.getFirst().rootNetworkUuid()).orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); rootNetwork0NodeInfo2Entity.setModificationsUuidsToExclude(MODIFICATIONS_TO_EXCLUDE_RN_2); rootNetworkNodeInfoRepository.save(rootNetwork0NodeInfo2Entity); @@ -845,8 +888,10 @@ void testBuildNodeWithExcludedModifications() { ArgumentCaptor buildInfosCaptor = ArgumentCaptor.forClass(BuildInfos.class); Mockito.verify(networkModificationService, Mockito.times(1)).buildNode(eq(secondNode.getId()), eq(rootNetworkBasicInfos.getFirst().rootNetworkUuid()), buildInfosCaptor.capture(), eq(null)); - assertThat(buildInfosCaptor.getValue().getModificationUuidsToExclude().get(firstNode.getModificationGroupUuid())).usingRecursiveComparison().ignoringCollectionOrder().isEqualTo(MODIFICATIONS_TO_EXCLUDE_RN_1); - assertThat(buildInfosCaptor.getValue().getModificationUuidsToExclude().get(secondNode.getModificationGroupUuid())).usingRecursiveComparison().ignoringCollectionOrder().isEqualTo(MODIFICATIONS_TO_EXCLUDE_RN_2); + assertThat(buildInfosCaptor.getValue().getModificationUuidsToExclude().get(firstNode.getModificationGroupUuid())).usingRecursiveComparison().ignoringCollectionOrder().isEqualTo( + MODIFICATIONS_TO_EXCLUDE_RN_1); + assertThat(buildInfosCaptor.getValue().getModificationUuidsToExclude().get(secondNode.getModificationGroupUuid())).usingRecursiveComparison().ignoringCollectionOrder().isEqualTo( + MODIFICATIONS_TO_EXCLUDE_RN_2); } private void createDummyRootNetwork(StudyEntity studyEntity, String name, String tag) { diff --git a/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkControllerTest.java b/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkControllerTest.java index 0117404b30..f8064d6b83 100644 --- a/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkControllerTest.java +++ b/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkControllerTest.java @@ -187,7 +187,8 @@ void testRecreateStudyNetworkWithStudyCaseAndImportParameters() throws Exception UUID caseExistsStubId = wireMockStubs.caseServer.stubCaseExists(CASE_UUID.toString(), true); CountDownLatch countDownLatch = new CountDownLatch(1); - UUID postNetworkStubId = wireMockStubs.networkConversionServer.stubImportNetworkWithPostAction(CASE_UUID.toString(), importParameters, NETWORK_UUID.toString(), "20140116_0830_2D4_UX1_pst", null, "UCTE", "20140116_0830_2D4_UX1_pst.ucte", countDownLatch); + UUID postNetworkStubId = wireMockStubs.networkConversionServer.stubImportNetworkWithPostAction(CASE_UUID.toString(), importParameters, NETWORK_UUID.toString(), "20140116_0830_2D4_UX1_pst", + null, "UCTE", "20140116_0830_2D4_UX1_pst.ucte", countDownLatch); UUID disableCaseExpirationStubId = wireMockStubs.caseServer.stubDisableCaseExpiration(CASE_UUID.toString()); mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/network", studyUuid, firstRootNetworkUuid) @@ -234,7 +235,8 @@ void testRecreateStudyNetworkFromExistingCase() throws Exception { UUID caseExistsStubId = wireMockStubs.caseServer.stubCaseExists(CASE_UUID.toString(), true); CountDownLatch countDownLatch = new CountDownLatch(1); - UUID postNetworkStubId = wireMockStubs.networkConversionServer.stubImportNetworkWithPostAction(CASE_UUID_STRING, newImportParameters, NETWORK_UUID.toString(), "20140116_0830_2D4_UX1_pst", null, "UCTE", "20140116_0830_2D4_UX1_pst.ucte", countDownLatch); + UUID postNetworkStubId = wireMockStubs.networkConversionServer.stubImportNetworkWithPostAction(CASE_UUID_STRING, newImportParameters, NETWORK_UUID.toString(), "20140116_0830_2D4_UX1_pst", + null, "UCTE", "20140116_0830_2D4_UX1_pst.ucte", countDownLatch); UUID disableCaseExpirationStubId = wireMockStubs.caseServer.stubDisableCaseExpiration(CASE_UUID.toString()); mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/network", studyUuid, firstRootNetworkUuid) @@ -283,7 +285,8 @@ private UUID createStudy(String userId, Map importParameters) th // mock API calls UUID caseExistsStubId = wireMockStubs.caseServer.stubCaseExists(RootNetworkControllerTest.CASE_UUID.toString(), true); CountDownLatch countDownLatch = new CountDownLatch(1); - UUID postNetworkStubId = wireMockStubs.networkConversionServer.stubImportNetworkWithPostAction(RootNetworkControllerTest.CASE_UUID.toString(), importParameters, NETWORK_UUID.toString(), "20140116_0830_2D4_UX1_pst", WireMockStubs.FIRST_VARIANT_ID, "UCTE", "20140116_0830_2D4_UX1_pst.ucte", countDownLatch); + UUID postNetworkStubId = wireMockStubs.networkConversionServer.stubImportNetworkWithPostAction(RootNetworkControllerTest.CASE_UUID.toString(), importParameters, NETWORK_UUID.toString(), + "20140116_0830_2D4_UX1_pst", WireMockStubs.FIRST_VARIANT_ID, "UCTE", "20140116_0830_2D4_UX1_pst.ucte", countDownLatch); UUID disableCaseExpirationStubId = wireMockStubs.caseServer.stubDisableCaseExpiration(RootNetworkControllerTest.CASE_UUID.toString()); reportServerStubs.stubSendReport(); when(loadFlowService.createDefaultParameters()).thenReturn(LOADFLOW_PARAMETERS_UUID); diff --git a/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java b/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java index 4a2a77bee2..6a4024f20b 100644 --- a/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java +++ b/src/test/java/org/gridsuite/study/server/rootnetworks/RootNetworkTest.java @@ -51,10 +51,8 @@ import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; - import java.util.*; import java.util.function.Consumer; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.gridsuite.study.server.StudyConstants.HEADER_ERROR; @@ -212,7 +210,8 @@ void testCreateRootNetworkRequest() throws Exception { UUID stubId = wireMockServer.stubFor(WireMock.post(WireMock.urlPathEqualTo("/v1/networks")) .willReturn(WireMock.ok())).getId(); Mockito.doReturn(DUPLICATE_CASE_UUID).when(caseService).duplicateCase(caseUuid, true); - RootNetworkInfos rootNetworkInfos = RootNetworkInfos.builder().name("rootNetworkName2").tag("rn2").caseInfos(new CaseInfos(null, caseUuid, null, caseFormat)).importParameters(importParameters).build(); + RootNetworkInfos rootNetworkInfos = RootNetworkInfos.builder().name("rootNetworkName2").tag("rn2") + .caseInfos(new CaseInfos(null, caseUuid, null, caseFormat)).importParameters(importParameters).build(); // request execution - returns RootNetworkRequestInfos String response = mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks", studyEntity.getId()) @@ -266,7 +265,7 @@ void testCreateRootNetworkRequestWithError() throws Exception { Mockito.doReturn(DUPLICATE_CASE_UUID).when(caseService).duplicateCase(caseUuid, true); RootNetworkInfos rootNetworkInfos = RootNetworkInfos.builder().name("rootNetworkName2").tag("rn2").caseInfos(new CaseInfos(null, caseUuid, null, caseFormat)).build(); - // request execution - returns RootNetworkRequestInfos + // request execution - returns RootNetworkRequestInfos mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks", studyEntity.getId()) .header("userId", USER_ID) .content(objectMapper.writeValueAsString(rootNetworkInfos)) @@ -297,7 +296,8 @@ void testCreateRootNetworkWithMaximumReached() throws Exception { studyRepository.save(studyEntity); // insert a creation request for the same study entity - rootNetworkService.insertCreationRequest(studyEntity.getId(), RootNetworkInfos.builder().id(UUID.randomUUID()).name("rootNetworkName4").tag("rn4").description("rn4 description").build(), USER_ID); + rootNetworkService.insertCreationRequest(studyEntity.getId(), RootNetworkInfos.builder().id(UUID.randomUUID()).name("rootNetworkName4").tag("rn4").description("rn4 description").build(), + USER_ID); // request execution - fails since there is already too many root networks + root network creation requests for this study UUID caseUuid = UUID.randomUUID(); String caseFormat = "newCaseFormat"; @@ -394,7 +394,8 @@ void testCreateRootNetworkConsumer() throws Exception { // prepare all headers that will be sent to consumer supposed to receive "caseImportSucceeded" message Consumer> messageConsumer = consumerService.consumeCaseImportSucceeded(); - CaseImportReceiver caseImportReceiver = new CaseImportReceiver(studyEntity.getId(), newRootNetworkUuid, CASE_UUID2, CASE_UUID, REPORT_UUID2, USER_ID, 0L, CaseImportAction.ROOT_NETWORK_CREATION); + CaseImportReceiver caseImportReceiver = new CaseImportReceiver(studyEntity.getId(), + newRootNetworkUuid, CASE_UUID2, CASE_UUID, REPORT_UUID2, USER_ID, 0L, CaseImportAction.ROOT_NETWORK_CREATION); Map importParameters = new HashMap<>(); importParameters.put("param1", "value1"); importParameters.put("param2", true); @@ -409,7 +410,8 @@ void testCreateRootNetworkConsumer() throws Exception { StudyEntity updatedStudyEntity = studyRepository.findWithRootNetworksById(studyEntity.getId()).orElseThrow(() -> new StudyException(NOT_FOUND)); assertEquals(2, updatedStudyEntity.getRootNetworks().size()); - RootNetworkEntity rootNetworkEntity = updatedStudyEntity.getRootNetworks().stream().filter(rne -> rne.getId().equals(newRootNetworkUuid)).findFirst().orElseThrow(() -> new StudyException(NOT_FOUND, "Root network not found")); + RootNetworkEntity rootNetworkEntity = updatedStudyEntity.getRootNetworks().stream().filter(rne -> rne.getId().equals(newRootNetworkUuid)).findFirst().orElseThrow(() -> new StudyException( + NOT_FOUND, "Root network not found")); assertEquals(newRootNetworkUuid, rootNetworkEntity.getId()); assertEquals(NETWORK_UUID2, rootNetworkEntity.getNetworkUuid()); assertEquals(NETWORK_ID2, rootNetworkEntity.getNetworkId()); @@ -430,8 +432,10 @@ void testCreateRootNetworkConsumer() throws Exception { private void createAndConsumeMessageCaseImport(UUID studyUuid, RootNetworkInfos rootNetworkInfos, CaseImportAction caseImportAction) throws Exception { // prepare all headers that will be sent to consumer supposed to receive "caseImportSucceeded" message Consumer> messageConsumer = consumerService.consumeCaseImportSucceeded(); - CaseImportReceiver caseImportReceiver = new CaseImportReceiver(studyUuid, rootNetworkInfos.getId(), rootNetworkInfos.getCaseInfos().getCaseUuid(), rootNetworkInfos.getCaseInfos().getOriginalCaseUuid(), rootNetworkInfos.getReportUuid(), USER_ID, 0L, caseImportAction); - Map headers = createConsumeCaseImportSucceededHeaders(rootNetworkInfos.getNetworkInfos().getNetworkUuid().toString(), rootNetworkInfos.getNetworkInfos().getNetworkId(), rootNetworkInfos.getCaseInfos().getCaseFormat(), rootNetworkInfos.getCaseInfos().getCaseName(), caseImportReceiver, rootNetworkInfos.getImportParameters()); + CaseImportReceiver caseImportReceiver = new CaseImportReceiver(studyUuid, rootNetworkInfos.getId(), rootNetworkInfos.getCaseInfos().getCaseUuid(), rootNetworkInfos.getCaseInfos( + ).getOriginalCaseUuid(), rootNetworkInfos.getReportUuid(), USER_ID, 0L, caseImportAction); + Map headers = createConsumeCaseImportSucceededHeaders(rootNetworkInfos.getNetworkInfos().getNetworkUuid().toString(), rootNetworkInfos.getNetworkInfos().getNetworkId(), + rootNetworkInfos.getCaseInfos().getCaseFormat(), rootNetworkInfos.getCaseInfos().getCaseName(), caseImportReceiver, rootNetworkInfos.getImportParameters()); // send message to consumer Mockito.doNothing().when(caseService).disableCaseExpiration(rootNetworkInfos.getCaseInfos().getCaseUuid()); @@ -451,7 +455,8 @@ void testCreateRootNetworkCaseImportFailure() throws Exception { // prepare all headers that will be sent to consumer supposed to receive "caseImportFailed" message Consumer> messageConsumer = consumerService.consumeCaseImportFailed(); - CaseImportReceiver caseImportReceiver = new CaseImportReceiver(studyEntity.getId(), newRootNetworkUuid, CASE_UUID2, CASE_UUID, REPORT_UUID2, USER_ID, 0L, CaseImportAction.ROOT_NETWORK_CREATION); + CaseImportReceiver caseImportReceiver = new CaseImportReceiver(studyEntity.getId(), newRootNetworkUuid, CASE_UUID2, CASE_UUID, REPORT_UUID2, USER_ID, 0L, + CaseImportAction.ROOT_NETWORK_CREATION); Map headers = createConsumeCaseImportFailedHeaders(caseImportReceiver); // send message to consumer @@ -743,7 +748,8 @@ void testUpdateRootNetworkConsumer() throws Exception { // verify that the node is blocked // build is forbidden, for example assertNodeBlocked(modificationNode.getId(), rootNetworkInfos.getId(), true); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/build", studyEntity.getId(), rootNetworkInfos.getId(), modificationNode.getId()).header(HEADER_USER_ID, USER_ID)) + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/build", studyEntity.getId(), rootNetworkInfos.getId(), modificationNode.getId()).header( + HEADER_USER_ID, USER_ID)) .andExpect(status().isForbidden()); rootNetworkService.insertModificationRequest(studyEntity.getId(), rootNetworkUpdateInfos, USER_ID); @@ -811,9 +817,11 @@ void getRootNetworks() throws Exception { List result = objectMapper.readValue(response, new TypeReference<>() { }); assertEquals(3, result.size()); - BasicRootNetworkInfos requestRootNetwork = result.stream().filter(rootNetworkMinimalInfos -> rootNetworkMinimalInfos.rootNetworkUuid().equals(requestUuid)).findFirst().orElseThrow(() -> new Exception("this should be in the results")); + BasicRootNetworkInfos requestRootNetwork = result.stream().filter(rootNetworkMinimalInfos -> rootNetworkMinimalInfos.rootNetworkUuid().equals(requestUuid)).findFirst().orElseThrow(() -> new + Exception("this should be in the results")); assertTrue(requestRootNetwork.isCreating()); - BasicRootNetworkInfos createdRootNetwork = result.stream().filter(rootNetworkMinimalInfos -> rootNetworkMinimalInfos.rootNetworkUuid().equals(rootNetworkUuid)).findFirst().orElseThrow(() -> new Exception("this should be in the results")); + BasicRootNetworkInfos createdRootNetwork = result.stream().filter(rootNetworkMinimalInfos -> rootNetworkMinimalInfos.rootNetworkUuid().equals(rootNetworkUuid)).findFirst().orElseThrow( + () -> new Exception("this should be in the results")); assertFalse(createdRootNetwork.isCreating()); } @@ -863,7 +871,8 @@ void getOrderedRootNetworksFromService() { // create new root network UUID rootNetworkUuid = UUID.randomUUID(); - rootNetworkService.insertCreationRequest(studyEntity.getId(), RootNetworkInfos.builder().id(rootNetworkUuid).name("dummyRootNetwork3").tag("RN_3").description("rn3 description").build(), USER_ID); + rootNetworkService.insertCreationRequest(studyEntity.getId(), RootNetworkInfos.builder().id(rootNetworkUuid).name("dummyRootNetwork3").tag("RN_3").description("rn3 description").build(), + USER_ID); studyService.createRootNetwork(studyEntity.getId(), RootNetworkInfos.builder() .name(CASE_NAME2) .caseInfos(new CaseInfos(CASE_UUID2, CASE_UUID, CASE_NAME2, CASE_FORMAT2)) @@ -881,7 +890,8 @@ void getOrderedRootNetworksFromService() { assertEquals("dummyRootNetwork3", resultAfterCreation.get(2).name()); } - private Map createConsumeCaseImportSucceededHeaders(String networkUuid, String networkId, String caseFormat, String caseName, CaseImportReceiver caseImportReceiver, Map importParameters) throws JsonProcessingException { + private Map createConsumeCaseImportSucceededHeaders( + String networkUuid, String networkId, String caseFormat, String caseName, CaseImportReceiver caseImportReceiver, Map importParameters) throws JsonProcessingException { Map headers = new HashMap<>(); headers.put("networkUuid", networkUuid); headers.put("networkId", networkId); diff --git a/src/test/java/org/gridsuite/study/server/rootnetworks/SecurityAnalysisTest.java b/src/test/java/org/gridsuite/study/server/rootnetworks/SecurityAnalysisTest.java index ba6539ea5b..a17f4a9f58 100644 --- a/src/test/java/org/gridsuite/study/server/rootnetworks/SecurityAnalysisTest.java +++ b/src/test/java/org/gridsuite/study/server/rootnetworks/SecurityAnalysisTest.java @@ -89,10 +89,70 @@ class SecurityAnalysisTest { private static final String NOT_FOUND_NODE_UUID = "e3a85c9b-9594-4e55-8ec7-07ea965d24eb"; private static final String CONTINGENCY_LIST_ID = "7f611fba-1abf-4988-9303-48524a37836b"; private String limitTypeJson; - private static final String SECURITY_ANALYSIS_N_RESULT_JSON = "{\"status\":\"CONVERGED\",\"limitViolationsResult\":{\"limitViolations\":[{\"subjectId\":\"l3\",\"limitType\":\"CURRENT\",\"acceptableDuration\":1200,\"limit\":10.0,\"limitReduction\":1.0,\"value\":11.0,\"side\":\"ONE\"}],\"actionsTaken\":[]},\"networkResult\":{\"branchResults\":[],\"busResults\":[],\"threeWindingsTransformerResults\":[]}}"; - private static final String SECURITY_ANALYSIS_NMK_CONTINGENCIES_RESULT_JSON = "[{\"id\":\"l1\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l1\",\"elementType\":\"BRANCH\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l2\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l2\",\"elementType\":\"GENERATOR\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l3\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l3\",\"elementType\":\"BUSBAR_SECTION\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l4\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l4\",\"elementType\":\"LINE\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l6\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l6\",\"elementType\":\"HVDC_LINE\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l7\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l7\",\"elementType\":\"BOUNDARY_LINE\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l8\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l8\",\"elementType\":\"SHUNT_COMPENSATOR\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l9\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l9\",\"elementType\":\"TWO_WINDINGS_TRANSFORMER\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"la\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l0\",\"elementType\":\"THREE_WINDINGS_TRANSFORMER\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"lb\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"la\",\"elementType\":\"STATIC_VAR_COMPENSATOR\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]}]"; - private static final String SECURITY_ANALYSIS_NMK_CONSTRAINTS_RESULT_JSON = "[{\"constraintId\":\"l3\",\"contingencies\":[]},{\"constraintId\":\"vl1\",\"contingencies\":[{\"contingencyId\":\"l1\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l1\",\"elementType\":\"BRANCH\"}]},{\"contingencyId\":\"l2\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l2\",\"elementType\":\"GENERATOR\"}]},{\"contingencyId\":\"l3\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l3\",\"elementType\":\"BUSBAR_SECTION\"}]},{\"contingencyId\":\"l4\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l4\",\"elementType\":\"LINE\"}]},{\"contingencyId\":\"l6\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l6\",\"elementType\":\"HVDC_LINE\"}]},{\"contingencyId\":\"l7\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l7\",\"elementType\":\"BOUNDARY_LINE\"}]},{\"contingencyId\":\"l8\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l8\",\"elementType\":\"SHUNT_COMPENSATOR\"}]},{\"contingencyId\":\"l9\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l9\",\"elementType\":\"TWO_WINDINGS_TRANSFORMER\"}]},{\"contingencyId\":\"la\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l0\",\"elementType\":\"THREE_WINDINGS_TRANSFORMER\"}]},{\"contingencyId\":\"lb\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"la\",\"elementType\":\"STATIC_VAR_COMPENSATOR\"}]}]}]"; - private static final String SECURITY_ANALYSIS_NMK_CUT_OFF_POWER_RESULT_JSON = "[{\"contingencyId\":\"l1\",\"status\":\"CONVERGED\",\"connectivityResult\":{\"disconnectedLoadActivePower\":237.4,\"disconnectedGenerationActivePower\":-237.4}},{\"contingencyId\":\"l2\",\"status\":\"CONVERGED\",\"connectivityResult\":{\"disconnectedLoadActivePower\":237.4,\"disconnectedGenerationActivePower\":-237.4}},{\"contingencyId\":\"f1\",\"status\":\"FAILED\",\"connectivityResult\":{\"disconnectedLoadActivePower\":237.4,\"disconnectedGenerationActivePower\":-237.4}}]"; + private static final String SECURITY_ANALYSIS_N_RESULT_JSON = + "{\"status\":\"CONVERGED\",\"limitViolationsResult\":{\"limitViolations\":[{\"subjectId\":\"l3\",\"limitType\":\"CURRENT\",\"acceptableDuration\":1200,\"limit\":10.0," + + "\"limitReduction\":1.0,\"value\":11.0,\"side\":\"ONE\"}],\"actionsTaken\":[]},\"networkResult\":{\"branchResults\":[],\"busResults\":[]," + + "\"threeWindingsTransformerResults\":[]}}"; + private static final String SECURITY_ANALYSIS_NMK_CONTINGENCIES_RESULT_JSON = + "[{\"id\":\"l1\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l1\",\"elementType\":\"BRANCH\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\"," + + "\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l2\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l2\"," + + "\"elementType\":\"GENERATOR\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0," + + "\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l3\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l3\",\"elementType\":\"BUSBAR_SECTION\"}]," + + "\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0," + + "\"value\":410.0}]},{\"id\":\"l4\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l4\",\"elementType\":\"LINE\"}]," + + "\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0," + + "\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l6\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l6\"," + + "\"elementType\":\"HVDC_LINE\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\"," + + "\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"l7\"," + + "\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l7\",\"elementType\":\"BOUNDARY_LINE\"}]," + + "\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":" + + "\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":" + + "\"l8\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":\"l8\",\"elementType\":" + + "\"SHUNT_COMPENSATOR\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":" + + "\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":" + + "400.0,\"value\":410.0}]},{\"id\":\"l9\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":" + + "\"l9\",\"elementType\":\"TWO_WINDINGS_TRANSFORMER\"}],\"constraints\":[{\"subjectId\":" + + "\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null," + + "\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]},{\"id\":\"la\",\"status\":" + + "\"CONVERGED\",\"elements\":[{\"id\":\"l0\",\"elementType\":" + + "\"THREE_WINDINGS_TRANSFORMER\"}],\"constraints\":[{\"subjectId\":\"vl1\",\"limitType\":" + + "\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":" + + "400.0,\"value\":410.0}]},{\"id\":\"lb\",\"status\":\"CONVERGED\",\"elements\":[{\"id\":" + + "\"la\",\"elementType\":\"STATIC_VAR_COMPENSATOR\"}],\"constraints\":[{\"subjectId\":" + + "\"vl1\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null," + + "\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0}]}]"; + private static final String SECURITY_ANALYSIS_NMK_CONSTRAINTS_RESULT_JSON = + "[{\"constraintId\":\"l3\",\"contingencies\":[]},{\"constraintId\":\"vl1\",\"contingencies\":[{\"contingencyId\":\"l1\",\"computationStatus\":\"CONVERGED\"," + + "\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l1\"," + + "\"elementType\":\"BRANCH\"}]},{\"contingencyId\":\"l2\",\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null," + + "\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l2\",\"elementType\":\"GENERATOR\"}]},{\"contingencyId\":\"l3\"," + + "\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0,\"limit\":400.0," + + "\"value\":410.0,\"elements\":[{\"id\":\"l3\",\"elementType\":\"BUSBAR_SECTION\"}]},{\"contingencyId\":\"l4\"," + + "\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":0," + + "\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l4\",\"elementType\":\"LINE\"}]},{\"contingencyId\":\"l6\"," + + "\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null," + + "\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l6\"," + + "\"elementType\":\"HVDC_LINE\"}]},{\"contingencyId\":\"l7\",\"computationStatus\":\"CONVERGED\"," + + "\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":" + + "0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l7\",\"elementType\":" + + "\"BOUNDARY_LINE\"}]},{\"contingencyId\":\"l8\",\"computationStatus\":\"CONVERGED\"," + + "\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":" + + "0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l8\",\"elementType\":" + + "\"SHUNT_COMPENSATOR\"}]},{\"contingencyId\":\"l9\",\"computationStatus\":\"CONVERGED\"," + + "\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null,\"acceptableDuration\":" + + "0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l9\",\"elementType\":" + + "\"TWO_WINDINGS_TRANSFORMER\"}]},{\"contingencyId\":\"la\",\"computationStatus\":" + + "\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\",\"side\":null," + + "\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":[{\"id\":\"l0\"," + + "\"elementType\":\"THREE_WINDINGS_TRANSFORMER\"}]},{\"contingencyId\":\"lb\"," + + "\"computationStatus\":\"CONVERGED\",\"limitType\":\"HIGH_VOLTAGE\",\"limitName\":\"\"," + + "\"side\":null,\"acceptableDuration\":0,\"limit\":400.0,\"value\":410.0,\"elements\":" + + "[{\"id\":\"la\",\"elementType\":\"STATIC_VAR_COMPENSATOR\"}]}]}]"; + private static final String SECURITY_ANALYSIS_NMK_CUT_OFF_POWER_RESULT_JSON = "[{\"contingencyId\":\"l1\"," + + "\"status\":\"CONVERGED\",\"connectivityResult\":{\"disconnectedLoadActivePower\":237.4,\"disconnectedGenerationActivePower\":-237.4}}," + + "{\"contingencyId\":\"l2\",\"status\":\"CONVERGED\",\"connectivityResult\":" + + "{\"disconnectedLoadActivePower\":237.4,\"disconnectedGenerationActivePower\":-237.4}}," + + "{\"contingencyId\":\"f1\",\"status\":\"FAILED\",\"connectivityResult\":{\"disconnectedLoadActivePower\":237.4,\"disconnectedGenerationActivePower\":-237.4}}]"; private static final byte[] SECURITY_ANALYSIS_N_RESULT_CSV_ZIPPED = {0x00, 0x01}; private static final byte[] SECURITY_ANALYSIS_NMK_CONTINGENCIES_RESULT_CSV_ZIPPED = {0x02, 0x03}; private static final byte[] SECURITY_ANALYSIS_NMK_CONSTRAINTS_RESULT_CSV_ZIPPED = {0x04, 0x03}; @@ -100,8 +160,12 @@ class SecurityAnalysisTest { private static final String SECURITY_ANALYSIS_STATUS_JSON = "\"CONVERGED\""; private static final ContingencyCount CONTINGENCIES_COUNT = new ContingencyCount(2, 0); - public static final String SECURITY_ANALYSIS_DEFAULT_PARAMETERS_JSON = "{\"lowVoltageAbsoluteThreshold\":0.0,\"lowVoltageProportionalThreshold\":0.0,\"highVoltageAbsoluteThreshold\":0.0,\"highVoltageProportionalThreshold\":0.0,\"flowProportionalThreshold\":0.1}"; - private static final String SECURITY_ANALYSIS_PROFILE_PARAMETERS_JSON = "{\"lowVoltageAbsoluteThreshold\":30.0,\"lowVoltageProportionalThreshold\":0.4,\"highVoltageAbsoluteThreshold\":0.0,\"highVoltageProportionalThreshold\":0.0,\"flowProportionalThreshold\":0.1}"; + public static final String SECURITY_ANALYSIS_DEFAULT_PARAMETERS_JSON = + "{\"lowVoltageAbsoluteThreshold\":0.0,\"lowVoltageProportionalThreshold\":0.0,\"highVoltageAbsoluteThreshold\":0.0,\"highVoltageProportionalThreshold\":0.0," + + "\"flowProportionalThreshold\":0.1}"; + private static final String SECURITY_ANALYSIS_PROFILE_PARAMETERS_JSON = + "{\"lowVoltageAbsoluteThreshold\":30.0,\"lowVoltageProportionalThreshold\":0.4,\"highVoltageAbsoluteThreshold\":0.0,\"highVoltageProportionalThreshold\":0.0," + + "\"flowProportionalThreshold\":0.1}"; private static final String NETWORK_UUID_STRING = "38400000-8cf0-11bd-b23e-10b96e4ef00d"; private static final String NETWORK_UUID_2_STRING = "11111111-aaaa-48be-be46-ef7b93331e32"; @@ -128,8 +192,10 @@ class SecurityAnalysisTest { private static final String PROFILE_SECURITY_ANALYSIS_VALID_PARAMETERS_UUID_STRING = "1cec4a7b-ab7e-4d78-9dd7-ce73c5ef11d9"; private static final String PROFILE_SECURITY_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING = "a4ce25e1-59a7-401d-abb1-04425fe24587"; private static final String USER_PROFILE_NO_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile No params\"}"; - private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"securityAnalysisParameterId\":\"" + PROFILE_SECURITY_ANALYSIS_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; - private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"securityAnalysisParameterId\":\"" + PROFILE_SECURITY_ANALYSIS_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; + private static final String USER_PROFILE_VALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with valid params\",\"securityAnalysisParameterId\":\"" + + PROFILE_SECURITY_ANALYSIS_VALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":true}"; + private static final String USER_PROFILE_INVALID_PARAMS_JSON = "{\"id\":\"97bb1890-a90c-43c3-a004-e631246d42d6\",\"name\":\"Profile with broken params\",\"securityAnalysisParameterId\":\"" + + PROFILE_SECURITY_ANALYSIS_INVALID_PARAMETERS_UUID_STRING + "\",\"allParametersLinksValid\":false}"; private static final String DUPLICATED_PARAMS_JSON = "\"" + PROFILE_SECURITY_ANALYSIS_DUPLICATED_PARAMETERS_UUID_STRING + "\""; //output destinations @@ -603,7 +669,10 @@ private void testSecurityAnalysisWithRootNetworkUuidAndNodeUuid(UUID studyUuid, .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .withBody(SECURITY_ANALYSIS_N_RESULT_JSON))); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", studyUuid, rootNetworkUuid, nodeUuid, SecurityAnalysisResultType.N)).andExpectAll( + mockMvc.perform( + get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}" + + "&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", + studyUuid, rootNetworkUuid, nodeUuid, SecurityAnalysisResultType.N)).andExpectAll( status().isOk(), content().string(SECURITY_ANALYSIS_N_RESULT_JSON)); @@ -618,7 +687,10 @@ private void testSecurityAnalysisWithRootNetworkUuidAndNodeUuid(UUID studyUuid, .withBody(SECURITY_ANALYSIS_NMK_CONTINGENCIES_RESULT_JSON)) ); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", studyUuid, rootNetworkUuid, nodeUuid, SecurityAnalysisResultType.NMK_CONTINGENCIES)).andExpectAll( + mockMvc.perform( + get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}" + + "&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", + studyUuid, rootNetworkUuid, nodeUuid, SecurityAnalysisResultType.NMK_CONTINGENCIES)).andExpectAll( status().isOk(), content().string(SECURITY_ANALYSIS_NMK_CONTINGENCIES_RESULT_JSON)); @@ -628,7 +700,9 @@ private void testSecurityAnalysisWithRootNetworkUuidAndNodeUuid(UUID studyUuid, wireMockServer.stubFor(WireMock.get(WireMock.urlPathEqualTo("/v1/results/" + resultUuid + "/nmk-constraints-result/paged")) .willReturn(WireMock.okJson(SECURITY_ANALYSIS_NMK_CONSTRAINTS_RESULT_JSON))); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", + mockMvc.perform( + get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}" + + "&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", studyUuid, rootNetworkUuid, nodeUuid, SecurityAnalysisResultType.NMK_LIMIT_VIOLATIONS)) .andExpectAll(status().isOk(), content().string(SECURITY_ANALYSIS_NMK_CONSTRAINTS_RESULT_JSON)); @@ -638,7 +712,8 @@ private void testSecurityAnalysisWithRootNetworkUuidAndNodeUuid(UUID studyUuid, wireMockServer.stubFor(WireMock.get(WireMock.urlPathEqualTo("/v1/results/" + resultUuid + "/nmk-cut-off-power-result/paged")) .willReturn(WireMock.okJson(SECURITY_ANALYSIS_NMK_CUT_OFF_POWER_RESULT_JSON))); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/result?resultType={resultType}&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}" + + "/security-analysis/result?resultType={resultType}&page=0&size=10&filters=random_filters&globalFilters=random_globalfilters&sort=random_sort", studyUuid, rootNetworkUuid, nodeUuid, SecurityAnalysisResultType.NMK_CUT_OFF_POWER)) .andExpectAll(status().isOk(), content().string(SECURITY_ANALYSIS_NMK_CUT_OFF_POWER_RESULT_JSON)); @@ -653,7 +728,8 @@ private void testSecurityAnalysisWithRootNetworkUuidAndNodeUuid(UUID studyUuid, // stop security analysis computationServerStubs.stubComputationStop(resultUuid); - mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/stop", studyUuid, rootNetworkUuid, nodeUuid).header("userId", "userId")).andExpect(status().isOk()); + mockMvc.perform(put("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/security-analysis/stop", studyUuid, rootNetworkUuid, nodeUuid).header("userId", + "userId")).andExpect(status().isOk()); String receiverJson = objectMapper.writeValueAsString(new NodeReceiver(nodeUuid, rootNetworkUuid)); Message stoppedMessage = MessageBuilder.withPayload("") @@ -665,7 +741,8 @@ private void testSecurityAnalysisWithRootNetworkUuidAndNodeUuid(UUID studyUuid, computationServerStubs.verifyComputationStop(resultUuid, Map.of("receiver", WireMock.matching(".*"))); // get contingency count - securityAnalysisServerStubs.stubContingencyListCount(objectMapper.writeValueAsString(CONTINGENCIES_COUNT), Map.of("ids", equalTo(CONTINGENCY_LIST_ID), "networkUuid", equalTo(NETWORK_UUID_STRING))); + securityAnalysisServerStubs.stubContingencyListCount(objectMapper.writeValueAsString(CONTINGENCIES_COUNT), Map.of("ids", equalTo(CONTINGENCY_LIST_ID), "networkUuid", + equalTo(NETWORK_UUID_STRING))); mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/contingency-count?contingencyListIds={contingencyListId}", studyUuid, rootNetworkUuid, nodeUuid, CONTINGENCY_LIST_ID)) diff --git a/src/test/java/org/gridsuite/study/server/service/RemoteServicesInspectorTest.java b/src/test/java/org/gridsuite/study/server/service/RemoteServicesInspectorTest.java index 1638431ab1..5c419ad20f 100644 --- a/src/test/java/org/gridsuite/study/server/service/RemoteServicesInspectorTest.java +++ b/src/test/java/org/gridsuite/study/server/service/RemoteServicesInspectorTest.java @@ -148,7 +148,8 @@ void testOptionalServicesWithLatency() { private void testOptionalServices(final String jsonResponse, final ServiceStatus statusTest, int delayResponse) { // select 3 services to be optional - final List optionalServices = List.of(RemoteServiceName.LOADFLOW_SERVER.serviceName(), RemoteServiceName.SECURITY_ANALYSIS_SERVER.serviceName(), RemoteServiceName.VOLTAGE_INIT_SERVER.serviceName()); + final List optionalServices = List.of(RemoteServiceName.LOADFLOW_SERVER.serviceName(), RemoteServiceName.SECURITY_ANALYSIS_SERVER.serviceName(), + RemoteServiceName.VOLTAGE_INIT_SERVER.serviceName()); remoteServicesProperties.getServices().forEach(s -> s.setOptional(optionalServices.contains(s.getName()))); // any optional service will be mocked with JSON to respond diff --git a/src/test/java/org/gridsuite/study/server/service/ReportServiceTest.java b/src/test/java/org/gridsuite/study/server/service/ReportServiceTest.java index 38a540684c..bb09e701fc 100644 --- a/src/test/java/org/gridsuite/study/server/service/ReportServiceTest.java +++ b/src/test/java/org/gridsuite/study/server/service/ReportServiceTest.java @@ -19,8 +19,8 @@ import okhttp3.Headers; import okhttp3.HttpUrl; import org.gridsuite.study.server.ContextConfigurationWithTestChannel; -import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.dto.Report; +import org.gridsuite.study.server.error.StudyException; import org.gridsuite.study.server.networkmodificationtree.dto.InsertMode; import org.gridsuite.study.server.networkmodificationtree.dto.NetworkModificationNode; import org.gridsuite.study.server.networkmodificationtree.dto.RootNode; @@ -45,16 +45,14 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; - import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.Set; import java.util.UUID; import java.util.stream.Stream; - -import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND; import static org.gridsuite.study.server.StudyConstants.QUERY_PARAM_REPORT_DEFAULT_NAME; +import static org.gridsuite.study.server.error.StudyBusinessErrorCode.NOT_FOUND; import static org.gridsuite.study.server.utils.TestUtils.checkReports; import static org.gridsuite.study.server.utils.TestUtils.createModificationNodeInfo; import static org.junit.jupiter.api.Assertions.*; @@ -126,10 +124,12 @@ public MockResponse dispatch(RecordedRequest request) { if (path.matches("/v1/reports/.*\\?defaultName=.*")) { String reportUuid = Objects.requireNonNull(request.getRequestUrl()).pathSegments().get(2); String nodeUuid = request.getRequestUrl().queryParameter(QUERY_PARAM_REPORT_DEFAULT_NAME); - return new MockResponse(HttpStatus.OK.value(), Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), mapper.writeValueAsString(getNodeReport(UUID.fromString(reportUuid), nodeUuid))); + return new MockResponse(HttpStatus.OK.value(), Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), mapper.writeValueAsString(getNodeReport(UUID.fromString( + reportUuid), nodeUuid))); } else if (path.matches("/v1/subreports/.*\\?severityLevels=.*")) { String reportId = Objects.requireNonNull(request.getRequestUrl()).pathSegments().get(2); - return new MockResponse(HttpStatus.OK.value(), Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), mapper.writeValueAsString(getNodeReport(UUID.fromString(reportId), reportId))); + return new MockResponse(HttpStatus.OK.value(), Headers.of(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE), mapper.writeValueAsString(getNodeReport(UUID.fromString( + reportId), reportId))); } else if (path.matches("/v1/reports/" + NOT_FOUND_REPORT_UUID + "/duplicate")) { return new MockResponse(HttpStatus.NOT_FOUND.value()); } else if (path.matches("/v1/reports/" + MODIFICATION_CHILD_NODE1_REPORT_UUID + "/aggregated-severities")) { @@ -173,7 +173,8 @@ void testReport(final MockWebServer server) throws Exception { UUID firstRootNetworkUuid = studyTestUtils.getOneRootNetworkUuid(studyEntity.getId()); List expectedRootReports = List.of(getNodeReport(ROOT_NODE_REPORT_UUID, rootNode.getId().toString())); - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=true&reportType=NETWORK_MODIFICATION", rootNode.getStudyId(), firstRootNetworkUuid, rootNode.getId())) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=true&reportType=NETWORK_MODIFICATION", + rootNode.getStudyId(), firstRootNetworkUuid, rootNode.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); List reports = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); @@ -185,14 +186,16 @@ void testReport(final MockWebServer server) throws Exception { output.receive(TIMEOUT, STUDY_UPDATE_DESTINATION); // message for modification node creation List expectedNodeReports = List.of(getNodeReport(MODIFICATION_NODE_REPORT_UUID, node.getId().toString())); - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=true&reportType=NETWORK_MODIFICATION", rootNode.getStudyId(), firstRootNetworkUuid, node.getId())) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=true&reportType=NETWORK_MODIFICATION", + rootNode.getStudyId(), firstRootNetworkUuid, node.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); reports = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); checkReports(reports, expectedNodeReports); assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/reports/.*"))); - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=false&reportType=NETWORK_MODIFICATION", rootNode.getStudyId(), firstRootNetworkUuid, node.getId())) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=false&reportType=NETWORK_MODIFICATION", + rootNode.getStudyId(), firstRootNetworkUuid, node.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); reports = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); @@ -241,7 +244,8 @@ void testMultipleReport(final MockWebServer server) throws Exception { .build(); // get only Child1 report - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=true&reportType=NETWORK_MODIFICATION", rootNode.getStudyId(), firstRootNetworkUuid, child1.getId())) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=true&reportType=NETWORK_MODIFICATION", + rootNode.getStudyId(), firstRootNetworkUuid, child1.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); List child1Reports = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); @@ -249,7 +253,8 @@ void testMultipleReport(final MockWebServer server) throws Exception { assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/reports/.*"))); // get only Child1 aggregated severities - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/aggregated-severities?reportId=" + MODIFICATION_CHILD_NODE1_REPORT_UUID, rootNode.getStudyId(), firstRootNetworkUuid, child1.getId())) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/aggregated-severities?reportId=" + MODIFICATION_CHILD_NODE1_REPORT_UUID, + rootNode.getStudyId(), firstRootNetworkUuid, child1.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); Set child1AggregatedSeverities = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); @@ -257,7 +262,8 @@ void testMultipleReport(final MockWebServer server) throws Exception { assertTrue(TestUtils.getRequestsDone(1, server).stream().anyMatch(r -> r.matches("/v1/reports/.*/aggregated-severities"))); // get Child2 report + parents - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=false&reportType=NETWORK_MODIFICATION", rootNode.getStudyId(), firstRootNetworkUuid, child2.getId())) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=false&reportType=NETWORK_MODIFICATION", + rootNode.getStudyId(), firstRootNetworkUuid, child2.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); List child2AndParentsReports = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); @@ -269,7 +275,8 @@ void testMultipleReport(final MockWebServer server) throws Exception { checkReports(child2AndParentsReports, childrenAndParentsExpectedReports); assertTrue(TestUtils.getRequestsDone(childrenAndParentsExpectedReports.size(), server).stream().anyMatch(r -> r.matches("/v1/reports/.*"))); - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/aggregated-severities", rootNode.getStudyId(), firstRootNetworkUuid, node.getId())) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/aggregated-severities", rootNode.getStudyId(), firstRootNetworkUuid, + node.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); Set child2AggregatedSeverities = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); @@ -277,7 +284,8 @@ void testMultipleReport(final MockWebServer server) throws Exception { assertTrue(TestUtils.getRequestsDone(2, server).stream().anyMatch(r -> r.matches("/v1/reports/.*/aggregated-severities"))); // get Child1 report + parents - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=false&reportType=NETWORK_MODIFICATION", rootNode.getStudyId(), firstRootNetworkUuid, child1.getId())) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?nodeOnlyReport=false&reportType=NETWORK_MODIFICATION", + rootNode.getStudyId(), firstRootNetworkUuid, child1.getId())) .andExpectAll(status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); List child1AndParentsReports = mapper.readValue(mvcResult.getResponse().getContentAsString(), new TypeReference<>() { }); diff --git a/src/test/java/org/gridsuite/study/server/studycontroller/NodeControllerTest.java b/src/test/java/org/gridsuite/study/server/studycontroller/NodeControllerTest.java index b0167f58f0..a64c2453b5 100644 --- a/src/test/java/org/gridsuite/study/server/studycontroller/NodeControllerTest.java +++ b/src/test/java/org/gridsuite/study/server/studycontroller/NodeControllerTest.java @@ -69,7 +69,10 @@ void testCutAndPasteNode() throws Exception { */ // add modification on node "node1" - String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node1.getId(), firstRootNetworkUuid) .content(createTwoWindingsTransformerAttributes).contentType(MediaType.APPLICATION_JSON) @@ -79,11 +82,14 @@ void testCutAndPasteNode() throws Exception { checkEquipmentCreatingMessagesReceived(study1Uuid, node1.getId()); checkEquipmentUpdatingFinishedMessagesReceived(study1Uuid, node1.getId()); checkElementUpdatedMessageSent(study1Uuid, userId); - Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // add modification on node "node2" - String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node2.getId(), firstRootNetworkUuid) .contentType(MediaType.APPLICATION_JSON) @@ -408,6 +414,7 @@ void testCutAndPasteSubtree() throws Exception { .header(USER_ID_HEADER, "userId")).andExpect(status().isNotFound()); } + @SuppressWarnings("checkstyle:LambdaBodyLength") private void cutAndPasteNode(UUID studyUuid, NetworkModificationNode nodeToCopy, UUID referenceNodeUuid, InsertMode insertMode, int childCount, String userId) throws Exception { UUID stubUuid = wireMockStubs.stubNetworkModificationCountGet(nodeToCopy.getModificationGroupUuid().toString(), EMPTY_MODIFICATION_GROUP_UUID.equals(nodeToCopy.getModificationGroupUuid()) ? 0 : 1); @@ -491,7 +498,10 @@ void testDuplicateNode() throws Exception { */ // add modification on node "node1" - String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node1.getId(), firstRootNetworkUuid) .contentType(MediaType.APPLICATION_JSON) @@ -502,11 +512,14 @@ void testDuplicateNode() throws Exception { checkEquipmentCreatingMessagesReceived(study1Uuid, node1.getId()); checkEquipmentUpdatingFinishedMessagesReceived(study1Uuid, node1.getId()); checkElementUpdatedMessageSent(study1Uuid, userId); - Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // add modification on node "node2" - String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node2.getId(), firstRootNetworkUuid) .contentType(MediaType.APPLICATION_JSON) @@ -675,7 +688,10 @@ void testDuplicateSubtree() throws Exception { */ // add modification on node "node1" (not built) -> invalidation of node 3 - String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; UUID deleteModificationIndexStub = wireMockStubs.stubNetworkModificationDeleteIndex(); UUID stubDeleteReportsId = wireMockServer.stubFor(WireMock.delete(WireMock.urlPathEqualTo("/v1/reports")) .willReturn(WireMock.ok())).getId(); @@ -691,7 +707,8 @@ void testDuplicateSubtree() throws Exception { checkEquipmentCreatingMessagesReceived(study1Uuid, node1.getId()); checkEquipmentUpdatingFinishedMessagesReceived(study1Uuid, node1.getId()); checkElementUpdatedMessageSent(study1Uuid, userId); - Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); wireMockStubs.verifyNetworkModificationDeleteIndex(deleteModificationIndexStub); @@ -701,7 +718,9 @@ void testDuplicateSubtree() throws Exception { wireMockStubs.verifyDeleteReports(stubDeleteReportsId, 1); // add modification on node "node2" - String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node2.getId(), firstRootNetworkUuid) .contentType(MediaType.APPLICATION_JSON) @@ -826,7 +845,10 @@ void testDuplicateNodeBetweenStudies() throws Exception { // add modification on study 1 node "node1" wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); - String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node1.getId(), firstRootNetworkUuid) .contentType(MediaType.APPLICATION_JSON) .content(createTwoWindingsTransformerAttributes) @@ -836,12 +858,15 @@ void testDuplicateNodeBetweenStudies() throws Exception { checkEquipmentCreatingMessagesReceived(study1Uuid, node1.getId()); checkEquipmentUpdatingFinishedMessagesReceived(study1Uuid, node1.getId()); checkElementUpdatedMessageSent(study1Uuid, userId); - Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(firstRootNetworkUuid, node1.getId(), NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // add modification on node "node2" wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); - String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node2.getId(), firstRootNetworkUuid) .contentType(MediaType.APPLICATION_JSON) .content(createLoadAttributes) @@ -870,7 +895,8 @@ void testDuplicateNodeBetweenStudies() throws Exception { .count()); } - private UUID duplicateNode(UUID sourceStudyUuid, UUID targetStudyUuid, NetworkModificationNode nodeToCopy, UUID referenceNodeUuid, InsertMode insertMode, boolean checkMessagesForStatusModels, String userId) throws Exception { + private UUID duplicateNode(UUID sourceStudyUuid, UUID targetStudyUuid, NetworkModificationNode nodeToCopy, UUID referenceNodeUuid, InsertMode insertMode, boolean checkMessagesForStatusModels, + String userId) throws Exception { List allNodesBeforeDuplication = networkModificationTreeService.getAllNodes(targetStudyUuid).stream().map(NodeEntity::getIdNode).collect(Collectors.toList()); UUID stubGetCountUuid = wireMockStubs.stubNetworkModificationCountGet(nodeToCopy.getModificationGroupUuid().toString(), EMPTY_MODIFICATION_GROUP_UUID.equals(nodeToCopy.getModificationGroupUuid()) ? 0 : 1); @@ -915,7 +941,8 @@ void testGetNodeReportLogs() throws Exception { wireMockStubs.stubGetReportsLogs(mapper.writeValueAsString(REPORT_PAGE)); - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID, studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID, studyUuid, firstRootNetworkUuid, + rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()).andReturn(); String resultAsString = mvcResult.getResponse().getContentAsString(); List reportLogs = mapper.readValue(resultAsString, new TypeReference() { }).content(); @@ -924,7 +951,8 @@ void testGetNodeReportLogs() throws Exception { wireMockStubs.verifyGetReportLogs(REPORT_ID.toString()); //test with severityFilter and messageFilter param - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID + "&severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID + "&severityLevels=WARN&message=testMsgFilter", + studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()).andReturn(); resultAsString = mvcResult.getResponse().getContentAsString(); reportLogs = mapper.readValue(resultAsString, new TypeReference() { }).content(); @@ -941,12 +969,14 @@ void testGetPagedNodeReportLogs() throws Exception { wireMockStubs.stubGetReportsLogs(mapper.writeValueAsString(REPORT_PAGE)); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID + "&paged=true&page=1&size=10", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID + "&paged=true&page=1&size=10", studyUuid, + firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()); wireMockStubs.verifyGetReportLogsPaged(REPORT_ID.toString(), 1, 10); //test with severityFilter and messageFilter param - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID + "&paged=true&page=1&size=10&severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?reportId=" + REPORT_ID + + "&paged=true&page=1&size=10&severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()); wireMockStubs.verifyGetReportLogsPaged(REPORT_ID.toString(), 1, 10, "WARN", "testMsgFilter"); } @@ -980,7 +1010,8 @@ void testGetParentNodesReportLogs() throws Exception { // node2 node3 //get logs of node2 and all its parents (should not get node3 logs) - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs", studyUuid, firstRootNetworkUuid, node2.getId()).header(USER_ID_HEADER, "userId")) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs", studyUuid, firstRootNetworkUuid, + node2.getId()).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()).andReturn(); String resultAsString = mvcResult.getResponse().getContentAsString(); List reportLogs = mapper.readValue(resultAsString, new TypeReference() { }).content(); @@ -988,7 +1019,8 @@ void testGetParentNodesReportLogs() throws Exception { wireMockStubs.verifyGetReportLogs(stubGetReportLogsId, List.of(rootNodeReportId, modificationNodeReportId, node1ReportId, node2ReportId)); //get logs of node2 and all its parents (should not get node3 logs) with severityFilter and messageFilter param - mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, node2.getId()).header(USER_ID_HEADER, "userId")) + mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs?severityLevels=WARN&message=testMsgFilter", studyUuid, + firstRootNetworkUuid, node2.getId()).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()).andReturn(); resultAsString = mvcResult.getResponse().getContentAsString(); reportLogs = mapper.readValue(resultAsString, new TypeReference() { }).content(); @@ -1015,7 +1047,8 @@ void testGetSearchTermMatchesInMultipleFilteredLogs() throws Exception { .willReturn(WireMock.ok().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .withBody(mapper.writeValueAsString(REPORT_PAGE)))).getId(); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs/search?searchTerm=testTerm&pageSize=10&severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, node2.getId()).header(USER_ID_HEADER, "userId")) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs/search?searchTerm=testTerm&pageSize=10&severityLevels=WARN&message=testMsgFilter", + studyUuid, firstRootNetworkUuid, node2.getId()).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()); wireMockStubs.verifyGetReportLogsSearch(stubGetReportLogsSearchId, List.of(rootNodeReportId, modificationNodeReportId, node1ReportId, node2ReportId)); } diff --git a/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerCreationTest.java b/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerCreationTest.java index fc2a558d76..c17b416293 100644 --- a/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerCreationTest.java +++ b/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerCreationTest.java @@ -26,8 +26,8 @@ import org.gridsuite.study.server.service.dynamicsecurityanalysis.DynamicSecurityAnalysisService; import org.gridsuite.study.server.service.shortcircuit.ShortCircuitService; import org.gridsuite.study.server.utils.TestUtils; -import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; +import org.gridsuite.study.server.utils.wiremock.WireMockStubs; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -46,9 +46,7 @@ import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; import org.springframework.test.web.servlet.MockMvc; - import java.util.*; - import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig; import static org.assertj.core.api.Assertions.assertThat; import static org.gridsuite.study.server.StudyConstants.*; @@ -63,7 +61,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** - * @author Kevin Le Saulnier + * @author Kevin Le Saulnier */ @ExtendWith(MockWebServerExtension.class) @AutoConfigureMockMvc diff --git a/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerRebuildNodeTest.java b/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerRebuildNodeTest.java index ad313cab3f..edfcd384b4 100644 --- a/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerRebuildNodeTest.java +++ b/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerRebuildNodeTest.java @@ -6,13 +6,13 @@ */ package org.gridsuite.study.server.studycontroller; -import org.gridsuite.study.server.service.RebuildNodeService; import org.gridsuite.study.server.StudyConstants; import org.gridsuite.study.server.controller.StudyController; import org.gridsuite.study.server.dto.modification.NetworkModificationMetadata; import org.gridsuite.study.server.networkmodificationtree.dto.BuildStatus; import org.gridsuite.study.server.networkmodificationtree.dto.NodeBuildStatus; import org.gridsuite.study.server.service.NetworkModificationTreeService; +import org.gridsuite.study.server.service.RebuildNodeService; import org.gridsuite.study.server.service.StudyService; import org.gridsuite.study.server.utils.elasticsearch.DisableElasticsearch; import org.junit.jupiter.api.BeforeEach; @@ -21,17 +21,15 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.bean.override.mockito.MockitoBean; import org.springframework.test.context.bean.override.mockito.MockitoSpyBean; - import java.util.List; import java.util.Map; import java.util.Set; import java.util.UUID; - import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; /** - * @author Kevin Le Saulnier + * @author Kevin Le Saulnier */ @SpringBootTest @DisableElasticsearch diff --git a/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerSearchTest.java b/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerSearchTest.java index 56972cd19b..d6a90d7e49 100644 --- a/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerSearchTest.java +++ b/src/test/java/org/gridsuite/study/server/studycontroller/StudyControllerSearchTest.java @@ -57,7 +57,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** - * @author Kevin Le Saulnier + * @author Kevin Le Saulnier */ @ExtendWith(MockWebServerExtension.class) @AutoConfigureMockMvc diff --git a/src/test/java/org/gridsuite/study/server/studycontroller/StudyTest.java b/src/test/java/org/gridsuite/study/server/studycontroller/StudyTest.java index 1f8f75d54d..f4cfb4e94d 100644 --- a/src/test/java/org/gridsuite/study/server/studycontroller/StudyTest.java +++ b/src/test/java/org/gridsuite/study/server/studycontroller/StudyTest.java @@ -155,7 +155,9 @@ void test() throws Exception { stubNetworkExportId = wireMockStubs.networkConversionServer.stubNetworkExport(NETWORK_UUID_STRING, "XIIDM", UUID.randomUUID().toString()); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/export-network/{format}?fileName=myFileName&formatParameters=%7B%22iidm.export.xml.indent%22%3Afalse%7D", studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "XIIDM") + mockMvc.perform( + post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/export-network/{format}?fileName=myFileName&formatParameters=%7B%22iidm.export.xml.indent%22%3Afalse%7D", + studyNameUserIdUuid, firstRootNetworkUuid, rootNodeUuid, "XIIDM") .header(HEADER_USER_ID, userId)).andExpect(status().isOk()); wireMockStubs.networkConversionServer.verifyNetworkExport(stubNetworkExportId, NETWORK_UUID_STRING, "XIIDM", @@ -164,7 +166,8 @@ void test() throws Exception { NetworkModificationNode modificationNode1 = createNetworkModificationNode(studyNameUserIdUuid, rootNodeUuid, UUID.randomUUID(), VARIANT_ID, "node 3", userId); UUID modificationNode1Uuid = modificationNode1.getId(); - mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/export-network/{format}?fileName=myFileName", studyNameUserIdUuid, firstRootNetworkUuid, modificationNode1Uuid, "XIIDM") + mockMvc.perform(post("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/export-network/{format}?fileName=myFileName", studyNameUserIdUuid, firstRootNetworkUuid, + modificationNode1Uuid, "XIIDM") .header(HEADER_USER_ID, userId)).andExpect(status().isInternalServerError()); rootNetworkNodeInfoService.updateRootNetworkNode(modificationNode1.getId(), studyTestUtils.getOneRootNetworkUuid(studyNameUserIdUuid), @@ -394,7 +397,8 @@ void testLogsReport() throws Exception { .willReturn(WireMock.ok().withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE) .withBody(mapper.writeValueAsString(REPORT_TEST)))); - MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?reportType=NETWORK_MODIFICATION", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + MvcResult mvcResult = mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/parent-nodes-report?reportType=NETWORK_MODIFICATION", studyUuid, + firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()).andReturn(); String resultAsString = mvcResult.getResponse().getContentAsString(); List reports = mapper.readValue(resultAsString, new TypeReference<>() { }); @@ -411,12 +415,14 @@ void testGetSearchTermMatchesInFilteredLogs() throws Exception { wireMockStubs.stubGetReportsLogs(mapper.writeValueAsString(REPORT_PAGE)); - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs/search?reportId=" + REPORT_ID + "&searchTerm=testTerm&pageSize=10", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs/search?reportId=" + REPORT_ID + "&searchTerm=testTerm&pageSize=10", studyUuid, + firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()); wireMockStubs.verifyGetReportLogsSearchWithReportId(REPORT_ID.toString(), "testTerm", 10); //test with severityFilter and messageFilter param - mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs/search?reportId=" + REPORT_ID + "&searchTerm=testTerm&pageSize=10&severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) + mockMvc.perform(get("/v1/studies/{studyUuid}/root-networks/{rootNetworkUuid}/nodes/{nodeUuid}/report/logs/search?reportId=" + REPORT_ID + + "&searchTerm=testTerm&pageSize=10&severityLevels=WARN&message=testMsgFilter", studyUuid, firstRootNetworkUuid, rootNodeUuid).header(USER_ID_HEADER, "userId")) .andExpect(status().isOk()); wireMockStubs.verifyGetReportLogsSearchWithReportId(REPORT_ID.toString(), "testTerm", 10, "WARN", "testMsgFilter"); } @@ -538,7 +544,8 @@ void testCreateStudyCreationFailedWithoutErrorMessage() throws Exception { void testCreateStudyWithErrorDuringStudyCreation() throws Exception { String userId = "userId"; CountDownLatch countDownLatch = new CountDownLatch(1); - UUID stubPostNetworkConversionErrorId = wireMockStubs.networkConversionServer.stubImportNetworkWithError(CASE_UUID_CAUSING_STUDY_CREATION_ERROR, FIRST_VARIANT_ID, STUDY_CREATION_ERROR_MESSAGE, countDownLatch); + UUID stubPostNetworkConversionErrorId = wireMockStubs.networkConversionServer.stubImportNetworkWithError(CASE_UUID_CAUSING_STUDY_CREATION_ERROR, FIRST_VARIANT_ID, STUDY_CREATION_ERROR_MESSAGE, + countDownLatch); UUID stubCaseExistsId = wireMockStubs.caseServer.stubCaseExists(CASE_UUID_CAUSING_STUDY_CREATION_ERROR, true); mockMvc.perform(post("/v1/studies/cases/{caseUuid}", CASE_UUID_CAUSING_STUDY_CREATION_ERROR) @@ -844,7 +851,8 @@ void testCreateStudyWithDefaultSpreadsheetConfigCollectionUserHasValidParamsInPr CreateStudyStubs createStudyStubs = setupCreateStudyStubs(VALID_PARAMS_IN_PROFILE_USER_ID, USER_PROFILE_VALID_PARAMS_JSON, CASE_UUID_STRING); setupCreateParametersStubs(); DuplicateParameterStubs duplicateParameterStubs = setupDuplicateParametersStubs(); - UUID stubSpreadsheetConfigDuplicateFromId = wireMockStubs.stubSpreadsheetConfigDuplicateFrom(PROFILE_SPREADSHEET_CONFIG_COLLECTION_VALID_UUID_STRING, DUPLICATED_SPREADSHEET_CONFIG_COLLECTION_UUID_JSON); + UUID stubSpreadsheetConfigDuplicateFromId = wireMockStubs.stubSpreadsheetConfigDuplicateFrom(PROFILE_SPREADSHEET_CONFIG_COLLECTION_VALID_UUID_STRING, + DUPLICATED_SPREADSHEET_CONFIG_COLLECTION_UUID_JSON); createStudy(VALID_PARAMS_IN_PROFILE_USER_ID, CASE_UUID); @@ -876,7 +884,8 @@ void testCreateStudyWithDefaultNetworkVisualizationsParametersUserHasValidParams CreateStudyStubs createStudyStubs = setupCreateStudyStubs(VALID_PARAMS_IN_PROFILE_USER_ID, USER_PROFILE_VALID_PARAMS_JSON, CASE_UUID_STRING); setupCreateParametersStubs(); DuplicateParameterStubs duplicateParameterStubs = setupDuplicateParametersStubs(); - UUID stubNetworkVisualizationParamsDuplicateFromId = wireMockStubs.stubNetworkVisualizationParamsDuplicateFrom(PROFILE_NETWORK_VISUALIZATION_VALID_PARAMETERS_UUID_STRING, DUPLICATED_NETWORK_VISUALIZATION_PARAMS_JSON); + UUID stubNetworkVisualizationParamsDuplicateFromId = wireMockStubs.stubNetworkVisualizationParamsDuplicateFrom(PROFILE_NETWORK_VISUALIZATION_VALID_PARAMETERS_UUID_STRING, + DUPLICATED_NETWORK_VISUALIZATION_PARAMS_JSON); createStudy(VALID_PARAMS_IN_PROFILE_USER_ID, CASE_UUID); @@ -926,7 +935,10 @@ private void testDuplicateStudy(UUID study1Uuid, UUID rootNetworkUuid, String us NetworkModificationNode node2 = createNetworkModificationNode(study1Uuid, modificationNodeUuid, VARIANT_ID_2, "node2", userId); // add modification on node "node1" - String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\",\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\",\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; + String createTwoWindingsTransformerAttributes = "{\"type\":\"" + ModificationType.TWO_WINDINGS_TRANSFORMER_CREATION + + "\",\"equipmentId\":\"2wtId\",\"equipmentName\":\"2wtName\",\"seriesResistance\":\"10\",\"seriesReactance\":\"10\",\"magnetizingConductance\":\"100\"," + + "\"magnetizingSusceptance\":\"100\",\"ratedVoltage1\":\"480\",\"ratedVoltage2\":\"380\",\"voltageLevelId1\":\"CHOO5P6\",\"busOrBusbarSectionId1\":\"CHOO5P6_1\"," + + "\"voltageLevelId2\":\"CHOO5P6\",\"busOrBusbarSectionId2\":\"CHOO5P6_1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node1.getId(), rootNetworkUuid) @@ -938,11 +950,14 @@ private void testDuplicateStudy(UUID study1Uuid, UUID rootNetworkUuid, String us checkEquipmentCreatingMessagesReceived(study1Uuid, node1.getId()); checkEquipmentUpdatingFinishedMessagesReceived(study1Uuid, node1.getId()); checkElementUpdatedMessageSent(study1Uuid, userId); - Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(rootNetworkUuid, node1.getId(), NETWORK_UUID))); + Pair> modificationBody = Pair.of(createTwoWindingsTransformerAttributes, + List.of(rootNetworkNodeInfoService.getNetworkModificationApplicationContext(rootNetworkUuid, node1.getId(), NETWORK_UUID))); wireMockStubs.verifyNetworkModificationPostWithVariant(getModificationContextJsonString(mapper, modificationBody)); // add modification on node "node2" - String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\",\"busId\":\"idBus1\"}"; + String createLoadAttributes = "{\"type\":\"" + ModificationType.LOAD_CREATION + + "\",\"loadId\":\"loadId1\",\"loadName\":\"loadName1\",\"loadType\":\"UNDEFINED\",\"activePower\":\"100.0\",\"reactivePower\":\"50.0\",\"voltageLevelId\":\"idVL1\"," + + "\"busId\":\"idBus1\"}"; wireMockStubs.stubNetworkModificationPost(mapper.writeValueAsString(new NetworkModificationsResult(List.of(UUID.randomUUID()), List.of(Optional.empty())))); mockMvc.perform(post(URI_NETWORK_MODIF, study1Uuid, node2.getId(), rootNetworkUuid) diff --git a/src/test/java/org/gridsuite/study/server/studycontroller/StudyTestBase.java b/src/test/java/org/gridsuite/study/server/studycontroller/StudyTestBase.java index edb723e6f5..48f56819eb 100644 --- a/src/test/java/org/gridsuite/study/server/studycontroller/StudyTestBase.java +++ b/src/test/java/org/gridsuite/study/server/studycontroller/StudyTestBase.java @@ -336,10 +336,13 @@ private void initMockBeans(Network network) { } private void initMockBeansNetworkNotExisting() { - when(networkStoreService.cloneNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID, Collections.emptyList())).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); + when(networkStoreService.cloneNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID, + Collections.emptyList())).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); when(networkStoreService.getNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID)).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); - when(networkStoreService.getNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID, PreloadingStrategy.COLLECTION)).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); - when(networkStoreService.getNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID, PreloadingStrategy.NONE)).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); + when(networkStoreService.getNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID, + PreloadingStrategy.COLLECTION)).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); + when(networkStoreService.getNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID, + PreloadingStrategy.NONE)).thenThrow(new PowsyblException("Network " + StudyTest.NOT_EXISTING_NETWORK_UUID + " not found")); doNothing().when(networkStoreService).deleteNetwork(StudyTest.NOT_EXISTING_NETWORK_UUID); } @@ -454,7 +457,8 @@ protected NetworkModificationNode createNetworkModificationNode(UUID studyUuid, } protected NetworkModificationNode createNetworkModificationNode(UUID studyUuid, UUID parentNodeUuid, - UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, BuildStatus buildStatus, String userId) throws Exception { + UUID modificationGroupUuid, String variantId, String nodeName, NetworkModificationNodeType nodeType, BuildStatus buildStatus, + String userId) throws Exception { NetworkModificationNode modificationNode = NetworkModificationNode.builder().name(nodeName) .description("description").modificationGroupUuid(modificationGroupUuid).variantId(variantId) .nodeType(nodeType) @@ -582,7 +586,8 @@ protected record DuplicateParameterStubs(UUID stubParametersDuplicateFromId, UUID stubSpreadsheetConfigDuplicateFromId, UUID stubNetworkVisualizationParamsDuplicateFromId, UUID stubWorkspacesConfigDuplicateFromId) { - public void verify(WireMockStubs wireMockStubs, ComputationServerStubs computationServerStubs, int parametersDuplicateFromNbRequests, int spreadsheetConfigDuplicateFromNbRequests, int networkVisualizationParamsDuplicateFromNbRequests, int workspacesConfigDuplicateFromNbRequests) { + public void verify(WireMockStubs wireMockStubs, ComputationServerStubs computationServerStubs, int parametersDuplicateFromNbRequests, int spreadsheetConfigDuplicateFromNbRequests, + int networkVisualizationParamsDuplicateFromNbRequests, int workspacesConfigDuplicateFromNbRequests) { if (stubParametersDuplicateFromId != null) { computationServerStubs.verifyParametersDuplicateFromAny(stubParametersDuplicateFromId, parametersDuplicateFromNbRequests); } @@ -628,7 +633,8 @@ protected void setupCreateParametersStubs() throws Exception { wireMockStubs.stubWorkspacesConfigDefault(mapper.writeValueAsString(UUID.randomUUID())); } - protected void verifyCreateParameters(int createParametersNbRequests, int parametersDefaultNbRequests, int spreadsheetConfigDefaultNbRequests, int networkVisualizationParamsDefaultNbRequests, int workspacesConfigDefaultNbRequests) { + protected void verifyCreateParameters(int createParametersNbRequests, int parametersDefaultNbRequests, int spreadsheetConfigDefaultNbRequests, int networkVisualizationParamsDefaultNbRequests, + int workspacesConfigDefaultNbRequests) { computationServerStubs.verifyParameters(createParametersNbRequests); computationServerStubs.verifyParametersDefault(parametersDefaultNbRequests); wireMockStubs.verifySpreadsheetConfigDefault(spreadsheetConfigDefaultNbRequests); diff --git a/src/test/java/org/gridsuite/study/server/utils/DatasourceProxyBeanPostProcessor.java b/src/test/java/org/gridsuite/study/server/utils/DatasourceProxyBeanPostProcessor.java index 837d83e8ac..bc42c865d5 100644 --- a/src/test/java/org/gridsuite/study/server/utils/DatasourceProxyBeanPostProcessor.java +++ b/src/test/java/org/gridsuite/study/server/utils/DatasourceProxyBeanPostProcessor.java @@ -26,7 +26,8 @@ * The author of db-utils describes its library in https://vladmihalcea.com/how-to-detect-the-n-plus-one-query-problem-during-testing/ * But the recommended method to select the datasource (using @bean public DataSource dataSource(DataSource originalDataSource) {...} ) * doesn't work when you use the spring default profile for tests - * It crashes with this exception : java.lang.IllegalStateException: Failed to load ApplicationContext : org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'dataSource': Requested bean is currently in creation: Is there an unresolvable circular reference + * It crashes with this exception : java.lang.IllegalStateException: Failed to load ApplicationContext : org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with + name 'dataSource': Requested bean is currently in creation: Is there an unresolvable circular reference * Instead, the underlying datasource-proxy library author recommends to use a BeanPostProcessor: * https://github.com/ttddyy/datasource-proxy-examples/blob/master/springboot-autoconfig-example/src/main/java/net/ttddyy/dsproxy/example/DatasourceProxyBeanPostProcessor.java */ @@ -56,7 +57,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) { private static class ProxyDataSourceInterceptor implements MethodInterceptor { private final DataSource dataSource; - public ProxyDataSourceInterceptor(final DataSource dataSource) { + ProxyDataSourceInterceptor(final DataSource dataSource) { ChainListener listener = new ChainListener(); listener.addListener(new DataSourceQueryCountListener()); this.dataSource = ProxyDataSourceBuilder.create(dataSource) diff --git a/src/test/java/org/gridsuite/study/server/utils/MatcherBasicStudyInfos.java b/src/test/java/org/gridsuite/study/server/utils/MatcherBasicStudyInfos.java index 61eae3b4b4..85c7cf991e 100644 --- a/src/test/java/org/gridsuite/study/server/utils/MatcherBasicStudyInfos.java +++ b/src/test/java/org/gridsuite/study/server/utils/MatcherBasicStudyInfos.java @@ -6,11 +6,10 @@ */ package org.gridsuite.study.server.utils; -import java.util.UUID; - import org.gridsuite.study.server.dto.BasicStudyInfos; import org.hamcrest.Description; import org.hamcrest.TypeSafeMatcher; +import java.util.UUID; /** * @author Chamseddine Benhamed diff --git a/src/test/java/org/gridsuite/study/server/utils/MatcherCreatedStudyBasicInfos.java b/src/test/java/org/gridsuite/study/server/utils/MatcherCreatedStudyBasicInfos.java index a4b8b3f9ae..a13af11c62 100644 --- a/src/test/java/org/gridsuite/study/server/utils/MatcherCreatedStudyBasicInfos.java +++ b/src/test/java/org/gridsuite/study/server/utils/MatcherCreatedStudyBasicInfos.java @@ -6,9 +6,8 @@ */ package org.gridsuite.study.server.utils; -import java.util.UUID; - import org.gridsuite.study.server.dto.CreatedStudyBasicInfos; +import java.util.UUID; /** * @author Chamseddine Benhamed diff --git a/src/test/java/org/gridsuite/study/server/utils/MatcherStudyInfos.java b/src/test/java/org/gridsuite/study/server/utils/MatcherStudyInfos.java index c89c9457fc..418bb589ce 100644 --- a/src/test/java/org/gridsuite/study/server/utils/MatcherStudyInfos.java +++ b/src/test/java/org/gridsuite/study/server/utils/MatcherStudyInfos.java @@ -6,9 +6,8 @@ */ package org.gridsuite.study.server.utils; -import java.util.UUID; - import org.gridsuite.study.server.dto.StudyInfos; +import java.util.UUID; /** * @author Chamseddine Benhamed diff --git a/src/test/java/org/gridsuite/study/server/utils/TestUtils.java b/src/test/java/org/gridsuite/study/server/utils/TestUtils.java index b9a1904ff7..86b82ba046 100644 --- a/src/test/java/org/gridsuite/study/server/utils/TestUtils.java +++ b/src/test/java/org/gridsuite/study/server/utils/TestUtils.java @@ -192,7 +192,7 @@ public static StudyEntity createDummyStudy(UUID networkUuid, String networkId, U public static StudyEntity createDummyStudy(UUID networkUuid, UUID caseUuid, String caseName, String caseFormat, UUID reportUuid) { StudyEntity studyEntity = StudyEntity.builder().id(UUID.randomUUID()) -// .shortCircuitParametersUuid(UUID.randomUUID()) + // .shortCircuitParametersUuid(UUID.randomUUID()) .build(); studyEntity.addRootNetwork(RootNetworkEntity.builder().id(UUID.randomUUID()).name("rootNetworkName").tag("dum").caseFormat(caseFormat).caseUuid(caseUuid).caseName(caseName).networkId("netId").networkUuid(networkUuid).reportUuid(reportUuid).build()); @@ -207,6 +207,7 @@ public static NetworkModificationNode createModificationNodeInfo(String name) { .children(Collections.emptyList()).build(); } + @SuppressWarnings("checkstyle:IllegalCatch") public static void assertQueuesEmptyThenClear(List destinations, OutputDestination output) { try { destinations.forEach(destination -> assertNull(output.receive(TIMEOUT, destination), "Should not be any messages in queue " + destination + " : ")); @@ -217,6 +218,7 @@ public static void assertQueuesEmptyThenClear(List destinations, OutputD } } + @SuppressWarnings("checkstyle:IllegalCatch") public static void assertServerRequestsEmptyThenShutdown(MockWebServer server) throws UncheckedInterruptedException { try { assertNull(getRequestsDone(1, server), "Should not be any http requests : "); diff --git a/src/test/java/org/gridsuite/study/server/utils/elasticsearch/DisableElasticsearch.java b/src/test/java/org/gridsuite/study/server/utils/elasticsearch/DisableElasticsearch.java index dd0084322f..f6ef85f669 100644 --- a/src/test/java/org/gridsuite/study/server/utils/elasticsearch/DisableElasticsearch.java +++ b/src/test/java/org/gridsuite/study/server/utils/elasticsearch/DisableElasticsearch.java @@ -11,12 +11,11 @@ import org.gridsuite.study.server.elasticsearch.StudyInfosRepository; import org.gridsuite.study.server.elasticsearch.TombstonedEquipmentInfosRepository; import org.mockito.Mockito; +import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Import; -import org.springframework.boot.test.context.TestConfiguration; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.test.context.TestPropertySource; - import java.lang.annotation.*; /** diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/CaseServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/CaseServerStubs.java index 850fa219a5..26a1466f53 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/CaseServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/CaseServerStubs.java @@ -21,7 +21,7 @@ import static org.gridsuite.study.server.utils.wiremock.WireMockUtils.*; /** - * @author Kevin Le Saulnier + * @author Kevin Le Saulnier */ public class CaseServerStubs { private final WireMockServer wireMock; diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/ComputationServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/ComputationServerStubs.java index f3cccbf20d..d6654b5cf1 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/ComputationServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/ComputationServerStubs.java @@ -22,7 +22,7 @@ import static org.gridsuite.study.server.utils.wiremock.WireMockUtils.verifyPostRequest; /** - * @author Maissa Souissi + * @author Maissa Souissi */ public class ComputationServerStubs { private final WireMockServer wireMock; @@ -119,6 +119,7 @@ public void verifyParametersDuplicateFrom(String duplicateFromUuid, int nbReques /** Preferably use function without WireMockServer in signature * TODO remove after current usages have been fixed + * @deprecated use function without WireMockServer in signature **/ @Deprecated public void stubParameterPut(WireMockServer wireMockServer, String paramUuid, String responseJson) { @@ -128,6 +129,7 @@ public void stubParameterPut(WireMockServer wireMockServer, String paramUuid, St /** This function doesn't remove request after verifying it * TODO remove after current usages have been fixed + * @deprecated use function without WireMockServer in signature **/ @Deprecated public void verifyParameterPut(WireMockServer wireMockServer, String paramUuid) { diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/LoadflowServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/LoadflowServerStubs.java index d6d5626544..1a20e83678 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/LoadflowServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/LoadflowServerStubs.java @@ -22,7 +22,7 @@ import static org.gridsuite.study.server.utils.SendInput.POST_ACTION_SEND_INPUT; /** - * @author Abdelsalem Hedhili + * @author Abdelsalem Hedhili */ public class LoadflowServerStubs { private final WireMockServer wireMock; @@ -50,7 +50,8 @@ public void stubRunLoadflow(UUID networkUuid, String responseBody) { } public void stubRunLoadflowFailed(UUID networkUuid, UUID nodeUuid, String responseBody) { - MappingBuilder mappingBuilder = WireMock.post(WireMock.urlMatching("/v1/networks/" + networkUuid + "/run-and-save\\?withRatioTapChangers=.*&receiver=.*&reportUuid=.*&reporterId=.*&variantId=.*")); + MappingBuilder mappingBuilder = WireMock.post(WireMock.urlMatching("/v1/networks/" + networkUuid + + "/run-and-save\\?withRatioTapChangers=.*&receiver=.*&reportUuid=.*&reporterId=.*&variantId=.*")); mappingBuilder = mappingBuilder.withPostServeAction(POST_ACTION_SEND_INPUT, Parameters.from( @@ -68,7 +69,8 @@ public void stubRunLoadflowFailed(UUID networkUuid, UUID nodeUuid, String respon } public void verifyRunLoadflow(UUID networkUuid) { - WireMockUtilsCriteria.verifyPostRequest(wireMock, "/v1/networks/" + networkUuid + "/run-and-save", Map.of("withRatioTapChangers", new RegexPattern(".*"), "receiver", new RegexPattern(".*"), "reportUuid", new RegexPattern(".*"), "reporterId", new RegexPattern(".*"), "variantId", new RegexPattern(".*"))); + WireMockUtilsCriteria.verifyPostRequest(wireMock, "/v1/networks/" + networkUuid + "/run-and-save", Map.of("withRatioTapChangers", new RegexPattern(".*"), "receiver", new RegexPattern(".*"), + "reportUuid", new RegexPattern(".*"), "reporterId", new RegexPattern(".*"), "variantId", new RegexPattern(".*"))); } public void stubGetLoadflowResult(UUID resultUuid, String responseBody) { @@ -239,7 +241,8 @@ public void verifyGetComputation(String resultUuid) { } public void stubGetLimitViolation(String resultUuid, String limitViolationResponse, boolean withRequestParam) { - wireMock.stubFor(WireMock.get(WireMock.urlMatching("/v1/results/" + resultUuid + "/limit-violations" + (withRequestParam ? "\\?filters=.*globalFilters=.*networkUuid=.*variantId.*sort=.*" : ""))) + wireMock.stubFor(WireMock.get(WireMock.urlMatching("/v1/results/" + resultUuid + "/limit-violations" + + (withRequestParam ? "\\?filters=.*globalFilters=.*networkUuid=.*variantId.*sort=.*" : ""))) .willReturn(WireMock.ok() .withBody(limitViolationResponse) .withHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE)) @@ -249,7 +252,8 @@ public void stubGetLimitViolation(String resultUuid, String limitViolationRespon public void verifyGetLimitViolation(String resultUuid, boolean withRequestParam) { WireMockUtilsCriteria.verifyGetRequest(wireMock, "/v1/results/" + resultUuid + "/limit-violations", withRequestParam ? - Map.of("filters", new RegexPattern(".*"), "globalFilters", new RegexPattern(".*"), "networkUuid", new RegexPattern(".*"), "variantId", new RegexPattern(".*"), "sort", new RegexPattern(".*")) + Map.of("filters", new RegexPattern(".*"), "globalFilters", new RegexPattern(".*"), "networkUuid", new RegexPattern(".*"), "variantId", new RegexPattern(".*"), "sort", new + RegexPattern(".*")) : Map.of()); } diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/NetworkConversionServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/NetworkConversionServerStubs.java index 603934e4b9..18062c01d9 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/NetworkConversionServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/NetworkConversionServerStubs.java @@ -27,7 +27,7 @@ import static org.gridsuite.study.server.utils.wiremock.WireMockUtils.verifyPostRequest; /** - * @author Kevin Le Saulnier + * @author Kevin Le Saulnier */ public class NetworkConversionServerStubs { @@ -61,7 +61,8 @@ public void verifyImportNetwork(UUID stubUuid, String caseUuid, String variantId verifyImportNetwork(stubUuid, caseUuid, variantId, null); } - public UUID stubImportNetworkWithPostAction(String caseUuid, Map importParameters, String networkUuid, String networkId, String variantId, String caseFormat, String caseName, CountDownLatch countDownLatch) { + public UUID stubImportNetworkWithPostAction(String caseUuid, Map importParameters, String networkUuid, String networkId, String variantId, String caseFormat, String caseName, + CountDownLatch countDownLatch) { MappingBuilder mappingBuilder = WireMock.post(WireMock.urlPathEqualTo(URI_NETWORK)) .withQueryParam("caseUuid", equalTo(caseUuid)) .withQueryParam("receiver", WireMock.matching(".*")); diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/ReportServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/ReportServerStubs.java index efda793070..acffd363b9 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/ReportServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/ReportServerStubs.java @@ -12,7 +12,7 @@ import java.util.Map; /** - * @author Maissa Souissi + * @author Maissa Souissi */ public class ReportServerStubs { private final WireMockServer wireMock; diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/ShortcircuitServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/ShortcircuitServerStubs.java index 31cbd38f7e..298b8c801b 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/ShortcircuitServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/ShortcircuitServerStubs.java @@ -39,7 +39,8 @@ public void stubShortCircuitRunWithPostAction(String networkUuid, String variant Map.of( "payload", "", "destination", destination, - "receiver", "%7B%22nodeUuid%22%3A%22" + modificationUuid + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + rootNetworkUuid + "%22%2C%20%22userId%22%3A%22userId%22%7D" + "receiver", "%7B%22nodeUuid%22%3A%22" + modificationUuid + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + rootNetworkUuid + + "%22%2C%20%22userId%22%3A%22userId%22%7D" )) ).willReturn(WireMock.okJson("\"" + resultUuid + "\""))); } @@ -51,7 +52,8 @@ public void stubShortCircuitStopWithPostAction(String resultUuid, String destina Map.of( "payload", "", "destination", destination, - "receiver", "%7B%22nodeUuid%22%3A%22" + modificationNodeUuid + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + rootNetworkUuid + "%22%2C%20%22userId%22%3A%22userId%22%7D" + "receiver", "%7B%22nodeUuid%22%3A%22" + modificationNodeUuid + "%22%2C%20%22rootNetworkUuid%22%3A%20%22" + rootNetworkUuid + + "%22%2C%20%22userId%22%3A%22userId%22%7D" ))).willReturn(ok()) ); } diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/UserAdminServerStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/UserAdminServerStubs.java index 68fef20282..b2f7b66a87 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/UserAdminServerStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/UserAdminServerStubs.java @@ -15,7 +15,7 @@ import java.util.UUID; /** - * @author Maissa Souissi + * @author Maissa Souissi */ public class UserAdminServerStubs { diff --git a/src/test/java/org/gridsuite/study/server/utils/wiremock/WireMockStubs.java b/src/test/java/org/gridsuite/study/server/utils/wiremock/WireMockStubs.java index 5dc39d607f..d4c61c427a 100644 --- a/src/test/java/org/gridsuite/study/server/utils/wiremock/WireMockStubs.java +++ b/src/test/java/org/gridsuite/study/server/utils/wiremock/WireMockStubs.java @@ -31,7 +31,7 @@ /** * /!\ STOP ADDING new methods in this file - * @Deprecated Do a local method on a test or create a dedicated file (for stub and verify) + * @deprecated Do a local method on a test or create a dedicated file (for stub and verify) */ @Deprecated @@ -277,7 +277,8 @@ public void verifyNetworkModificationDeleteIndex(UUID stubId) { } public void verifyNetworkModificationDeleteIndex(UUID stubId, int nbRequests) { - verifyDeleteRequest(wireMock, stubId, URI_NETWORK_MODIFICATION + DELIMITER + "index.*", true, Map.of("networkUuid", WireMock.matching(".*"), "groupUuids", WireMock.matching(".*")), nbRequests); + verifyDeleteRequest(wireMock, stubId, URI_NETWORK_MODIFICATION + DELIMITER + "index.*", true, Map.of("networkUuid", WireMock.matching(".*"), "groupUuids", WireMock.matching(".*")), + nbRequests); } public UUID stubBranchOr3WTVoltageLevelIdGet(String networkUuid, String equipmentId, String responseBody) {