diff --git a/src/main/java/org/gridsuite/modification/server/NetworkModificationController.java b/src/main/java/org/gridsuite/modification/server/NetworkModificationController.java index 6569164c5..10326403f 100644 --- a/src/main/java/org/gridsuite/modification/server/NetworkModificationController.java +++ b/src/main/java/org/gridsuite/modification/server/NetworkModificationController.java @@ -52,7 +52,7 @@ public NetworkModificationController(NetworkModificationService networkModificat @ApiResponse(responseCode = "200", description = "List of modifications of the group") public ResponseEntity> getNetworkModifications(@Parameter(description = "Group UUID") @PathVariable("groupUuid") UUID groupUuid, @Parameter(description = "Only metadata") @RequestParam(name = "onlyMetadata", required = false, defaultValue = "false") Boolean onlyMetadata, - @Parameter(description = "Stashed modifications") @RequestParam(name = "stashed", required = false, defaultValue = "false") Boolean stashed, + @Parameter(description = "Stashed modifications") @RequestParam(name = "stashed", required = false, defaultValue = "false") Boolean stashed, @Parameter(description = "Return 404 if group is not found or an empty list") @RequestParam(name = "errorOnGroupNotFound", required = false, defaultValue = "true") Boolean errorOnGroupNotFound) { return ResponseEntity.ok().body(networkModificationService.getNetworkModifications(groupUuid, onlyMetadata, errorOnGroupNotFound, stashed)); } diff --git a/src/main/java/org/gridsuite/modification/server/dto/BranchStatusModificationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/BranchStatusModificationInfos.java index cd5ceb9a4..652f23f61 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/BranchStatusModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/BranchStatusModificationInfos.java @@ -20,6 +20,9 @@ import org.gridsuite.modification.server.entities.equipment.modification.BranchStatusModificationEntity; import org.gridsuite.modification.server.modifications.AbstractModification; import org.gridsuite.modification.server.modifications.BranchStatusModification; +import java.util.HashMap; +import java.util.Map; + import static org.gridsuite.modification.server.NetworkModificationException.Type.BRANCH_ACTION_TYPE_EMPTY; /** @@ -88,4 +91,16 @@ public void check() { throw new NetworkModificationException(BRANCH_ACTION_TYPE_EMPTY); } } + + @Override + public Map getMapMessageValues() { + Map mapMessageValues = new HashMap<>(); + mapMessageValues.put("action", getAction().name()); + mapMessageValues.put("equipmentId", getEquipmentId()); + if (getEnergizedVoltageLevelId() != null) { + mapMessageValues.put("energizedVoltageLevelId", getEnergizedVoltageLevelId()); + } + return mapMessageValues; + + } } diff --git a/src/main/java/org/gridsuite/modification/server/dto/DeleteAttachingLineInfos.java b/src/main/java/org/gridsuite/modification/server/dto/DeleteAttachingLineInfos.java index ea076baf2..8dadb8ca7 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/DeleteAttachingLineInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/DeleteAttachingLineInfos.java @@ -21,6 +21,9 @@ import org.gridsuite.modification.server.modifications.AbstractModification; import org.gridsuite.modification.server.modifications.DeleteAttachingLine; +import java.util.HashMap; +import java.util.Map; + /** * @author bendaamerahm */ @@ -64,4 +67,13 @@ public AbstractModification toModification() { public Reporter createSubReporter(ReporterModel reporter) { return reporter.createSubReporter(getType().name(), "Delete attaching line"); } + + @Override + public Map getMapMessageValues() { + Map mapMessageValues = new HashMap<>(); + mapMessageValues.put("attachedLineId", getAttachedLineId()); + mapMessageValues.put("lineToAttachTo1Id", getLineToAttachTo1Id()); + mapMessageValues.put("lineToAttachTo2Id", getLineToAttachTo2Id()); + return mapMessageValues; + } } diff --git a/src/main/java/org/gridsuite/modification/server/dto/DeleteVoltageLevelOnLineInfos.java b/src/main/java/org/gridsuite/modification/server/dto/DeleteVoltageLevelOnLineInfos.java index 8d2fad146..9c3e9d202 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/DeleteVoltageLevelOnLineInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/DeleteVoltageLevelOnLineInfos.java @@ -17,6 +17,9 @@ import org.gridsuite.modification.server.modifications.AbstractModification; import org.gridsuite.modification.server.modifications.DeleteVoltageLevelOnLine; +import java.util.HashMap; +import java.util.Map; + /** * @author bendaamerahm @@ -58,4 +61,13 @@ public AbstractModification toModification() { public Reporter createSubReporter(ReporterModel reporter) { return reporter.createSubReporter(getType().name(), "Delete voltage level on line"); } + + @Override + public Map getMapMessageValues() { + Map mapMessageValues = new HashMap<>(); + mapMessageValues.put("lineToAttachTo1Id", getLineToAttachTo1Id()); + mapMessageValues.put("lineToAttachTo2Id", getLineToAttachTo2Id()); + return mapMessageValues; + } + } diff --git a/src/main/java/org/gridsuite/modification/server/dto/EquipmentAttributeModificationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/EquipmentAttributeModificationInfos.java index 2c8b33a69..7e1674552 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/EquipmentAttributeModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/EquipmentAttributeModificationInfos.java @@ -26,6 +26,7 @@ import org.gridsuite.modification.server.modifications.EquipmentAttributeModification; import org.springframework.lang.NonNull; +import java.util.HashMap; import java.util.Map; import java.util.Set; @@ -110,6 +111,17 @@ public void check() { } } + @Override + public Map getMapMessageValues() { + Map mapMessageValues = new HashMap<>(); + mapMessageValues.put("equipmentAttributeName", getEquipmentAttributeName()); + mapMessageValues.put("equipmentId", getEquipmentId()); + mapMessageValues.put("equipmentAttributeValue", getEquipmentAttributeValue() != null + ? getEquipmentAttributeValue().toString() + : null); + return mapMessageValues; + } + private void checkSwitchStatusModificationInfos() { if (!equipmentAttributeName.equals("open")) { throw new NetworkModificationException(EQUIPMENT_ATTRIBUTE_NAME_ERROR, "For switch status, the attribute name is only 'open'"); diff --git a/src/main/java/org/gridsuite/modification/server/dto/EquipmentModificationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/EquipmentModificationInfos.java index dfb9331fd..d575c2571 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/EquipmentModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/EquipmentModificationInfos.java @@ -15,6 +15,8 @@ import lombok.ToString; import lombok.experimental.SuperBuilder; +import java.util.Map; + /** * @author Slimane Amar * @author Franck Lecuyer @@ -29,4 +31,9 @@ public class EquipmentModificationInfos extends ModificationInfos { @Schema(description = "Equipment ID") @NonNull private String equipmentId; + + @Override + public Map getMapMessageValues() { + return Map.of("equipmentId", getEquipmentId()); + } } diff --git a/src/main/java/org/gridsuite/modification/server/dto/LineAttachToVoltageLevelInfos.java b/src/main/java/org/gridsuite/modification/server/dto/LineAttachToVoltageLevelInfos.java index 53301c50a..4878ede77 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/LineAttachToVoltageLevelInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/LineAttachToVoltageLevelInfos.java @@ -16,6 +16,7 @@ import org.gridsuite.modification.server.entities.equipment.modification.LineAttachToVoltageLevelEntity; import org.gridsuite.modification.server.modifications.AbstractModification; import org.gridsuite.modification.server.modifications.LineAttachToVoltageLevel; +import java.util.Map; /** * @author Nicolas NOIR @@ -81,4 +82,9 @@ public AbstractModification toModification() { public Reporter createSubReporter(ReporterModel reporter) { return reporter.createSubReporter(getType().name(), "Line attach to voltage level"); } + + @Override + public Map getMapMessageValues() { + return Map.of("lineToAttachToId", getLineToAttachToId()); + } } diff --git a/src/main/java/org/gridsuite/modification/server/dto/LineSplitWithVoltageLevelInfos.java b/src/main/java/org/gridsuite/modification/server/dto/LineSplitWithVoltageLevelInfos.java index cf2775c0d..ea31d8acb 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/LineSplitWithVoltageLevelInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/LineSplitWithVoltageLevelInfos.java @@ -18,6 +18,8 @@ import org.gridsuite.modification.server.modifications.AbstractModification; import org.gridsuite.modification.server.modifications.LineSplitWithVoltageLevel; +import java.util.Map; + /** * @author Laurent GARNIER */ @@ -73,4 +75,9 @@ public AbstractModification toModification() { public Reporter createSubReporter(ReporterModel reporter) { return reporter.createSubReporter(getType().name(), "Line split with voltage level"); } + + @Override + public Map getMapMessageValues() { + return Map.of("lineToSplitId", getLineToSplitId()); + } } diff --git a/src/main/java/org/gridsuite/modification/server/dto/LinesAttachToSplitLinesInfos.java b/src/main/java/org/gridsuite/modification/server/dto/LinesAttachToSplitLinesInfos.java index d7efe0dd1..1e16245d7 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/LinesAttachToSplitLinesInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/LinesAttachToSplitLinesInfos.java @@ -16,6 +16,7 @@ import org.gridsuite.modification.server.entities.equipment.modification.LinesAttachToSplitLinesEntity; import org.gridsuite.modification.server.modifications.AbstractModification; import org.gridsuite.modification.server.modifications.LinesAttachToSplitLines; +import java.util.Map; /** @@ -73,4 +74,9 @@ public AbstractModification toModification() { public Reporter createSubReporter(ReporterModel reporter) { return reporter.createSubReporter(getType().name(), "Lines attach to split lines"); } + + @Override + public Map getMapMessageValues() { + return Map.of("attachedLineId", getAttachedLineId()); + } } diff --git a/src/main/java/org/gridsuite/modification/server/dto/ModificationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/ModificationInfos.java index 62dae90de..f011b12bd 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/ModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/ModificationInfos.java @@ -13,10 +13,7 @@ import com.powsybl.commons.reporter.Reporter; import com.powsybl.commons.reporter.ReporterModel; import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; +import lombok.*; import lombok.experimental.SuperBuilder; import org.gridsuite.modification.server.ModificationType; import org.gridsuite.modification.server.NetworkModificationException; @@ -25,14 +22,17 @@ import org.gridsuite.modification.server.modifications.AbstractModification; import java.time.ZonedDateTime; +import java.util.Map; import java.util.UUID; +import java.util.concurrent.atomic.AtomicReference; /** * @author Slimane Amar */ @JsonTypeInfo( use = JsonTypeInfo.Id.NAME, - property = "type" + property = "type", + include = JsonTypeInfo.As.EXISTING_PROPERTY ) @JsonSubTypes({ @JsonSubTypes.Type(value = GroovyScriptInfos.class), @@ -78,12 +78,35 @@ public class ModificationInfos { @Schema(description = "Modification id") private UUID uuid; + @Schema(description = "Modification type") + @Setter(AccessLevel.NONE) + private final AtomicReference type = new AtomicReference<>(null); // Only accessor (automatically initialized) + @Schema(description = "Modification date") private ZonedDateTime date; @Schema(description = "Modification flag") private Boolean stashed; + @Schema(description = "Message type") + private String messageType; + + @Schema(description = "Message values") + private String messageValues; + + // Only for metadata + public static ModificationInfos fromEntity(@NonNull ModificationEntity entity) { + ModificationInfos modificationInfos = ModificationInfos.builder() + .uuid(entity.getId()) + .date(entity.getDate()) + .stashed(entity.getStashed()) + .messageType(entity.getMessageType()) + .messageValues(entity.getMessageValues()) + .build(); + modificationInfos.type.set(ModificationType.valueOf(entity.getType())); + return modificationInfos; + } + @JsonIgnore public ModificationEntity toEntity() { throw new UnsupportedOperationException("TODO"); @@ -104,9 +127,13 @@ public final NetworkModificationException.Type getErrorType() { return NetworkModificationException.Type.valueOf(this.getClass().getAnnotation(ModificationErrorTypeName.class).value()); } - @JsonIgnore public final ModificationType getType() { - return ModificationType.valueOf(this.getClass().getAnnotation(JsonTypeName.class).value()); + return type.get() != null ? type.get() : ModificationType.valueOf(this.getClass().getAnnotation(JsonTypeName.class).value()); + } + + @JsonIgnore + public Map getMapMessageValues() { + return Map.of(); } @JsonIgnore diff --git a/src/main/java/org/gridsuite/modification/server/dto/ScalingInfos.java b/src/main/java/org/gridsuite/modification/server/dto/ScalingInfos.java index c29f6b03d..bbb462946 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/ScalingInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/ScalingInfos.java @@ -31,4 +31,5 @@ public class ScalingInfos extends ModificationInfos { @Schema(description = "variation type") private VariationType variationType; + } diff --git a/src/main/java/org/gridsuite/modification/server/dto/TabularModificationInfos.java b/src/main/java/org/gridsuite/modification/server/dto/TabularModificationInfos.java index 56c684363..e75c8e85c 100644 --- a/src/main/java/org/gridsuite/modification/server/dto/TabularModificationInfos.java +++ b/src/main/java/org/gridsuite/modification/server/dto/TabularModificationInfos.java @@ -21,7 +21,9 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.experimental.SuperBuilder; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @author Etienne Homer @@ -54,4 +56,11 @@ public AbstractModification toModification() { public Reporter createSubReporter(ReporterModel reporter) { return reporter.createSubReporter(ModificationType.TABULAR_MODIFICATION.name(), "Tabular modification"); } + + @Override + public Map getMapMessageValues() { + Map mapMessageValues = new HashMap<>(); + mapMessageValues.put("tabularModificationType", getModificationType()); + return mapMessageValues; + } } diff --git a/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java index 90e5fac91..c4aad8da0 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/ModificationEntity.java @@ -6,13 +6,15 @@ */ package org.gridsuite.modification.server.entities; +import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.persistence.*; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.ModificationInfos; -import jakarta.persistence.*; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; @@ -36,6 +38,9 @@ public class ModificationEntity { @Column(name = "id") private UUID id; + @Column(name = "type") + private String type; + @Column(name = "date") private ZonedDateTime date; @@ -50,10 +55,19 @@ public class ModificationEntity { @Column(name = "modifications_order") private int modificationsOrder; - public ModificationEntity(UUID id, ZonedDateTime date, Boolean stashed) { + @Column(name = "message_type") + private String messageType; + + @Column(name = "message_values") + private String messageValues; + + public ModificationEntity(UUID id, String type, ZonedDateTime date, Boolean stashed, String messageType, String messageValues) { this.id = id; + this.type = type; this.date = date; this.stashed = stashed; + this.messageType = messageType; + this.messageValues = messageValues; } protected ModificationEntity(ModificationInfos modificationInfos) { @@ -62,14 +76,12 @@ protected ModificationEntity(ModificationInfos modificationInfos) { } //We need to limit the precision to avoid database precision storage limit issue (postgres has a precision of 6 digits while h2 can go to 9) this.date = ZonedDateTime.now(ZoneOffset.UTC).truncatedTo(ChronoUnit.MICROS); + + assignAttributes(modificationInfos); } public ModificationInfos toModificationInfos() { - return ModificationInfos.builder() - .uuid(this.id) - .date(this.date) - .stashed(this.stashed) - .build(); + return ModificationInfos.fromEntity(this); } public void update(ModificationInfos modificationInfos) { @@ -77,6 +89,14 @@ public void update(ModificationInfos modificationInfos) { if (modificationInfos == null) { throw new NullPointerException("Impossible to update entity from null DTO"); } + assignAttributes(modificationInfos); + } + + @SneakyThrows + private void assignAttributes(ModificationInfos modificationInfos) { + this.setType(modificationInfos.getType().name()); + this.setMessageType(modificationInfos.getType().name()); + this.setMessageValues(new ObjectMapper().writeValueAsString(modificationInfos.getMapMessageValues())); } public ModificationEntity copy() { diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/EquipmentModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/EquipmentModificationEntity.java index 8a0dc58ed..748ed1003 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/EquipmentModificationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/EquipmentModificationEntity.java @@ -6,15 +6,14 @@ */ package org.gridsuite.modification.server.entities.equipment.modification; +import jakarta.persistence.Column; +import jakarta.persistence.MappedSuperclass; import lombok.Getter; import lombok.NoArgsConstructor; import org.gridsuite.modification.server.dto.EquipmentModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.entities.ModificationEntity; -import jakarta.persistence.Column; -import jakarta.persistence.MappedSuperclass; - /** * @author Franck Lecuyer */ diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/attribute/EquipmentAttributeModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/attribute/EquipmentAttributeModificationEntity.java index 43173e1dc..08c647222 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/attribute/EquipmentAttributeModificationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/attribute/EquipmentAttributeModificationEntity.java @@ -18,6 +18,7 @@ import jakarta.persistence.Enumerated; import jakarta.persistence.MappedSuperclass; + /** * @author Slimane Amar * @author Franck Lecuyer diff --git a/src/main/java/org/gridsuite/modification/server/repositories/ModificationRepository.java b/src/main/java/org/gridsuite/modification/server/repositories/ModificationRepository.java index 4fee80094..944833ffd 100644 --- a/src/main/java/org/gridsuite/modification/server/repositories/ModificationRepository.java +++ b/src/main/java/org/gridsuite/modification/server/repositories/ModificationRepository.java @@ -29,7 +29,7 @@ public interface ModificationRepository extends JpaRepository findAllBaseByGroupId(UUID uuid); @EntityGraph(attributePaths = {"modifications", "modifications.reactiveCapabilityCurvePoints"}, type = EntityGraph.EntityGraphType.LOAD) diff --git a/src/main/resources/db/changelog/changesets/changelog_20231010T120459Z.xml b/src/main/resources/db/changelog/changesets/changelog_20231010T120459Z.xml new file mode 100644 index 000000000..f0312d6bd --- /dev/null +++ b/src/main/resources/db/changelog/changesets/changelog_20231010T120459Z.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/resources/db/changelog/changesets/migrationMetadataModifications_20231010T120459Z.sql b/src/main/resources/db/changelog/changesets/migrationMetadataModifications_20231010T120459Z.sql new file mode 100644 index 000000000..eac6e1e95 --- /dev/null +++ b/src/main/resources/db/changelog/changesets/migrationMetadataModifications_20231010T120459Z.sql @@ -0,0 +1,211 @@ +UPDATE modification m1 SET + type = (select CASE + WHEN beam.id IS NOT NULL OR feam.id IS NOT NULL OR ieam.id IS NOT NULL OR deam.id IS NOT NULL OR seam.id IS NOT NULL THEN 'EQUIPMENT_ATTRIBUTE_MODIFICATION' + WHEN batteryc.id IS NOT NULL THEN 'BATTERY_CREATION' + WHEN batterym.id IS NOT NULL THEN 'BATTERY_MODIFICATION' + WHEN bsm.id IS NOT NULL THEN 'BRANCH_STATUS_MODIFICATION' + WHEN csc.id IS NOT NULL THEN 'CONVERTER_STATION_CREATION' + WHEN dal.id IS NOT NULL THEN 'DELETE_ATTACHING_LINE' + WHEN dvlol.id IS NOT NULL THEN 'DELETE_VOLTAGE_LEVEL_ON_LINE' + WHEN equipmentd.id IS NOT NULL THEN 'EQUIPMENT_DELETION' + WHEN gd.id IS NOT NULL THEN 'GENERATION_DISPATCH' + WHEN generatorc.id IS NOT NULL THEN 'GENERATOR_CREATION' + WHEN generatorm.id IS NOT NULL THEN 'GENERATOR_MODIFICATION' + WHEN gs.id IS NOT NULL THEN 'GENERATOR_SCALING' + WHEN lastsl.id IS NOT NULL THEN 'LINES_ATTACH_TO_SPLIT_LINES' + WHEN latvl.id IS NOT NULL THEN 'LINE_ATTACH_TO_VOLTAGE_LEVEL' + WHEN linec.id IS NOT NULL THEN 'LINE_CREATION' + WHEN linem.id IS NOT NULL THEN 'LINE_MODIFICATION' + WHEN loadc.id IS NOT NULL THEN 'LOAD_CREATION' + WHEN loadm.id IS NOT NULL THEN 'LOAD_MODIFICATION' + WHEN ls.id IS NOT NULL THEN 'LOAD_SCALING' + WHEN lswvl.id IS NOT NULL THEN 'LINE_SPLIT_WITH_VOLTAGE_LEVEL' + WHEN shuntcc.id IS NOT NULL THEN 'SHUNT_COMPENSATOR_CREATION' + WHEN shuntcm.id IS NOT NULL THEN 'SHUNT_COMPENSATOR_MODIFICATION' + WHEN substationc.id IS NOT NULL THEN 'SUBSTATION_CREATION' + WHEN substationm.id IS NOT NULL THEN 'SUBSTATION_MODIFICATION' + WHEN twtc.id IS NOT NULL THEN 'TWO_WINDINGS_TRANSFORMER_CREATION' + WHEN twtm.id IS NOT NULL THEN 'TWO_WINDINGS_TRANSFORMER_MODIFICATION' + WHEN vim.id IS NOT NULL THEN 'VOLTAGE_INIT_MODIFICATION' + WHEN voltageLevelc.id IS NOT NULL THEN 'VOLTAGE_LEVEL_CREATION' + WHEN voltageLevelm.id IS NOT NULL THEN 'VOLTAGE_LEVEL_MODIFICATION' + WHEN vsc.id IS NOT NULL THEN 'VSC_CREATION' + WHEN tm.id IS NOT NULL THEN 'TABULAR_MODIFICATION' + END --as msg_type + FROM modification m + LEFT JOIN battery_creation batteryc ON m.id = batteryc.id + LEFT JOIN battery_modification batterym ON m.id = batterym.id + LEFT JOIN boolean_equipment_attribute_modification beam ON m.id = beam.id + LEFT JOIN branch_status_modification bsm ON m.id = bsm.id + LEFT JOIN converter_station_creation csc ON m.id = csc.id + LEFT JOIN delete_attaching_line dal ON m.id = dal.id + LEFT JOIN double_equipment_attribute_modification deam ON m.id = deam.id + LEFT JOIN delete_voltage_level_on_line dvlol ON m.id = dvlol.id + LEFT JOIN equipment_deletion equipmentd ON m.id = equipmentd.id + LEFT JOIN float_equipment_attribute_modification feam ON m.id = feam.id + LEFT JOIN generation_dispatch gd ON m.id = gd.id + LEFT JOIN generator_creation generatorc ON m.id = generatorc.id + LEFT JOIN generator_modification generatorm ON m.id = generatorm.id + LEFT JOIN generator_scaling gs ON m.id = gs.id + LEFT JOIN integer_equipment_attribute_modification ieam ON m.id = ieam.id + LEFT JOIN lines_attach_to_split_lines lastsl ON m.id = lastsl.id + LEFT JOIN line_attach_to_voltage_level latvl ON m.id = latvl.id + LEFT JOIN line_creation linec ON m.id = linec.id + LEFT JOIN line_modification linem ON m.id = linem.id + LEFT JOIN load_creation loadc ON m.id = loadc.id + LEFT JOIN load_modification loadm ON m.id = loadm.id + LEFT JOIN load_scaling ls ON m.id = ls.id + LEFT JOIN line_split_with_voltage_level lswvl ON m.id = lswvl.id + LEFT JOIN string_equipment_attribute_modification seam ON m.id = seam.id + LEFT JOIN shunt_compensator_creation_entity shuntcc ON m.id = shuntcc.id + LEFT JOIN shunt_compensator_modification shuntcm ON m.id = shuntcm.id + LEFT JOIN substation_creation substationc ON m.id = substationc.id + LEFT JOIN substation_modification substationm ON m.id = substationm.id + LEFT JOIN two_windings_transformer_creation twtc ON m.id = twtc.id + LEFT JOIN two_windings_transformer_modification twtm ON m.id = twtm.id + LEFT JOIN voltage_init_modification vim ON m.id = vim.id + LEFT JOIN voltage_level_creation_entity voltageLevelc ON m.id = voltageLevelc.id + LEFT JOIN voltage_level_modification voltageLevelm ON m.id = voltageLevelm.id + LEFT JOIN vsc_creation vsc ON m.id = vsc.id + LEFT JOIN tabular_modification tm ON m.id = tm.id + where m1.id = m.id + ), + message_type = (select CASE + WHEN beam.id IS NOT NULL OR feam.id IS NOT NULL OR ieam.id IS NOT NULL OR deam.id IS NOT NULL OR seam.id IS NOT NULL THEN 'EQUIPMENT_ATTRIBUTE_MODIFICATION' + WHEN batteryc.id IS NOT NULL THEN 'BATTERY_CREATION' + WHEN batterym.id IS NOT NULL THEN 'BATTERY_MODIFICATION' + WHEN bsm.id IS NOT NULL THEN 'BRANCH_STATUS_MODIFICATION' + WHEN csc.id IS NOT NULL THEN 'CONVERTER_STATION_CREATION' + WHEN dal.id IS NOT NULL THEN 'DELETE_ATTACHING_LINE' + WHEN dvlol.id IS NOT NULL THEN 'DELETE_VOLTAGE_LEVEL_ON_LINE' + WHEN equipmentd.id IS NOT NULL THEN 'EQUIPMENT_DELETION' + WHEN gd.id IS NOT NULL THEN 'GENERATION_DISPATCH' + WHEN generatorc.id IS NOT NULL THEN 'GENERATOR_CREATION' + WHEN generatorm.id IS NOT NULL THEN 'GENERATOR_MODIFICATION' + WHEN gs.id IS NOT NULL THEN 'GENERATOR_SCALING' + WHEN lastsl.id IS NOT NULL THEN 'LINES_ATTACH_TO_SPLIT_LINES' + WHEN latvl.id IS NOT NULL THEN 'LINE_ATTACH_TO_VOLTAGE_LEVEL' + WHEN linec.id IS NOT NULL THEN 'LINE_CREATION' + WHEN linem.id IS NOT NULL THEN 'LINE_MODIFICATION' + WHEN loadc.id IS NOT NULL THEN 'LOAD_CREATION' + WHEN loadm.id IS NOT NULL THEN 'LOAD_MODIFICATION' + WHEN ls.id IS NOT NULL THEN 'LOAD_SCALING' + WHEN lswvl.id IS NOT NULL THEN 'LINE_SPLIT_WITH_VOLTAGE_LEVEL' + WHEN shuntcc.id IS NOT NULL THEN 'SHUNT_COMPENSATOR_CREATION' + WHEN shuntcm.id IS NOT NULL THEN 'SHUNT_COMPENSATOR_MODIFICATION' + WHEN substationc.id IS NOT NULL THEN 'SUBSTATION_CREATION' + WHEN substationm.id IS NOT NULL THEN 'SUBSTATION_MODIFICATION' + WHEN twtc.id IS NOT NULL THEN 'TWO_WINDINGS_TRANSFORMER_CREATION' + WHEN twtm.id IS NOT NULL THEN 'TWO_WINDINGS_TRANSFORMER_MODIFICATION' + WHEN vim.id IS NOT NULL THEN 'VOLTAGE_INIT_MODIFICATION' + WHEN voltageLevelc.id IS NOT NULL THEN 'VOLTAGE_LEVEL_CREATION' + WHEN voltageLevelm.id IS NOT NULL THEN 'VOLTAGE_LEVEL_MODIFICATION' + WHEN vsc.id IS NOT NULL THEN 'VSC_CREATION' + WHEN tm.id IS NOT NULL THEN 'TABULAR_MODIFICATION' + END --as msg_type + FROM modification m + LEFT JOIN battery_creation batteryc ON m.id = batteryc.id + LEFT JOIN battery_modification batterym ON m.id = batterym.id + LEFT JOIN boolean_equipment_attribute_modification beam ON m.id = beam.id + LEFT JOIN branch_status_modification bsm ON m.id = bsm.id + LEFT JOIN converter_station_creation csc ON m.id = csc.id + LEFT JOIN delete_attaching_line dal ON m.id = dal.id + LEFT JOIN double_equipment_attribute_modification deam ON m.id = deam.id + LEFT JOIN delete_voltage_level_on_line dvlol ON m.id = dvlol.id + LEFT JOIN equipment_deletion equipmentd ON m.id = equipmentd.id + LEFT JOIN float_equipment_attribute_modification feam ON m.id = feam.id + LEFT JOIN generation_dispatch gd ON m.id = gd.id + LEFT JOIN generator_creation generatorc ON m.id = generatorc.id + LEFT JOIN generator_modification generatorm ON m.id = generatorm.id + LEFT JOIN generator_scaling gs ON m.id = gs.id + LEFT JOIN integer_equipment_attribute_modification ieam ON m.id = ieam.id + LEFT JOIN lines_attach_to_split_lines lastsl ON m.id = lastsl.id + LEFT JOIN line_attach_to_voltage_level latvl ON m.id = latvl.id + LEFT JOIN line_creation linec ON m.id = linec.id + LEFT JOIN line_modification linem ON m.id = linem.id + LEFT JOIN load_creation loadc ON m.id = loadc.id + LEFT JOIN load_modification loadm ON m.id = loadm.id + LEFT JOIN load_scaling ls ON m.id = ls.id + LEFT JOIN line_split_with_voltage_level lswvl ON m.id = lswvl.id + LEFT JOIN string_equipment_attribute_modification seam ON m.id = seam.id + LEFT JOIN shunt_compensator_creation_entity shuntcc ON m.id = shuntcc.id + LEFT JOIN shunt_compensator_modification shuntcm ON m.id = shuntcm.id + LEFT JOIN substation_creation substationc ON m.id = substationc.id + LEFT JOIN substation_modification substationm ON m.id = substationm.id + LEFT JOIN two_windings_transformer_creation twtc ON m.id = twtc.id + LEFT JOIN two_windings_transformer_modification twtm ON m.id = twtm.id + LEFT JOIN voltage_init_modification vim ON m.id = vim.id + LEFT JOIN voltage_level_creation_entity voltageLevelc ON m.id = voltageLevelc.id + LEFT JOIN voltage_level_modification voltageLevelm ON m.id = voltageLevelm.id + LEFT JOIN vsc_creation vsc ON m.id = vsc.id + LEFT JOIN tabular_modification tm ON m.id = tm.id + where m1.id = m.id + ), + message_values = (select CASE + WHEN batteryc.id IS NOT NULL THEN '{"equipmentId":"' || batteryc.equipment_id || '"}' + WHEN batterym.id IS NOT NULL THEN '{"equipmentId":"' || batterym.equipment_id || '"}' + WHEN beam.id IS NOT NULL THEN '{"equipmentAttributeName":"' || beam.attribute_name || '","equipmentId":"' || beam.equipment_id || '","equipmentAttributeValue":"' || beam.attribute_value || '"}' + WHEN bsm.id IS NOT NULL THEN '{"energizedVoltageLevelId":"' || bsm.energized_voltage_level_id || '","action":"' || bsm.action || '","equipmentId":"' || bsm.equipment_id || '"}' + WHEN csc.id IS NOT NULL THEN '{"equipmentId":"' || csc.equipment_id || '"}' + WHEN dal.id IS NOT NULL THEN '{"attachedLineId":"' || dal.attached_line_id || '","lineToAttachTo1Id":"' || dal.line_to_attach_to1id || '","lineToAttachTo2Id":"' || dal.line_to_attach_to2id || '"}' + WHEN deam.id IS NOT NULL THEN '{"equipmentAttributeName":"' || deam.attribute_name || '","equipmentId":"' || deam.equipment_id || '","equipmentAttributeValue":"' || deam.attribute_value || '"}' + WHEN dvlol.id IS NOT NULL THEN '{"lineToAttachTo1Id":"' || dvlol.line_to_attach_to1id || '","lineToAttachTo2Id":"' || dvlol.line_to_attach_to2id || '"}' + WHEN equipmentd.id IS NOT NULL THEN '{"equipmentId":"' || equipmentd.equipment_id || '"}' + WHEN feam.id IS NOT NULL THEN '{"equipmentAttributeName":"' || feam.attribute_name || '","equipmentId":"' || feam.equipment_id || '","equipmentAttributeValue":"' || feam.attribute_value || '"}' + WHEN generatorc.id IS NOT NULL THEN '{"equipmentId":"' || generatorc.equipment_id || '"}' + WHEN generatorm.id IS NOT NULL THEN '{"equipmentId":"' || generatorm.equipment_id || '"}' + WHEN ieam.id IS NOT NULL THEN '{"equipmentAttributeName":"' || ieam.attribute_name || '","equipmentId":"' || ieam.equipment_id || '","equipmentAttributeValue":"' || ieam.attribute_value || '"}' + WHEN lastsl.id IS NOT NULL THEN '{"attachedLineId":"' || lastsl.attached_line_id || '"}' + WHEN latvl.id IS NOT NULL THEN '{"lineToAttachToId":"' || latvl.line_to_attach_to_id || '"}' + WHEN linec.id IS NOT NULL THEN '{"equipmentId":"' || linec.equipment_id || '"}' + WHEN linem.id IS NOT NULL THEN '{"equipmentId":"' || linem.equipment_id || '"}' + WHEN loadc.id IS NOT NULL THEN '{"equipmentId":"' || loadc.equipment_id || '"}' + WHEN loadm.id IS NOT NULL THEN '{"equipmentId":"' || loadm.equipment_id || '"}' + WHEN lswvl.id IS NOT NULL THEN '{"lineToSplitId":"' || lswvl.line_to_split_id || '"}' + WHEN seam.id IS NOT NULL THEN '{"equipmentAttributeName":"' || seam.attribute_name || '","equipmentId":"' || seam.equipment_id || '","equipmentAttributeValue":"' || seam.attribute_value || '"}' + WHEN shuntcc.id IS NOT NULL THEN '{"equipmentId":"' || shuntcc.equipment_id || '"}' + WHEN shuntcm.id IS NOT NULL THEN '{"equipmentId":"' || shuntcm.equipment_id || '"}' + WHEN substationc.id IS NOT NULL THEN '{"equipmentId":"' || substationc.equipment_id || '"}' + WHEN substationm.id IS NOT NULL THEN '{"equipmentId":"' || substationm.equipment_id || '"}' + WHEN twtc.id IS NOT NULL THEN '{"equipmentId":"' || twtc.equipment_id || '"}' + WHEN twtm.id IS NOT NULL THEN '{"equipmentId":"' || twtm.equipment_id || '"}' + WHEN voltageLevelc.id IS NOT NULL THEN '{"equipmentId":"' || voltageLevelc.equipment_id || '"}' + WHEN voltageLevelm.id IS NOT NULL THEN '{"equipmentId":"' || voltageLevelm.equipment_id || '"}' + WHEN vsc.id IS NOT NULL THEN '{"equipmentId":"' || vsc.equipment_id || '"}' + WHEN tm.id IS NOT NULL THEN '{"tabularModificationType":"' || tm.modification_type || '"}' + ELSE '{}' + END --as msg_values + FROM modification m + LEFT JOIN battery_creation batteryc ON m.id = batteryc.id + LEFT JOIN battery_modification batterym ON m.id = batterym.id + LEFT JOIN boolean_equipment_attribute_modification beam ON m.id = beam.id + LEFT JOIN branch_status_modification bsm ON m.id = bsm.id + LEFT JOIN converter_station_creation csc ON m.id = csc.id + LEFT JOIN delete_attaching_line dal ON m.id = dal.id + LEFT JOIN double_equipment_attribute_modification deam ON m.id = deam.id + LEFT JOIN delete_voltage_level_on_line dvlol ON m.id = dvlol.id + LEFT JOIN equipment_deletion equipmentd ON m.id = equipmentd.id + LEFT JOIN float_equipment_attribute_modification feam ON m.id = feam.id + LEFT JOIN generator_creation generatorc ON m.id = generatorc.id + LEFT JOIN generator_modification generatorm ON m.id = generatorm.id + LEFT JOIN integer_equipment_attribute_modification ieam ON m.id = ieam.id + LEFT JOIN lines_attach_to_split_lines lastsl ON m.id = lastsl.id + LEFT JOIN line_attach_to_voltage_level latvl ON m.id = latvl.id + LEFT JOIN line_creation linec ON m.id = linec.id + LEFT JOIN line_modification linem ON m.id = linem.id + LEFT JOIN load_creation loadc ON m.id = loadc.id + LEFT JOIN load_modification loadm ON m.id = loadm.id + LEFT JOIN line_split_with_voltage_level lswvl ON m.id = lswvl.id + LEFT JOIN string_equipment_attribute_modification seam ON m.id = seam.id + LEFT JOIN shunt_compensator_creation_entity shuntcc ON m.id = shuntcc.id + LEFT JOIN shunt_compensator_modification shuntcm ON m.id = shuntcm.id + LEFT JOIN substation_creation substationc ON m.id = substationc.id + LEFT JOIN substation_modification substationm ON m.id = substationm.id + LEFT JOIN two_windings_transformer_creation twtc ON m.id = twtc.id + LEFT JOIN two_windings_transformer_modification twtm ON m.id = twtm.id + LEFT JOIN voltage_level_creation_entity voltageLevelc ON m.id = voltageLevelc.id + LEFT JOIN voltage_level_modification voltageLevelm ON m.id = voltageLevelm.id + LEFT JOIN vsc_creation vsc ON m.id = vsc.id + LEFT JOIN tabular_modification tm ON m.id = tm.id + where m1.id = m.id + ); \ No newline at end of file diff --git a/src/main/resources/db/changelog/db.changelog-master.yaml b/src/main/resources/db/changelog/db.changelog-master.yaml index 4d97d1003..534f74dc0 100644 --- a/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/src/main/resources/db/changelog/db.changelog-master.yaml @@ -207,3 +207,6 @@ databaseChangeLog: - include: file: changesets/changelog_20231019T143032Z.xml relativeToChangelogFile: true + - include: + file: changesets/changelog_20231010T120459Z.xml + relativeToChangelogFile: true diff --git a/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java b/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java index 3c6a4130b..392913a17 100644 --- a/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java +++ b/src/test/java/org/gridsuite/modification/server/ModificationControllerTest.java @@ -1287,7 +1287,7 @@ public void testCreateVoltageInitModification() throws Exception { UUID groupUuid = UUID.fromString(mapper.readValue(mvcResult.getResponse().getContentAsString(), String.class)); // Get the modifications - mvcResult = mockMvc.perform(get("/v1/groups/{groupUuid}/modifications", groupUuid)).andExpectAll( + mvcResult = mockMvc.perform(get("/v1/groups/{groupUuid}/modifications?onlyMetadata=false", groupUuid)).andExpectAll( status().isOk(), content().contentType(MediaType.APPLICATION_JSON)) .andReturn(); @@ -1301,6 +1301,8 @@ public void testDeleteStashedNetworkModifications() throws Exception { MvcResult mvcResult; EquipmentAttributeModificationInfos loadModificationInfos = EquipmentAttributeModificationInfos.builder() .equipmentType(IdentifiableType.LOAD) + .equipmentAttributeName("open") + .equipmentAttributeValue(true) .equipmentAttributeName("v1load") .equipmentId("v1load") .build(); @@ -1309,16 +1311,16 @@ public void testDeleteStashedNetworkModifications() throws Exception { mvcResult = mockMvc.perform(post(URI_NETWORK_MODIF).content(loadModificationInfosJson).contentType(MediaType.APPLICATION_JSON)).andExpect(status().isOk()).andReturn(); assertApplicationStatusOK(mvcResult); - List modifications = modificationRepository.getModifications(TEST_GROUP_ID, false, true); + List modifications = modificationRepository.getModifications(TEST_GROUP_ID, true, true); assertEquals(1, modifications.size()); String uuidString = modifications.get(0).getUuid().toString(); mockMvc.perform(post(URI_NETWORK_MODIF_BASE + "/stash") .queryParam("groupUuid", TEST_GROUP_ID.toString()) .queryParam("uuids", uuidString)) .andExpect(status().isOk()); - assertEquals(1, modificationRepository.getModifications(TEST_GROUP_ID, false, true, true).size()); + assertEquals(1, modificationRepository.getModifications(TEST_GROUP_ID, true, true, true).size()); mockMvc.perform(delete("/v1/groups/" + TEST_GROUP_ID + "/stashed-modifications").queryParam("errorOnGroupNotFound", "false")).andExpect(status().isOk()); - assertEquals(0, modificationRepository.getModifications(TEST_GROUP_ID, false, true, true).size()); + assertEquals(0, modificationRepository.getModifications(TEST_GROUP_ID, true, true, true).size()); mockMvc.perform(delete("/v1/groups/" + UUID.randomUUID() + "/stashed-modifications").queryParam("errorOnGroupNotFound", "false")).andExpect(status().isOk()); } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/AbstractNetworkModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/AbstractNetworkModificationTest.java index c97dc2252..78db091c9 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/AbstractNetworkModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/AbstractNetworkModificationTest.java @@ -147,6 +147,9 @@ public void testCreate() throws Exception { assertThat(createdModification).recursivelyEquals(modificationToCreate); testNetworkModificationsCount(TEST_GROUP_ID, 1); assertAfterNetworkModificationCreation(); + + ModificationInfos createdModificationWithOnlyMetadata = modificationRepository.getModifications(TEST_GROUP_ID, true, true).get(0); + testCreationModificationMessage(createdModificationWithOnlyMetadata); } @Test @@ -187,9 +190,12 @@ public void testUpdate() throws Exception { //assertThat(bsmListResult.get(0)).recursivelyEquals(ModificationType.LOAD_CREATION, "idLoad1", Set.of("s1")); ModificationInfos updatedModification = modificationRepository.getModifications(TEST_GROUP_ID, false, true).get(0); - assertThat(updatedModification).recursivelyEquals(modificationToUpdate); testNetworkModificationsCount(TEST_GROUP_ID, 1); + + ModificationInfos updatedModificationwithOnlyMetadata = modificationRepository.getModifications(TEST_GROUP_ID, true, true).get(0); + testUpdateModificationMessage(updatedModificationwithOnlyMetadata); + } @Test @@ -284,4 +290,12 @@ protected String getNetworkModificationUriWithBadVariant() { protected abstract void assertAfterNetworkModificationCreation(); protected abstract void assertAfterNetworkModificationDeletion(); + + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("{}", modificationInfos.getMessageValues()); + } + + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("{}", modificationInfos.getMessageValues()); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInBusBreakerTest.java index 179d3e990..8fe1255be 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInBusBreakerTest.java @@ -7,8 +7,10 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.BatteryCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -19,11 +21,13 @@ import org.springframework.http.MediaType; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BUS_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -60,7 +64,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return BatteryCreationInfos.builder() - .equipmentId("idBattery2") + .equipmentId("idBattery2Edited") .equipmentName("nameBatteryModified") .voltageLevelId("v1") .busOrBusbarSectionId("bus1") @@ -103,4 +107,20 @@ public void testCreateWithBusbarSectionErrors() throws Exception { assertLogMessage(new NetworkModificationException(BUS_NOT_FOUND, "notFoundBus").getMessage(), batteryCreationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BATTERY_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idBattery2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BATTERY_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idBattery2Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInNodeBreakerTest.java index 0a82d2af3..d99faf490 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BatteryCreationInNodeBreakerTest.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.BatteryCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -22,12 +23,14 @@ import org.springframework.test.web.servlet.MvcResult; import java.util.Arrays; +import java.util.Map; import java.util.Optional; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -65,7 +68,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return BatteryCreationInfos.builder() - .equipmentId("idBattery2") + .equipmentId("idBattery2Edited") .equipmentName("nameBatteryModified") .voltageLevelId("v1") .busOrBusbarSectionId("bus1") @@ -200,4 +203,20 @@ public void testCreateWithErrors() throws Exception { assertNull(getNetwork().getBattery("idBattery3")); // battery was not created testNetworkModificationsCount(getGroupId(), 10); // new modification stored in the database } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BATTERY_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idBattery1", updatedValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BATTERY_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idBattery2Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BatteryModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BatteryModificationTest.java index 94ae20fec..5c2c46bb2 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BatteryModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BatteryModificationTest.java @@ -7,8 +7,10 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.extensions.ActivePowerControl; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; @@ -16,10 +18,7 @@ import org.springframework.http.MediaType; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.IntStream; @@ -59,7 +58,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return BatteryModificationInfos.builder() - .equipmentId("idBattery") + .equipmentId("idBatteryEdited") .equipmentName(new AttributeModification<>("newV1BatteryEdited", OperationType.SET)) .activePowerSetpoint(new AttributeModification<>(81.0, OperationType.SET)) .reactivePowerSetpoint(new AttributeModification<>(41.0, OperationType.SET)) @@ -260,4 +259,20 @@ public void testMinQGreaterThanMaxQ() throws Exception { assertLogMessage("MODIFY_BATTERY_ERROR : Battery '" + "v3Battery" + "' : maximum reactive power " + maxQ.get() + " is expected to be greater than or equal to minimum reactive power " + minQ.get(), batteryModificationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BATTERY_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v3Battery", updatedValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BATTERY_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idBatteryEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideOneLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideOneLineTest.java index 4d6215bfd..ed6a0f811 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideOneLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideOneLineTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Line; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.BranchStatusModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -16,11 +18,13 @@ import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BRANCH_ACTION_ERROR; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -53,7 +57,8 @@ protected ModificationInfos buildModificationUpdate() { return BranchStatusModificationInfos.builder() .equipmentId("line1") .energizedVoltageLevelId("vl1_bis") - .action(BranchStatusModificationInfos.ActionType.TRIP).build(); + .action(BranchStatusModificationInfos.ActionType.TRIP) + .build(); } @Override @@ -86,4 +91,24 @@ public void testCreateWithErrors() throws Exception { assertLogMessage(new NetworkModificationException(BRANCH_ACTION_ERROR, "Unable to energise branch end").getMessage(), modificationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("vl1", createdValues.get("energizedVoltageLevelId")); + assertEquals("ENERGISE_END_ONE", createdValues.get("action")); + assertEquals("line2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("vl1_bis", updatedValues.get("energizedVoltageLevelId")); + assertEquals("TRIP", updatedValues.get("action")); + assertEquals("line1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideTwoLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideTwoLineTest.java index 8781273de..993fed0b3 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideTwoLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationEnergiseSideTwoLineTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Line; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.BranchStatusModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -16,11 +18,13 @@ import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BRANCH_ACTION_ERROR; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -86,4 +90,24 @@ public void testCreateWithErrors() throws Exception { assertLogMessage(new NetworkModificationException(BRANCH_ACTION_ERROR, "Unable to energise branch end").getMessage(), modificationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("vl2", createdValues.get("energizedVoltageLevelId")); + assertEquals("ENERGISE_END_TWO", createdValues.get("action")); + assertEquals("line2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("vl2_bis", updatedValues.get("energizedVoltageLevelId")); + assertEquals("TRIP", updatedValues.get("action")); + assertEquals("line1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationLockoutLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationLockoutLineTest.java index e89041959..3406cdb28 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationLockoutLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationLockoutLineTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.BranchStatus; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.BranchStatusModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -17,12 +19,14 @@ import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static com.powsybl.iidm.network.extensions.BranchStatus.Status.FORCED_OUTAGE; import static com.powsybl.iidm.network.extensions.BranchStatus.Status.PLANNED_OUTAGE; import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; @@ -48,6 +52,7 @@ protected Network createNetwork(UUID networkUuid) { protected ModificationInfos buildModification() { return BranchStatusModificationInfos.builder() .equipmentId(TARGET_LINE_ID) + .energizedVoltageLevelId("energizedVoltageLevelId") .action(BranchStatusModificationInfos.ActionType.LOCKOUT).build(); } @@ -55,6 +60,7 @@ protected ModificationInfos buildModification() { protected ModificationInfos buildModificationUpdate() { return BranchStatusModificationInfos.builder() .equipmentId(UPDATE_BRANCH_ID) + .energizedVoltageLevelId("energizedVoltageLevelId") .action(BranchStatusModificationInfos.ActionType.SWITCH_ON).build(); } @@ -108,4 +114,24 @@ public void testCreateWithErrors() throws Exception { modificationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelId", createdValues.get("energizedVoltageLevelId")); + assertEquals("LOCKOUT", createdValues.get("action")); + assertEquals("line2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelId", updatedValues.get("energizedVoltageLevelId")); + assertEquals("SWITCH_ON", updatedValues.get("action")); + assertEquals("line1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationSwitchOnLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationSwitchOnLineTest.java index 10012dfb5..679233dd0 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationSwitchOnLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationSwitchOnLineTest.java @@ -6,18 +6,22 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Line; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Terminal; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.BranchStatusModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.jupiter.api.Tag; +import java.util.Map; import java.util.UUID; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; @Tag("IntegrationTest") public class BranchStatusModificationSwitchOnLineTest extends AbstractNetworkModificationTest { @@ -38,13 +42,15 @@ protected Network createNetwork(UUID networkUuid) { protected ModificationInfos buildModification() { return BranchStatusModificationInfos.builder() .equipmentId(TARGET_LINE_ID) + .energizedVoltageLevelId("energizedVoltageLevelId") .action(BranchStatusModificationInfos.ActionType.SWITCH_ON).build(); } @Override protected ModificationInfos buildModificationUpdate() { return BranchStatusModificationInfos.builder() - .equipmentId("line1") + .equipmentId("line1Edited") + .energizedVoltageLevelId("energizedVoltageLevelIdEdited") .action(BranchStatusModificationInfos.ActionType.TRIP).build(); } @@ -63,4 +69,24 @@ protected void assertAfterNetworkModificationDeletion() { assertNotNull(line); assertTrue(line.getTerminals().stream().noneMatch(Terminal::isConnected)); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelId", createdValues.get("energizedVoltageLevelId")); + assertEquals("SWITCH_ON", createdValues.get("action")); + assertEquals("line2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelIdEdited", updatedValues.get("energizedVoltageLevelId")); + assertEquals("TRIP", updatedValues.get("action")); + assertEquals("line1Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTrip2WTransformerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTrip2WTransformerTest.java index cd231ee32..10b1d73b4 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTrip2WTransformerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTrip2WTransformerTest.java @@ -6,18 +6,22 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.BranchStatus; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.BranchStatusModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.gridsuite.modification.server.utils.TestUtils; import org.junit.jupiter.api.Tag; +import java.util.Map; import java.util.UUID; import static com.powsybl.iidm.network.extensions.BranchStatus.Status.FORCED_OUTAGE; import static com.powsybl.iidm.network.extensions.BranchStatus.Status.PLANNED_OUTAGE; +import static org.junit.jupiter.api.Assertions.assertEquals; @Tag("IntegrationTest") public class BranchStatusModificationTrip2WTransformerTest extends AbstractNetworkModificationTest { @@ -39,6 +43,7 @@ protected Network createNetwork(UUID networkUuid) { protected ModificationInfos buildModification() { return BranchStatusModificationInfos.builder() .equipmentId(TARGET_BRANCH_ID) + .energizedVoltageLevelId("energizedVoltageLevelId") .action(BranchStatusModificationInfos.ActionType.TRIP).build(); } @@ -46,6 +51,7 @@ protected ModificationInfos buildModification() { protected ModificationInfos buildModificationUpdate() { return BranchStatusModificationInfos.builder() .equipmentId(UPDATE_BRANCH_ID) + .energizedVoltageLevelId("energizedVoltageLevelIdEdited") .action(BranchStatusModificationInfos.ActionType.SWITCH_ON).build(); } @@ -59,4 +65,24 @@ protected void assertAfterNetworkModificationDeletion() { // back to init status TestUtils.assertBranchStatus(getNetwork(), TARGET_BRANCH_ID, OTHER_BRANCH_STATUS); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelId", createdValues.get("energizedVoltageLevelId")); + assertEquals("TRIP", createdValues.get("action")); + assertEquals("trf1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelIdEdited", updatedValues.get("energizedVoltageLevelId")); + assertEquals("SWITCH_ON", updatedValues.get("action")); + assertEquals("line1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTripLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTripLineTest.java index 23fd8f091..b0f7eb331 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTripLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/BranchStatusModificationTripLineTest.java @@ -6,18 +6,22 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.BranchStatus; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.BranchStatusModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.gridsuite.modification.server.utils.TestUtils; import org.junit.jupiter.api.Tag; +import java.util.Map; import java.util.UUID; import static com.powsybl.iidm.network.extensions.BranchStatus.Status.FORCED_OUTAGE; import static com.powsybl.iidm.network.extensions.BranchStatus.Status.PLANNED_OUTAGE; +import static org.junit.jupiter.api.Assertions.assertEquals; @Tag("IntegrationTest") public class BranchStatusModificationTripLineTest extends AbstractNetworkModificationTest { @@ -39,6 +43,7 @@ protected Network createNetwork(UUID networkUuid) { protected ModificationInfos buildModification() { return BranchStatusModificationInfos.builder() .equipmentId(TARGET_LINE_ID) + .energizedVoltageLevelId("energizedVoltageLevelId") .action(BranchStatusModificationInfos.ActionType.TRIP).build(); } @@ -46,6 +51,7 @@ protected ModificationInfos buildModification() { protected ModificationInfos buildModificationUpdate() { return BranchStatusModificationInfos.builder() .equipmentId(UPDATE_BRANCH_ID) + .energizedVoltageLevelId("energizedVoltageLevelIdEdited") .action(BranchStatusModificationInfos.ActionType.SWITCH_ON).build(); } @@ -59,4 +65,24 @@ protected void assertAfterNetworkModificationDeletion() { // back to init status TestUtils.assertBranchStatus(getNetwork(), TARGET_LINE_ID, OTHER_BRANCH_STATUS); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelId", createdValues.get("energizedVoltageLevelId")); + assertEquals("TRIP", createdValues.get("action")); + assertEquals("line2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("BRANCH_STATUS_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("energizedVoltageLevelIdEdited", updatedValues.get("energizedVoltageLevelId")); + assertEquals("SWITCH_ON", updatedValues.get("action")); + assertEquals("line1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/DeleteAttachingLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/DeleteAttachingLineTest.java index 91b71e4ba..684fd6427 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/DeleteAttachingLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/DeleteAttachingLineTest.java @@ -6,7 +6,9 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.DeleteAttachingLineInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -16,6 +18,7 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.LINE_ALREADY_EXISTS; @@ -23,6 +26,7 @@ import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -117,4 +121,24 @@ public void createNewLineWithExistingIdTest() throws Exception { assertLogMessage(new NetworkModificationException(LINE_ALREADY_EXISTS, "l2").getMessage(), deleteAttachingLineInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("DELETE_ATTACHING_LINE", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("l3", createdValues.get("attachedLineId")); + assertEquals("l1", createdValues.get("lineToAttachTo1Id")); + assertEquals("l2", createdValues.get("lineToAttachTo2Id")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("DELETE_ATTACHING_LINE", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("l3", updatedValues.get("attachedLineId")); + assertEquals("l1", updatedValues.get("lineToAttachTo1Id")); + assertEquals("l2", updatedValues.get("lineToAttachTo2Id")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/DeleteVoltageLevelOnLineTest.java b/src/test/java/org/gridsuite/modification/server/modifications/DeleteVoltageLevelOnLineTest.java index 6fffce604..b16c1c0d0 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/DeleteVoltageLevelOnLineTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/DeleteVoltageLevelOnLineTest.java @@ -6,7 +6,9 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.DeleteVoltageLevelOnLineInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -16,6 +18,7 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.LINE_ALREADY_EXISTS; @@ -23,6 +26,7 @@ import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -102,4 +106,22 @@ public void createNewLineWithExistingIdTest() throws Exception { assertLogMessage(new NetworkModificationException(LINE_ALREADY_EXISTS, "l2").getMessage(), deleteVoltageLevelOnLineInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("DELETE_VOLTAGE_LEVEL_ON_LINE", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("l1", createdValues.get("lineToAttachTo1Id")); + assertEquals("l2", createdValues.get("lineToAttachTo2Id")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("DELETE_VOLTAGE_LEVEL_ON_LINE", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line00", updatedValues.get("lineToAttachTo1Id")); + assertEquals("line11", updatedValues.get("lineToAttachTo2Id")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java index 9d2cfe76e..096601989 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/EquipmentAttributeModificationTest.java @@ -6,10 +6,13 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.IdentifiableType; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.EquipmentAttributeModificationInfos; +import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; import org.junit.jupiter.api.Tag; @@ -19,6 +22,7 @@ import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; +import java.util.Map; import java.util.Set; import java.util.UUID; @@ -27,6 +31,7 @@ import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -47,7 +52,7 @@ public void testEquipmentAttributeModificationInfos() throws Exception { .equipmentAttributeValue("equipmentAttributeValue") .equipmentType(IdentifiableType.VOLTAGE_LEVEL) .build(); - assertEquals(String.format("EquipmentAttributeModificationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=%s, date=2021-02-19T00:00Z, stashed=null), equipmentId=equipmentId), equipmentAttributeName=equipmentAttributeName, equipmentAttributeValue=equipmentAttributeValue, equipmentType=VOLTAGE_LEVEL)", modificationUuid), modificationInfos.toString()); + assertEquals(String.format("EquipmentAttributeModificationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=%s, type=EQUIPMENT_ATTRIBUTE_MODIFICATION, date=2021-02-19T00:00Z, stashed=null, messageType=null, messageValues=null), equipmentId=equipmentId), equipmentAttributeName=equipmentAttributeName, equipmentAttributeValue=equipmentAttributeValue, equipmentType=VOLTAGE_LEVEL)", modificationUuid), modificationInfos.toString()); EquipmentAttributeModificationInfos switchStatusModificationInfos = EquipmentAttributeModificationInfos.builder() .equipmentType(IdentifiableType.SWITCH) @@ -184,4 +189,24 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertFalse(getNetwork().getSwitch("v1b1").isOpen()); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_ATTRIBUTE_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("open", createdValues.get("equipmentAttributeName")); + assertEquals("v1b1", createdValues.get("equipmentId")); + assertEquals("true", createdValues.get("equipmentAttributeValue")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_ATTRIBUTE_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("open", createdValues.get("equipmentAttributeName")); + assertEquals("v1b1Edited", createdValues.get("equipmentId")); + assertEquals("false", createdValues.get("equipmentAttributeValue")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/EquipmentDeletionTest.java b/src/test/java/org/gridsuite/modification/server/modifications/EquipmentDeletionTest.java index ad01104ed..88509c7ff 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/EquipmentDeletionTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/EquipmentDeletionTest.java @@ -27,6 +27,7 @@ import org.springframework.test.web.servlet.MvcResult; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.UUID; @@ -166,4 +167,20 @@ public void testRemoveUnknownSubstation() { PowsyblException e = assertThrows(PowsyblException.class, () -> removeSubstation.apply(network, true, Reporter.NO_OP)); assertEquals("Substation not found: unknownSubstation", e.getMessage()); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_DELETION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v1load", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_DELETION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGenerator", createdValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInBusBreakerTest.java index e7b5ad6ce..df4526a0c 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInBusBreakerTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.EnergySource; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.GeneratorCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -20,12 +22,14 @@ import org.springframework.http.MediaType; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BUS_NOT_FOUND; import static org.gridsuite.modification.server.NetworkModificationException.Type.EQUIPMENT_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -76,7 +80,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return GeneratorCreationInfos.builder() - .equipmentId("idGenerator2") + .equipmentId("idGenerator2Edited") .equipmentName("nameGeneratorModified") .voltageLevelId("v1") .busOrBusbarSectionId("bus1") @@ -147,4 +151,20 @@ public void testCreateWithRegulatedTerminalError() throws Exception { assertLogMessage(new NetworkModificationException(EQUIPMENT_NOT_FOUND, "Equipment with id=titi not found with type LINE").getMessage(), generatorCreationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("GENERATOR_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGenerator2", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("GENERATOR_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGenerator2Edited", createdValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInNodeBreakerTest.java index dc331d12c..25b4939a3 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorCreationInNodeBreakerTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.EnergySource; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.GeneratorCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -23,12 +24,14 @@ import org.springframework.test.web.servlet.MvcResult; import java.util.Arrays; +import java.util.Map; import java.util.Optional; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -244,4 +247,20 @@ public void testCreateWithShortCircuitErrors() throws Exception { .andExpect(status().isOk()); assertLogMessage("cannot add short-circuit extension on generator with id=idGenerator1 : Undefined directTransX", "ShortCircuitExtensionAddError", reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("GENERATOR_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGenerator1", updatedValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("GENERATOR_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGenerator2", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java index 6363e7d40..df2924358 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorModificationTest.java @@ -7,10 +7,12 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.extensions.ActivePowerControl; import com.powsybl.iidm.network.extensions.GeneratorShortCircuit; import com.powsybl.iidm.network.extensions.GeneratorStartup; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; @@ -18,10 +20,7 @@ import org.springframework.http.MediaType; import org.springframework.util.CollectionUtils; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.atomic.AtomicReference; import java.util.stream.IntStream; @@ -77,7 +76,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return GeneratorModificationInfos.builder() - .equipmentId("idGenerator") + .equipmentId("idGeneratorEdited") .energySource(new AttributeModification<>(EnergySource.HYDRO, OperationType.SET)) .equipmentName(new AttributeModification<>("newV1GeneratorEdited", OperationType.SET)) .activePowerSetpoint(new AttributeModification<>(81.0, OperationType.SET)) @@ -412,4 +411,20 @@ public void testUnsetAttributes() throws Exception { assertEquals(Double.NaN, getNetwork().getGenerator("idGenerator").getTargetQ()); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("GENERATOR_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGenerator", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("GENERATOR_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idGeneratorEdited", createdValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java index 4fd453fad..da712e930 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/GeneratorScalingTest.java @@ -119,7 +119,7 @@ public void testCreate() throws Exception { wireMockUtils.verifyGetRequest(stubId, PATH, handleQueryParams(getNetworkUuid(), filters.stream().map(FilterEquipments::getFilterId).collect(Collectors.toList())), false); assertEquals( - String.format("ScalingInfos(super=ModificationInfos(uuid=null, date=null, stashed=null), variations=[ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter1)], variationMode=PROPORTIONAL_TO_PMAX, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter2)], variationMode=REGULAR_DISTRIBUTION, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter3)], variationMode=STACKING_UP, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter4)], variationMode=VENTILATION, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter1), FilterInfos(id=%s, name=filter5)], variationMode=PROPORTIONAL, variationValue=50.0, reactiveVariationMode=null)], variationType=DELTA_P)", + String.format("ScalingInfos(super=ModificationInfos(uuid=null, type=GENERATOR_SCALING, date=null, stashed=null, messageType=null, messageValues=null), variations=[ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter1)], variationMode=PROPORTIONAL_TO_PMAX, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter2)], variationMode=REGULAR_DISTRIBUTION, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter3)], variationMode=STACKING_UP, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter4)], variationMode=VENTILATION, variationValue=50.0, reactiveVariationMode=null), ScalingVariationInfos(id=null, filters=[FilterInfos(id=%s, name=filter1), FilterInfos(id=%s, name=filter5)], variationMode=PROPORTIONAL, variationValue=50.0, reactiveVariationMode=null)], variationType=DELTA_P)", FILTER_ID_1, FILTER_ID_2, FILTER_ID_3, FILTER_ID_4, FILTER_ID_1, FILTER_ID_5), buildModification().toString() ); diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java index 1addadeba..7edcea1d4 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToNewVoltageLevelTest.java @@ -6,17 +6,21 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.SwitchKind; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.jupiter.api.Tag; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author David Braquart @@ -75,7 +79,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return LineAttachToVoltageLevelInfos.builder() - .lineToAttachToId("line3") + .lineToAttachToId("line3Edited") .percent(10.0) .attachmentPointId("AttPointId") // created VL .attachmentPointName("attPointName") @@ -111,4 +115,20 @@ protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getVoltageLevel("newVoltageLevel")); assertNotNull(getNetwork().getLine("line3")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_ATTACH_TO_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line3", createdValues.get("lineToAttachToId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_ATTACH_TO_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line3Edited", updatedValues.get("lineToAttachToId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java index ebeaf839d..f8b16000f 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineAttachToVoltageLevelTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.SwitchKind; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -16,12 +18,14 @@ import org.springframework.http.MediaType; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -171,4 +175,20 @@ public void testCreateWithExistingEquipments() throws Exception { assertLogMessage(new NetworkModificationException(VOLTAGE_LEVEL_ALREADY_EXISTS, "v5").getMessage(), tryWithAttachmentPointId.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_ATTACH_TO_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line3", createdValues.get("lineToAttachToId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_ATTACH_TO_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line2", updatedValues.get("lineToAttachToId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java index 389f3d82c..b5ee323ef 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInBusBreakerTest.java @@ -7,7 +7,9 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.CurrentLimitsInfos; import org.gridsuite.modification.server.dto.LineCreationInfos; @@ -18,6 +20,7 @@ import org.springframework.http.MediaType; import java.util.Collections; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BUS_NOT_FOUND; @@ -25,6 +28,7 @@ import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -236,4 +240,20 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getLine("idLine1")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLine1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLineEdited1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java index ce1ae7167..421454cc6 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInMixedTypologyTest.java @@ -7,17 +7,21 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.LineCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.jupiter.api.Tag; +import java.util.Map; import java.util.UUID; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; @Tag("IntegrationTest") public class LineCreationInMixedTypologyTest extends AbstractNetworkModificationTest { @@ -87,4 +91,20 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getLine("idLine1")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLine1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLineEdited1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java index 8b906a116..80fce617c 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineCreationInNodeBreakerTest.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -18,14 +19,12 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MvcResult; -import java.util.Collections; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -224,7 +223,7 @@ public void testCreateLineWithBothCurrentLimits() throws Exception { testNetworkModificationsCount(getGroupId(), 1); assertEquals( - "LineCreationInfos(super=BranchCreationInfos(super=EquipmentCreationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=null, date=null, stashed=null), equipmentId=idLineEdited), equipmentName=nameLineEdited), seriesResistance=110.0, seriesReactance=110.0, voltageLevelId1=v2, voltageLevelId2=v1, busOrBusbarSectionId1=1A, busOrBusbarSectionId2=1.1, currentLimits1=CurrentLimitsInfos(permanentLimit=200.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT10, value=200.0, acceptableDuration=600)]), currentLimits2=CurrentLimitsInfos(permanentLimit=100.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT20, value=600.0, acceptableDuration=1200)]), connectionName1=cn1LineEdited, connectionDirection1=BOTTOM, connectionName2=cn2LineEdited, connectionDirection2=TOP, connectionPosition1=0, connectionPosition2=0), shuntConductance1=15.0, shuntSusceptance1=15.0, shuntConductance2=25.0, shuntSusceptance2=25.0)", + "LineCreationInfos(super=BranchCreationInfos(super=EquipmentCreationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=null, type=LINE_CREATION, date=null, stashed=null, messageType=null, messageValues=null), equipmentId=idLineEdited), equipmentName=nameLineEdited), seriesResistance=110.0, seriesReactance=110.0, voltageLevelId1=v2, voltageLevelId2=v1, busOrBusbarSectionId1=1A, busOrBusbarSectionId2=1.1, currentLimits1=CurrentLimitsInfos(permanentLimit=200.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT10, value=200.0, acceptableDuration=600)]), currentLimits2=CurrentLimitsInfos(permanentLimit=100.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT20, value=600.0, acceptableDuration=1200)]), connectionName1=cn1LineEdited, connectionDirection1=BOTTOM, connectionName2=cn2LineEdited, connectionDirection2=TOP, connectionPosition1=0, connectionPosition2=0), shuntConductance1=15.0, shuntSusceptance1=15.0, shuntConductance2=25.0, shuntSusceptance2=25.0)", lineCreation.toString() ); } @@ -293,4 +292,20 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getLine("idLine")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLine", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLineEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java index 0e63bea44..97e704318 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineModificationTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Line; import com.powsybl.iidm.network.LoadingLimits.TemporaryLimit; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -18,6 +20,7 @@ import org.springframework.http.MediaType; import java.util.List; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.LINE_NOT_FOUND; @@ -332,4 +335,20 @@ public void testTemporaryLimitsModification() throws Exception { assertThat(createdModification).recursivelyEquals(lineModificationInfos1); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithNewVoltageLevelTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithNewVoltageLevelTest.java index bb5243d5a..6bdb4d4c1 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithNewVoltageLevelTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithNewVoltageLevelTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.SwitchKind; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.CouplingDeviceInfos; import org.gridsuite.modification.server.dto.LineSplitWithVoltageLevelInfos; @@ -19,12 +21,14 @@ import org.springframework.http.MediaType; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.LINE_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -108,4 +112,20 @@ protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getLine("nl1v")); assertNull(getNetwork().getLine("nl2v")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_SPLIT_WITH_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line2", createdValues.get("lineToSplitId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_SPLIT_WITH_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line2Edited", updatedValues.get("lineToSplitId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithVoltageLevelTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithVoltageLevelTest.java index cf73a146e..8800a6ab9 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithVoltageLevelTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LineSplitWithVoltageLevelTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.SwitchKind; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.CouplingDeviceInfos; import org.gridsuite.modification.server.dto.LineSplitWithVoltageLevelInfos; @@ -19,6 +21,7 @@ import org.springframework.http.MediaType; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BUSBAR_SECTION_NOT_FOUND; @@ -26,6 +29,7 @@ import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -137,4 +141,20 @@ public void testCreateWithWrongBusBar() throws Exception { assertLogMessage(new NetworkModificationException(BUSBAR_SECTION_NOT_FOUND, "v1d1").getMessage(), tryWithBadId.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_SPLIT_WITH_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line2", createdValues.get("lineToSplitId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINE_SPLIT_WITH_VOLTAGE_LEVEL", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("line2Edited", updatedValues.get("lineToSplitId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LinesAttachToSplitLinesTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LinesAttachToSplitLinesTest.java index 543f4c05b..fba450a88 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LinesAttachToSplitLinesTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LinesAttachToSplitLinesTest.java @@ -6,7 +6,9 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.LinesAttachToSplitLinesInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -15,12 +17,14 @@ import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.LINE_ALREADY_EXISTS; import static org.gridsuite.modification.server.NetworkModificationException.Type.LINE_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -117,4 +121,20 @@ public void testCreateWithErrors() throws Exception { assertLogMessage(new NetworkModificationException(LINE_ALREADY_EXISTS, "l1").getMessage(), linesAttachToSplitLinesInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINES_ATTACH_TO_SPLIT_LINES", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("l3", createdValues.get("attachedLineId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LINES_ATTACH_TO_SPLIT_LINES", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("newline3", updatedValues.get("attachedLineId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInBusBreakerTest.java index 6645020b6..f1eaff002 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInBusBreakerTest.java @@ -7,18 +7,22 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.LoadType; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.LoadCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.jupiter.api.Tag; +import java.util.Map; import java.util.UUID; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; @Tag("IntegrationTest") public class LoadCreationInBusBreakerTest extends AbstractNetworkModificationTest { @@ -66,4 +70,19 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getLoad("idLoad1")); } + + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LOAD_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLoad1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LOAD_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLoadEdited1", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInNodeBreakerTest.java index 2e025cdf7..c88f3c87d 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LoadCreationInNodeBreakerTest.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.LoadType; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.LoadCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -21,6 +22,7 @@ import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MvcResult; +import java.util.Map; import java.util.Optional; import java.util.UUID; @@ -28,6 +30,7 @@ import static org.gridsuite.modification.server.NetworkModificationException.Type.VOLTAGE_LEVEL_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -136,4 +139,20 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getLoad("idLoad1")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LOAD_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLoad1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LOAD_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("idLoad1Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/LoadModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/LoadModificationTest.java index e320262df..f76a752c0 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/LoadModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/LoadModificationTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Load; import com.powsybl.iidm.network.LoadType; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.AttributeModification; import org.gridsuite.modification.server.dto.LoadModificationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -19,6 +21,7 @@ import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; @@ -49,7 +52,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return LoadModificationInfos.builder() - .equipmentId("v1load") + .equipmentId("v1loadEdited") .equipmentName(new AttributeModification<>("nameLoadEdited1", OperationType.SET)) .loadType(new AttributeModification<>(LoadType.AUXILIARY, OperationType.SET)) .activePower(new AttributeModification<>(300.0, OperationType.SET)) @@ -89,4 +92,19 @@ public void testCreateWithErrors() throws Exception { .andExpect(status().isOk()); assertLogMessage("Load 'v1load': load type is null", loadModificationInfos.getErrorType().name(), reportService); } + + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LOAD_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v1load", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("LOAD_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v1loadEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java index cfc1cc20b..5fa874609 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInBusBreakerTest.java @@ -7,8 +7,10 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.dto.ShuntCompensatorCreationInfos; @@ -19,12 +21,14 @@ import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.BUS_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -89,4 +93,18 @@ protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getShuntCompensator("shuntOneId")); } + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SHUNT_COMPENSATOR_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("shuntOneId", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SHUNT_COMPENSATOR_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("shuntOneIdEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java index 4f3e238e9..48c302803 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorCreationInNodeBreakerTest.java @@ -7,8 +7,10 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.dto.ShuntCompensatorCreationInfos; @@ -20,6 +22,7 @@ import java.time.ZonedDateTime; import java.time.temporal.ChronoUnit; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.CONNECTION_POSITION_ERROR; @@ -28,6 +31,7 @@ import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -128,4 +132,20 @@ public void testCreateWithQAtNominalV() throws Exception { createdModification = (ShuntCompensatorCreationInfos) modificationRepository.getModifications(getGroupId(), false, true).get(1); assertThat(createdModification).recursivelyEquals(dto); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SHUNT_COMPENSATOR_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("shuntOneId", updatedValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SHUNT_COMPENSATOR_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("shuntOneIdEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorModificationTest.java index a77ddb794..c8b757076 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/ShuntCompensatorModificationTest.java @@ -7,6 +7,7 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.ShuntCompensatorLinearModel; import com.powsybl.iidm.network.VoltageLevel; @@ -16,8 +17,10 @@ import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; +import org.junit.jupiter.api.Assertions; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.SHUNT_COMPENSATOR_NOT_FOUND; @@ -210,4 +213,20 @@ protected void assertAfterNetworkModificationDeletion() { assertNotNull(model); assertEquals(1.0, model.getBPerSection(), 0); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SHUNT_COMPENSATOR_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v7shunt", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + Assertions.assertEquals("SHUNT_COMPENSATOR_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v2shunt", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/SubstationCreationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/SubstationCreationTest.java index b8c793587..9b8172c36 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/SubstationCreationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/SubstationCreationTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Country; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Substation; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.dto.SubstationCreationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -22,6 +24,7 @@ import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -74,4 +77,20 @@ public void testCreateWithErrors() throws Exception { .andExpect(status().isOk()); assertLogMessage("Invalid id ''", substationCreationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SUBSTATION_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("SubstationId", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SUBSTATION_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("SubstationIdEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/SubstationDeletionTest.java b/src/test/java/org/gridsuite/modification/server/modifications/SubstationDeletionTest.java index c26e5ceb5..365804393 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/SubstationDeletionTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/SubstationDeletionTest.java @@ -6,15 +6,18 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.EquipmentDeletionInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; - +import java.util.Map; import java.util.UUID; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Etienne Homer @@ -57,4 +60,20 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNotNull(getNetwork().getSubstation("s1")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_DELETION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("s1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_DELETION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v2", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/SubstationModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/SubstationModificationTest.java index 67b405a8f..23e0fd9da 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/SubstationModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/SubstationModificationTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Country; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Substation; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; @@ -17,6 +19,7 @@ import org.springframework.http.MediaType; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.UUID; @@ -53,7 +56,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return SubstationModificationInfos.builder() - .equipmentId("s3") + .equipmentId("s3Edited") .equipmentName(new AttributeModification<>("newNameEdited1", OperationType.SET)) .substationCountry(new AttributeModification<>(Country.JP, OperationType.SET)) .properties(null) @@ -97,4 +100,20 @@ public void testCreateWithErrors() throws Exception { .andExpect(status().isOk()); assertLogMessage("SUBSTATION_NOT_FOUND : Substation unknown does not exist in network", infos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SUBSTATION_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("s3", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("SUBSTATION_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("s3Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java index f1e7599c2..5c06a40e7 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationBusBreakerTest.java @@ -7,10 +7,12 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.IdentifiableType; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.PhaseTapChanger; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -20,6 +22,7 @@ import org.springframework.test.web.servlet.MvcResult; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.UUID; @@ -27,6 +30,7 @@ import static org.gridsuite.modification.server.NetworkModificationException.Type.BUS_NOT_FOUND; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -414,5 +418,21 @@ private List getTapChangerSteps() { .build() ); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("new2wt", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("new2wtUpdate", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java index c5044811d..b98a37b7a 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationMixedBreakerTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.PhaseTapChanger; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -18,10 +20,12 @@ import org.springframework.http.MediaType; import java.util.List; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -279,5 +283,21 @@ public void testCreateWithErrors() throws Exception { assertLogMessage(new NetworkModificationException(NetworkModificationException.Type.BUSBAR_SECTION_NOT_FOUND, "notFoundBus").getMessage(), twoWindingsTransformerCreationInfos.getErrorType().name(), reportService); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("id2wt1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("new2wtUpdate", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java index 600b4385b..6435018f6 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerCreationNodeBreakerTest.java @@ -12,6 +12,7 @@ import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.PhaseTapChanger; import com.powsybl.iidm.network.extensions.ConnectablePosition; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -21,6 +22,7 @@ import org.springframework.test.web.servlet.MvcResult; import java.util.List; +import java.util.Map; import java.util.Optional; import java.util.UUID; @@ -28,6 +30,7 @@ import static org.gridsuite.modification.server.NetworkModificationException.Type.TWO_WINDINGS_TRANSFORMER_ALREADY_EXISTS; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -326,7 +329,7 @@ public void testCreateTwoWindingsTransformerWithRatioTapChangerInNodeBreaker() t testCreateTwoWindingsTransformerInNodeBreaker(twoWindingsTransformerCreationInfos2, 2); assertEquals( - "TwoWindingsTransformerCreationInfos(super=BranchCreationInfos(super=EquipmentCreationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=null, date=null, stashed=null), equipmentId=id2wt1WithRatioTapChanger2), equipmentName=2wtName), seriesResistance=400.0, seriesReactance=300.0, voltageLevelId1=v1, voltageLevelId2=v4, busOrBusbarSectionId1=1.1, busOrBusbarSectionId2=1.A, currentLimits1=null, currentLimits2=null, connectionName1=null, connectionDirection1=TOP, connectionName2=null, connectionDirection2=TOP, connectionPosition1=null, connectionPosition2=null), magnetizingConductance=100.0, magnetizingSusceptance=200.0, ratedVoltage1=1000.0, ratedVoltage2=1010.0, ratedS=null, ratioTapChanger=RatioTapChangerCreationInfos(super=TapChangerCreationInfos(lowTapPosition=0, tapPosition=1, regulating=true, targetDeadband=null, regulatingTerminalId=v1load, regulatingTerminalType=LOAD, regulatingTerminalVlId=v1, steps=[TapChangerStepCreationInfos(index=0, rho=1.0, r=39.78473, x=39.784725, g=0.0, b=0.0, alpha=0.0), TapChangerStepCreationInfos(index=0, rho=1.0, r=39.78474, x=39.784726, g=0.0, b=0.0, alpha=0.0), TapChangerStepCreationInfos(index=0, rho=1.0, r=39.78475, x=39.784727, g=0.0, b=0.0, alpha=0.0)]), loadTapChangingCapabilities=true, targetV=220.0), phaseTapChanger=null)", + "TwoWindingsTransformerCreationInfos(super=BranchCreationInfos(super=EquipmentCreationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=null, type=TWO_WINDINGS_TRANSFORMER_CREATION, date=null, stashed=null, messageType=null, messageValues=null), equipmentId=id2wt1WithRatioTapChanger2), equipmentName=2wtName), seriesResistance=400.0, seriesReactance=300.0, voltageLevelId1=v1, voltageLevelId2=v4, busOrBusbarSectionId1=1.1, busOrBusbarSectionId2=1.A, currentLimits1=null, currentLimits2=null, connectionName1=null, connectionDirection1=TOP, connectionName2=null, connectionDirection2=TOP, connectionPosition1=null, connectionPosition2=null), magnetizingConductance=100.0, magnetizingSusceptance=200.0, ratedVoltage1=1000.0, ratedVoltage2=1010.0, ratedS=null, ratioTapChanger=RatioTapChangerCreationInfos(super=TapChangerCreationInfos(lowTapPosition=0, tapPosition=1, regulating=true, targetDeadband=null, regulatingTerminalId=v1load, regulatingTerminalType=LOAD, regulatingTerminalVlId=v1, steps=[TapChangerStepCreationInfos(index=0, rho=1.0, r=39.78473, x=39.784725, g=0.0, b=0.0, alpha=0.0), TapChangerStepCreationInfos(index=0, rho=1.0, r=39.78474, x=39.784726, g=0.0, b=0.0, alpha=0.0), TapChangerStepCreationInfos(index=0, rho=1.0, r=39.78475, x=39.784727, g=0.0, b=0.0, alpha=0.0)]), loadTapChangingCapabilities=true, targetV=220.0), phaseTapChanger=null)", twoWindingsTransformerCreationInfos2.toString() ); @@ -551,5 +554,21 @@ private List getTapChangerSteps() { .build() ); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("new2wt", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("new2wtUpdate", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java index 2f77da288..12becf9ae 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/TwoWindingsTransformerModificationTest.java @@ -7,11 +7,13 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.LoadingLimits; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.PhaseTapChanger; import com.powsybl.iidm.network.TwoWindingsTransformer; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.utils.NetworkCreation; @@ -20,6 +22,7 @@ import org.springframework.http.MediaType; import java.util.List; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.TWO_WINDINGS_TRANSFORMER_NOT_FOUND; @@ -132,7 +135,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { - return TwoWindingsTransformerModificationInfos.builder().equipmentId("trf1") + return TwoWindingsTransformerModificationInfos.builder().equipmentId("trf1Edited") .equipmentName(new AttributeModification<>("2wt modified name again", OperationType.SET)) .seriesResistance(new AttributeModification<>(1.1, OperationType.SET)) .seriesReactance(new AttributeModification<>(2.1, OperationType.SET)) @@ -547,5 +550,21 @@ public void testPhaseTapChangerModification() throws Exception { assertThat(createdModification).recursivelyEquals(twoWindingsTransformerModificationInfos); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("trf1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TWO_WINDINGS_TRANSFORMER_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("trf1Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelCreationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelCreationTest.java index a74af0df2..6f5b4d6ea 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelCreationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelCreationTest.java @@ -6,8 +6,10 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.SwitchKind; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.CouplingDeviceInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -19,12 +21,14 @@ import org.springframework.http.MediaType; import java.util.Arrays; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.*; import static org.gridsuite.modification.server.utils.assertions.Assertions.assertThat; import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -175,4 +179,20 @@ public void testCreateWithShortCircuitExtension() throws Exception { .getModifications(getGroupId(), false, true).get(1); assertThat(createdModification).recursivelyEquals(vli); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("VOLTAGE_LEVEL_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("vlId", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("VOLTAGE_LEVEL_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("VoltageLevelIdEdited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelDeletionTest.java b/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelDeletionTest.java index c71083674..143da93b2 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelDeletionTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelDeletionTest.java @@ -6,15 +6,18 @@ */ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.EquipmentDeletionInfos; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; +import java.util.Map; import java.util.UUID; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Etienne Homer @@ -55,4 +58,20 @@ protected void assertAfterNetworkModificationCreation() { protected void assertAfterNetworkModificationDeletion() { assertNotNull(getNetwork().getVoltageLevel("v1")); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_DELETION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("EQUIPMENT_DELETION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v2", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelModificationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelModificationTest.java index 9d1b64cd8..07d625740 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelModificationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/VoltageLevelModificationTest.java @@ -7,9 +7,11 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.VoltageLevel; import com.powsybl.iidm.network.extensions.IdentifiableShortCircuit; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.AttributeModification; import org.gridsuite.modification.server.dto.ModificationInfos; import org.gridsuite.modification.server.dto.OperationType; @@ -19,9 +21,11 @@ import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; +import java.util.Map; import java.util.UUID; import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -51,7 +55,7 @@ protected ModificationInfos buildModification() { @Override protected ModificationInfos buildModificationUpdate() { return VoltageLevelModificationInfos.builder() - .equipmentId("v1") + .equipmentId("v1Edited") .equipmentName(new AttributeModification<>("test 2", OperationType.SET)) .nominalVoltage(new AttributeModification<>(450D, OperationType.SET)) .lowVoltageLimit(new AttributeModification<>(40D, OperationType.SET)) @@ -120,4 +124,20 @@ private void applyModification(VoltageLevelModificationInfos infos) throws Excep .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()).andReturn(); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("VOLTAGE_LEVEL_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("VOLTAGE_LEVEL_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + assertEquals("v1Edited", updatedValues.get("equipmentId")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/VscCreationTest.java b/src/test/java/org/gridsuite/modification/server/modifications/VscCreationTest.java index 9324bf8fa..9bc526d99 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/VscCreationTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/VscCreationTest.java @@ -7,6 +7,7 @@ package org.gridsuite.modification.server.modifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.HvdcLine; import com.powsybl.iidm.network.MinMaxReactiveLimits; import com.powsybl.iidm.network.Network; @@ -16,6 +17,7 @@ import com.powsybl.iidm.network.extensions.ConnectablePosition; import com.powsybl.iidm.network.extensions.HvdcAngleDroopActivePowerControl; import com.powsybl.iidm.network.extensions.HvdcOperatorActivePowerRange; +import lombok.SneakyThrows; import org.gridsuite.modification.server.NetworkModificationException; import org.gridsuite.modification.server.dto.ConverterStationCreationInfos; import org.gridsuite.modification.server.dto.ModificationInfos; @@ -23,9 +25,11 @@ import org.gridsuite.modification.server.dto.VscCreationInfos; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; +import org.junit.jupiter.api.Assertions; import org.springframework.http.MediaType; import java.util.List; +import java.util.Map; import java.util.UUID; import static org.gridsuite.modification.server.NetworkModificationException.Type.CREATE_VSC_ERROR; @@ -120,7 +124,7 @@ private ConverterStationCreationInfos buildConverterStationWithReactiveCapabilit @Override protected ModificationInfos buildModificationUpdate() { return VscCreationInfos.builder() - .equipmentId("vsc1") + .equipmentId("vsc1Edited") .equipmentName("vsc2Name") .dcNominalVoltage(53.) .dcResistance(2.) @@ -188,6 +192,22 @@ protected void assertAfterNetworkModificationCreation() { assertEquals("v2", vscConverterStation2.getTerminal().getVoltageLevel().getId()); } + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("VSC_CREATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("vsc1", createdValues.get("equipmentId")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("VSC_CREATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("vsc1Edited", updatedValues.get("equipmentId")); + } + @Override protected void assertAfterNetworkModificationDeletion() { assertNull(getNetwork().getHvdcLine("vsc1")); diff --git a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularGeneratorModificationsTest.java b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularGeneratorModificationsTest.java index 192acf3e9..d58db5861 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularGeneratorModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularGeneratorModificationsTest.java @@ -7,16 +7,20 @@ package org.gridsuite.modification.server.modifications.tabularmodifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.ModificationType; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest; import org.gridsuite.modification.server.utils.NetworkCreation; import org.junit.Test; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Tag; import org.springframework.http.MediaType; import java.util.List; +import java.util.Map; import java.util.UUID; import static com.vladmihalcea.sql.SQLStatementCountValidator.assertSelectCount; @@ -114,4 +118,20 @@ public void testCheckSqlRequestsCount() throws Exception { // We check that the request count is not dependent on the number of sub modifications of the tabular modification (the JPA N+1 problem is correctly solved) assertSelectCount(3); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("GENERATOR_MODIFICATION", createdValues.get("tabularModificationType")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("GENERATOR_MODIFICATION", updatedValues.get("tabularModificationType")); + } } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLoadModificationsTest.java b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLoadModificationsTest.java index 156320d36..35199b90a 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLoadModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLoadModificationsTest.java @@ -7,13 +7,17 @@ package org.gridsuite.modification.server.modifications.tabularmodifications; +import com.fasterxml.jackson.core.type.TypeReference; import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest; import org.gridsuite.modification.server.utils.NetworkCreation; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Tag; import java.util.List; +import java.util.Map; import java.util.UUID; import static org.junit.Assert.assertEquals; @@ -67,4 +71,20 @@ protected void assertAfterNetworkModificationDeletion() { assertEquals(0., getNetwork().getLoad("v2load").getQ0(), 0.001); assertEquals(0., getNetwork().getLoad("v3load").getQ0(), 0.001); } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("LOAD_MODIFICATION", createdValues.get("tabularModificationType")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("LOAD_MODIFICATION", updatedValues.get("tabularModificationType")); + } }