diff --git a/pom.xml b/pom.xml
index 2e39ab396..a47eb8798 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@
gridsuite
org.gridsuite:network-modification-server
- 0.81.0
+ 0.82.0-SNAPSHOT
diff --git a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/BatteryModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/BatteryModificationEntity.java
index 2dd7fc9ee..83af648e8 100644
--- a/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/BatteryModificationEntity.java
+++ b/src/main/java/org/gridsuite/modification/server/entities/equipment/modification/BatteryModificationEntity.java
@@ -151,6 +151,10 @@ public BatteryModificationInfos toModificationInfos() {
.stepUpTransformerX(toAttributeModification(getStepUpTransformerX()))
.reactiveCapabilityCurve(toAttributeModification(getReactiveCapabilityCurve()))
.reactiveCapabilityCurvePoints(DTOUtils.toReactiveCapabilityCurvePointsModificationInfos(getReactiveCapabilityCurvePoints()))
+ .pMeasurementValue(toAttributeModification(getPMeasurementValue()))
+ .pMeasurementValidity(toAttributeModification(getPMeasurementValidity()))
+ .qMeasurementValue(toAttributeModification(getQMeasurementValue()))
+ .qMeasurementValidity(toAttributeModification(getQMeasurementValidity()))
// properties
.properties(CollectionUtils.isEmpty(getProperties()) ? null :
getProperties().stream()
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 da04d9d2a..5ca9efbab 100644
--- a/src/test/java/org/gridsuite/modification/server/modifications/BatteryModificationTest.java
+++ b/src/test/java/org/gridsuite/modification/server/modifications/BatteryModificationTest.java
@@ -13,6 +13,8 @@
import com.powsybl.iidm.network.ReactiveLimitsKind;
import com.powsybl.iidm.network.extensions.ActivePowerControl;
import com.powsybl.iidm.network.extensions.BatteryShortCircuit;
+import com.powsybl.iidm.network.extensions.Measurement;
+import com.powsybl.iidm.network.extensions.Measurements;
import org.gridsuite.modification.dto.*;
import org.gridsuite.modification.server.dto.NetworkModificationsResult;
import org.gridsuite.modification.server.utils.NetworkCreation;
@@ -40,6 +42,10 @@
class BatteryModificationTest extends AbstractInjectionModificationTest {
private static final String PROPERTY_NAME = "property-name";
private static final String PROPERTY_VALUE = "property-value";
+ private static final Double MEASUREMENT_P_VALUE = 10.0;
+ private static final Boolean MEASUREMENT_P_VALID = false;
+ private static final Double MEASUREMENT_Q_VALUE = 0.5;
+ private static final Boolean MEASUREMENT_Q_VALID = true;
@Override
protected Network createNetwork(UUID networkUuid) {
@@ -68,6 +74,10 @@ protected ModificationInfos buildModification() {
.stepUpTransformerX(new AttributeModification<>(0.2, OperationType.SET))
.participate(new AttributeModification<>(true, OperationType.SET))
.reactiveCapabilityCurve(new AttributeModification<>(true, OperationType.SET))
+ .pMeasurementValue(new AttributeModification<>(MEASUREMENT_P_VALUE, OperationType.SET))
+ .pMeasurementValidity(new AttributeModification<>(MEASUREMENT_P_VALID, OperationType.SET))
+ .qMeasurementValue(new AttributeModification<>(MEASUREMENT_Q_VALUE, OperationType.SET))
+ .qMeasurementValidity(new AttributeModification<>(MEASUREMENT_Q_VALID, OperationType.SET))
.properties(List.of(FreePropertyInfos.builder().name(PROPERTY_NAME).value(PROPERTY_VALUE).build()))
.build();
}
@@ -116,6 +126,7 @@ protected void assertAfterNetworkModificationCreation() {
assertNotNull(batteryShortCircuit);
assertEquals(0.1, batteryShortCircuit.getDirectTransX());
assertEquals(0.2, batteryShortCircuit.getStepUpTransformerX());
+ assertMeasurements(modifiedBattery);
}
@Override
@@ -415,4 +426,15 @@ void testBatteryShortCircuitAttributesModification() throws Exception {
assertThat(createdModification).recursivelyEquals(batteryModificationInfos);
testNetworkModificationsCount(getGroupId(), 2);
}
+
+ private void assertMeasurements(Battery battery) {
+ Measurements> measurements = (Measurements>) battery.getExtension(Measurements.class);
+ assertNotNull(measurements);
+ Collection activePowerMeasurements = measurements.getMeasurements(Measurement.Type.ACTIVE_POWER).stream().toList();
+ Collection reactivePowerMeasurements = measurements.getMeasurements(Measurement.Type.REACTIVE_POWER).stream().toList();
+ assertThat(activePowerMeasurements).isNotEmpty();
+ assertThat(reactivePowerMeasurements).isNotEmpty();
+ assertThat(activePowerMeasurements).allMatch(m -> m.getValue() == MEASUREMENT_P_VALUE && m.isValid() == MEASUREMENT_P_VALID);
+ assertThat(reactivePowerMeasurements).allMatch(m -> m.getValue() == MEASUREMENT_Q_VALUE && m.isValid() == MEASUREMENT_Q_VALID);
+ }
}