From 8989ebc1ed86f6dc788cbe17f9465a566ef01668 Mon Sep 17 00:00:00 2001 From: Kamil MARUT Date: Tue, 17 Feb 2026 10:26:59 +0100 Subject: [PATCH] refactor: move modificationUuids from ProcessConfig to ModifyingProcessConfig interface Moved modificationUuids from ProcessConfig to ModifyingProcessConfig interface in order to make the ProcessConfig interface more generic. It is required for further developments related to SnapshotRefinerServer's connection to monitor-server Signed-off-by: Kamil MARUT --- .../commons/ModifyingProcessConfig.java | 19 ++++++++ .../monitor/commons/ProcessConfig.java | 4 -- .../commons/SecurityAnalysisConfig.java | 3 +- .../commons/steps/ApplyModificationsStep.java | 4 +- .../steps/ApplyModificationsStepTest.java | 44 ++++++++++++++----- 5 files changed, 55 insertions(+), 19 deletions(-) create mode 100644 monitor-commons/src/main/java/org/gridsuite/monitor/commons/ModifyingProcessConfig.java diff --git a/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ModifyingProcessConfig.java b/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ModifyingProcessConfig.java new file mode 100644 index 00000000..80ff6542 --- /dev/null +++ b/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ModifyingProcessConfig.java @@ -0,0 +1,19 @@ +/** + * Copyright (c) 2026, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * 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.monitor.commons; + +import java.util.List; +import java.util.UUID; + +/** + * @author Kamil MARUT {@literal } + */ +public interface ModifyingProcessConfig extends ProcessConfig { + + List modificationUuids(); + +} diff --git a/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ProcessConfig.java b/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ProcessConfig.java index 419e426f..b415e73e 100644 --- a/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ProcessConfig.java +++ b/monitor-commons/src/main/java/org/gridsuite/monitor/commons/ProcessConfig.java @@ -9,9 +9,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.util.List; -import java.util.UUID; - /** * @author Antoine Bouhours */ @@ -25,5 +22,4 @@ public interface ProcessConfig { ProcessType processType(); - List modificationUuids(); } diff --git a/monitor-commons/src/main/java/org/gridsuite/monitor/commons/SecurityAnalysisConfig.java b/monitor-commons/src/main/java/org/gridsuite/monitor/commons/SecurityAnalysisConfig.java index 639ee4c6..3e98f6a7 100644 --- a/monitor-commons/src/main/java/org/gridsuite/monitor/commons/SecurityAnalysisConfig.java +++ b/monitor-commons/src/main/java/org/gridsuite/monitor/commons/SecurityAnalysisConfig.java @@ -16,7 +16,8 @@ public record SecurityAnalysisConfig( UUID parametersUuid, List contingencies, List modificationUuids -) implements ProcessConfig { +) implements ModifyingProcessConfig { + @Override public ProcessType processType() { return ProcessType.SECURITY_ANALYSIS; diff --git a/monitor-worker-server/src/main/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStep.java b/monitor-worker-server/src/main/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStep.java index 45be4f5b..d37d6d45 100644 --- a/monitor-worker-server/src/main/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStep.java +++ b/monitor-worker-server/src/main/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStep.java @@ -11,7 +11,7 @@ import com.powsybl.iidm.network.Network; import org.apache.commons.collections4.CollectionUtils; import org.gridsuite.modification.dto.ModificationInfos; -import org.gridsuite.monitor.commons.ProcessConfig; +import org.gridsuite.monitor.commons.ModifyingProcessConfig; import org.gridsuite.monitor.worker.server.core.AbstractProcessStep; import org.gridsuite.monitor.worker.server.core.ProcessStepExecutionContext; import org.gridsuite.monitor.worker.server.services.*; @@ -29,7 +29,7 @@ * @author Antoine Bouhours */ @Component -public class ApplyModificationsStep extends AbstractProcessStep { +public class ApplyModificationsStep extends AbstractProcessStep { private final NetworkModificationService networkModificationService; private final NetworkModificationRestService networkModificationRestService; diff --git a/monitor-worker-server/src/test/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStepTest.java b/monitor-worker-server/src/test/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStepTest.java index bc583f9a..0e5be278 100644 --- a/monitor-worker-server/src/test/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStepTest.java +++ b/monitor-worker-server/src/test/java/org/gridsuite/monitor/worker/server/processes/commons/steps/ApplyModificationsStepTest.java @@ -13,7 +13,7 @@ import org.gridsuite.modification.dto.LoadModificationInfos; import org.gridsuite.modification.dto.ModificationInfos; import org.gridsuite.modification.dto.OperationType; -import org.gridsuite.monitor.commons.ProcessConfig; +import org.gridsuite.monitor.commons.ModifyingProcessConfig; import org.gridsuite.monitor.worker.server.core.ProcessStepExecutionContext; import org.gridsuite.monitor.worker.server.dto.ReportInfos; import org.gridsuite.monitor.worker.server.services.*; @@ -27,6 +27,7 @@ import java.io.IOException; import java.nio.file.Path; +import java.util.Collections; import java.util.List; import java.util.UUID; @@ -54,30 +55,27 @@ class ApplyModificationsStepTest { private S3Service s3Service; @Mock - private ProcessConfig config; + private ModifyingProcessConfig config; - private ApplyModificationsStep applyModificationsStep; + private ApplyModificationsStep applyModificationsStep; @Mock - private ProcessStepExecutionContext stepContext; + private ProcessStepExecutionContext stepContext; private static final UUID MODIFICATION_UUID = UUID.randomUUID(); private static final UUID REPORT_UUID = UUID.randomUUID(); @BeforeEach void setUp() { - applyModificationsStep = new ApplyModificationsStep<>(networkModificationService, networkModificationRestService, s3Service, filterService); - when(config.modificationUuids()).thenReturn(List.of(MODIFICATION_UUID)); when(stepContext.getConfig()).thenReturn(config); - ReportInfos reportInfos = new ReportInfos(REPORT_UUID, ReportNode.newRootReportNode() - .withResourceBundles("i18n.reports") - .withMessageTemplate("test") - .build()); - when(stepContext.getReportInfos()).thenReturn(reportInfos); + + applyModificationsStep = new ApplyModificationsStep<>(networkModificationService, networkModificationRestService, s3Service, filterService); } @Test - void executeApplyModifications() { + void executeApplyModificationsWhenModificationUuidsNotEmpty() { + setUpReportInfos(); + when(config.modificationUuids()).thenReturn(List.of(MODIFICATION_UUID)); String stepType = applyModificationsStep.getType().getName(); assertEquals("APPLY_MODIFICATIONS", stepType); @@ -93,8 +91,22 @@ void executeApplyModifications() { verify(networkModificationService).applyModifications(any(Network.class), any(List.class), any(ReportNode.class), any(FilterService.class)); } + @Test + void executeDoesNothingWhenModificationUuidsEmpty() { + when(config.modificationUuids()).thenReturn(Collections.emptyList()); + + applyModificationsStep.execute(stepContext); + + verifyNoInteractions(networkModificationService); + verifyNoInteractions(networkModificationRestService); + verifyNoInteractions(filterService); + verifyNoInteractions(s3Service); + } + @Test void executeApplyModificationsDebugOn() throws IOException { + setUpReportInfos(); + when(config.modificationUuids()).thenReturn(List.of(MODIFICATION_UUID)); String stepType = applyModificationsStep.getType().getName(); assertEquals("APPLY_MODIFICATIONS", stepType); @@ -135,4 +147,12 @@ void executeApplyModificationsDebugOn() throws IOException { verify(network).write("XIIDM", null, mockedPath); } + + private void setUpReportInfos() { + ReportInfos reportInfos = new ReportInfos(REPORT_UUID, ReportNode.newRootReportNode() + .withResourceBundles("i18n.reports") + .withMessageTemplate("test") + .build()); + when(stepContext.getReportInfos()).thenReturn(reportInfos); + } }