Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into mcs-tabular-modificat…
Browse files Browse the repository at this point in the history
…ions

# Conflicts:
#	src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java
#	src/main/java/org/gridsuite/modification/server/modifications/TabularModification.java
  • Loading branch information
David SARTORI committed Dec 29, 2023
2 parents 7d2a691 + bc9971e commit 61f5886
Show file tree
Hide file tree
Showing 3 changed files with 104 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.gridsuite.modification.server.entities.equipment.modification.GeneratorModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.LineModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.LoadModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.SubstationModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.TwoWindingsTransformerModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.ShuntCompensatorModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.VoltageLevelModificationEntity;
Expand Down Expand Up @@ -66,6 +67,9 @@ public TabularModificationEntity(TabularModificationInfos tabularModificationInf
case "LINE_MODIFICATION":
modifications = tabularModificationInfos.getModifications().stream().map(lineModificationInfos -> new LineModificationEntity((LineModificationInfos) lineModificationInfos)).collect(Collectors.toList());
break;
case "SUBSTATION_MODIFICATION":
modifications = tabularModificationInfos.getModifications().stream().map(subStationModificationInfos -> new SubstationModificationEntity((SubstationModificationInfos) subStationModificationInfos)).collect(Collectors.toList());
break;
default:
break;
}
Expand Down Expand Up @@ -111,6 +115,9 @@ public void update(@NonNull ModificationInfos modificationInfos) {
case "LINE_MODIFICATION":
modifications.addAll(tabularModificationInfos.getModifications().stream().map(lineModificationInfos -> new LineModificationEntity((LineModificationInfos) lineModificationInfos)).collect(Collectors.toList()));
break;
case "SUBSTATION_MODIFICATION":
modifications.addAll(tabularModificationInfos.getModifications().stream().map(subStationModificationInfos -> new SubstationModificationEntity((SubstationModificationInfos) subStationModificationInfos)).toList());
break;
default:
break;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ public void apply(Network network, Reporter subReporter) {
case "VOLTAGE_LEVEL_MODIFICATION" -> "voltage levels" + defaultMessage;
case "SHUNT_COMPENSATOR_MODIFICATION" -> "shunt compensator" + defaultMessage;
case "LINE_MODIFICATION" -> "lines" + defaultMessage;
case "SUBSTATION_MODIFICATION" -> "substations" + defaultMessage;
default -> "equipments of unknown type" + defaultMessage;
};

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
/**
* Copyright (c) 2023, RTE (http://www.rte-france.com)
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/

package org.gridsuite.modification.server.modifications.tabularmodifications;

import com.fasterxml.jackson.core.type.TypeReference;
import com.powsybl.iidm.network.Country;
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;

/**
* @author AJELLAL Ali <[email protected]>
*/
@Tag("IntegrationTest")
public class TabularSubstationModificationsTest extends AbstractNetworkModificationTest {
public static final String MODIFICATION_TYPE = "SUBSTATION_MODIFICATION";

@Override
protected Network createNetwork(UUID networkUuid) {
return NetworkCreation.create(networkUuid, true);
}

@Override
protected ModificationInfos buildModification() {

List<ModificationInfos> modifications = List.of(
SubstationModificationInfos.builder().equipmentId("s1").equipmentName(new AttributeModification<>("s1", OperationType.SET)).substationCountry(new AttributeModification<>(Country.BE, OperationType.SET)).build(),
SubstationModificationInfos.builder().equipmentId("s2").equipmentName(new AttributeModification<>("s2", OperationType.SET)).substationCountry(new AttributeModification<>(Country.BE, OperationType.SET)).build()
);
return TabularModificationInfos.builder()
.modificationType(MODIFICATION_TYPE)
.modifications(modifications)
.stashed(false)
.build();
}

@Override
protected ModificationInfos buildModificationUpdate() {
List<ModificationInfos> modifications = List.of(
SubstationModificationInfos.builder().equipmentId("s1").equipmentName(new AttributeModification<>("s1", OperationType.SET)).substationCountry(new AttributeModification<>(Country.JP, OperationType.SET)).build(),
SubstationModificationInfos.builder().equipmentId("s2").equipmentName(new AttributeModification<>("s2", OperationType.SET)).substationCountry(new AttributeModification<>(Country.JP, OperationType.SET)).build()
);
return TabularModificationInfos.builder()
.modificationType(MODIFICATION_TYPE)
.modifications(modifications)
.stashed(false)
.build();
}

@Override
protected void assertAfterNetworkModificationCreation() {
assertEquals(Country.BE, getNetwork().getSubstation("s1").getCountry().orElse(Country.AF));
assertEquals("s1", getNetwork().getSubstation("s1").getOptionalName().orElse("s2"));
assertEquals(Country.BE, getNetwork().getSubstation("s2").getCountry().orElse(Country.AF));
assertEquals("s2", getNetwork().getSubstation("s2").getOptionalName().orElse("s1"));
}

@Override
protected void assertAfterNetworkModificationDeletion() {
assertEquals(Country.FR, getNetwork().getSubstation("s1").getCountry().orElse(Country.BE));
assertEquals("s1", getNetwork().getSubstation("s1").getOptionalName().orElse("s2"));
assertEquals(Country.FR, getNetwork().getSubstation("s2").getCountry().orElse(Country.BE));
assertEquals("s2", getNetwork().getSubstation("s2").getOptionalName().orElse("s1"));
}

@Override
@SneakyThrows
protected void testCreationModificationMessage(ModificationInfos modificationInfos) {
assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType());
Map<String, String> createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { });
Assertions.assertEquals(MODIFICATION_TYPE, createdValues.get("tabularModificationType"));
}

@Override
@SneakyThrows
protected void testUpdateModificationMessage(ModificationInfos modificationInfos) {
assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType());
Map<String, String> updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { });
Assertions.assertEquals(MODIFICATION_TYPE, updatedValues.get("tabularModificationType"));
}
}

0 comments on commit 61f5886

Please sign in to comment.