|
7 | 7 | package org.gridsuite.modification.server.modifications; |
8 | 8 |
|
9 | 9 | import com.fasterxml.jackson.core.type.TypeReference; |
| 10 | +import com.powsybl.iidm.network.Line; |
10 | 11 | import com.powsybl.iidm.network.Network; |
| 12 | +import com.powsybl.iidm.network.OperationalLimitsGroup; |
11 | 13 | import com.powsybl.iidm.network.extensions.ConnectablePosition; |
12 | 14 | import org.gridsuite.modification.NetworkModificationException; |
13 | 15 | import org.gridsuite.modification.dto.*; |
|
32 | 34 | class LineCreationInNodeBreakerTest extends AbstractNetworkModificationTest { |
33 | 35 | private static final String PROPERTY_NAME = "property-name"; |
34 | 36 | private static final String PROPERTY_VALUE = "property-value"; |
| 37 | + private static final String PROP1_NAME = "prop1"; |
| 38 | + private static final String PROP2_NAME = "prop2"; |
| 39 | + private static final String PROP1_VALUE = "value1"; |
| 40 | + private static final String PROP2_VALUE = "value2"; |
35 | 41 |
|
36 | 42 | @Test |
37 | 43 | void testCreateWithBadVariant() throws Exception { |
@@ -252,11 +258,37 @@ void testCreateLineWithBothCurrentLimits() throws Exception { |
252 | 258 | testNetworkModificationsCount(getGroupId(), 1); |
253 | 259 |
|
254 | 260 | assertEquals( |
255 | | - "LineCreationInfos(super=BranchCreationInfos(super=EquipmentCreationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=null, type=LINE_CREATION, date=null, stashed=false, messageType=null, messageValues=null, activated=true), equipmentId=idLineEdited, properties=null), equipmentName=nameLineEdited), r=110.0, x=110.0, voltageLevelId1=v2, voltageLevelId2=v1, busOrBusbarSectionId1=1A, busOrBusbarSectionId2=1.1, operationalLimitsGroups=[OperationalLimitsGroupInfos(id=null, currentLimits=CurrentLimitsInfos(permanentLimit=200.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT10, value=200.0, acceptableDuration=600)]), applicability=SIDE1), OperationalLimitsGroupInfos(id=null, currentLimits=CurrentLimitsInfos(permanentLimit=100.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT20, value=600.0, acceptableDuration=1200)]), applicability=SIDE2)], selectedOperationalLimitsGroup1=null, selectedOperationalLimitsGroup2=null, connectionName1=cn1LineEdited, connectionDirection1=BOTTOM, connectionName2=cn2LineEdited, connectionDirection2=TOP, connectionPosition1=0, connectionPosition2=0, connected1=true, connected2=false), g1=15.0, b1=15.0, g2=25.0, b2=25.0)", |
| 261 | + "LineCreationInfos(super=BranchCreationInfos(super=EquipmentCreationInfos(super=EquipmentModificationInfos(super=ModificationInfos(uuid=null, type=LINE_CREATION, date=null, stashed=false, messageType=null, messageValues=null, activated=true), equipmentId=idLineEdited, properties=null), equipmentName=nameLineEdited), r=110.0, x=110.0, voltageLevelId1=v2, voltageLevelId2=v1, busOrBusbarSectionId1=1A, busOrBusbarSectionId2=1.1, operationalLimitsGroups=[OperationalLimitsGroupInfos(id=null, currentLimits=CurrentLimitsInfos(permanentLimit=200.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT10, value=200.0, acceptableDuration=600)]), applicability=SIDE1, limitsProperties=null), OperationalLimitsGroupInfos(id=null, currentLimits=CurrentLimitsInfos(permanentLimit=100.0, temporaryLimits=[CurrentTemporaryLimitCreationInfos(name=IT20, value=600.0, acceptableDuration=1200)]), applicability=SIDE2, limitsProperties=null)], selectedOperationalLimitsGroup1=null, selectedOperationalLimitsGroup2=null, connectionName1=cn1LineEdited, connectionDirection1=BOTTOM, connectionName2=cn2LineEdited, connectionDirection2=TOP, connectionPosition1=0, connectionPosition2=0, connected1=true, connected2=false), g1=15.0, b1=15.0, g2=25.0, b2=25.0)", |
256 | 262 | lineCreation.toString() |
257 | 263 | ); |
258 | 264 | } |
259 | 265 |
|
| 266 | + @Test |
| 267 | + void testCreateLimitsProperties() { |
| 268 | + LineCreationInfos modificationInfos = (LineCreationInfos) buildModification(); |
| 269 | + modificationInfos.setOperationalLimitsGroups(List.of( |
| 270 | + OperationalLimitsGroupInfos.builder() |
| 271 | + .id("newLimit") |
| 272 | + .applicability(SIDE1) |
| 273 | + .limitsProperties(List.of(new LimitsPropertyInfos(PROP1_NAME, PROP1_VALUE), |
| 274 | + new LimitsPropertyInfos(PROP2_NAME, PROP2_VALUE))) |
| 275 | + .currentLimits(CurrentLimitsInfos.builder().permanentLimit(10.0) |
| 276 | + .build()) |
| 277 | + .build())); |
| 278 | + |
| 279 | + modificationInfos.toModification().apply(getNetwork()); |
| 280 | + Line line = getNetwork().getLine("idLine"); |
| 281 | + assertNotNull(line); |
| 282 | + Optional<OperationalLimitsGroup> limitSet = line.getOperationalLimitsGroup1("newLimit"); |
| 283 | + assertTrue(limitSet.isPresent()); |
| 284 | + Set<String> propertiesName = limitSet.get().getPropertyNames(); |
| 285 | + assertEquals(2, propertiesName.size()); |
| 286 | + assertTrue(propertiesName.contains(PROP1_NAME)); |
| 287 | + assertTrue(propertiesName.contains(PROP2_NAME)); |
| 288 | + assertEquals(PROP1_VALUE, limitSet.get().getProperty(PROP1_NAME)); |
| 289 | + assertEquals(PROP2_VALUE, limitSet.get().getProperty(PROP2_NAME)); |
| 290 | + } |
| 291 | + |
260 | 292 | @Override |
261 | 293 | protected Network createNetwork(UUID networkUuid) { |
262 | 294 | return NetworkCreation.create(networkUuid, true); |
|
0 commit comments