Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@
<sonar.organization>gridsuite</sonar.organization>
<sonar.projectKey>org.gridsuite:network-modification-server</sonar.projectKey>
<!-- TODO network-modification.version remove when included in gridsuite-dependencies -->
<network-modification.version>0.71.0</network-modification.version>
<network-modification.version>0.72.0</network-modification.version>
<!-- TODO network-store.version remove when included in powsybl-ws-dependencies -->
<network-store-client.version>1.39.0</network-store-client.version>
<!-- FIXME to remove when powsybl-ws-dependencies upgrades to springboot 3.5.9 -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,8 @@ public ShuntCompensatorModificationInfos toModificationInfos() {
.maxSusceptance(IAttributeModificationEmbeddable.toAttributeModification(getMaxSusceptance()))
.maximumSectionCount(IAttributeModificationEmbeddable.toAttributeModification(getMaximumSectionCount()))
.sectionCount(IAttributeModificationEmbeddable.toAttributeModification(getSectionCount()))
.qMeasurementValue(IAttributeModificationEmbeddable.toAttributeModification(getQMeasurementValue()))
.qMeasurementValidity(IAttributeModificationEmbeddable.toAttributeModification(getQMeasurementValidity()))
// properties
.properties(CollectionUtils.isEmpty(getProperties()) ? null :
getProperties().stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,20 @@
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;
import com.powsybl.iidm.network.*;
import com.powsybl.iidm.network.extensions.ConnectablePosition;
import com.powsybl.iidm.network.extensions.Measurement;
import com.powsybl.iidm.network.extensions.Measurements;
import org.apache.commons.collections4.CollectionUtils;
import org.assertj.core.api.Assertions;
import org.gridsuite.modification.NetworkModificationException;
import org.gridsuite.modification.dto.*;
import org.gridsuite.modification.server.utils.NetworkCreation;
import org.junit.jupiter.api.Test;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.ResultActions;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.UUID;
Expand All @@ -27,8 +30,8 @@
import static org.gridsuite.modification.server.report.NetworkModificationServerReportResourceBundle.ERROR_MESSAGE_KEY;
import static org.gridsuite.modification.server.utils.NetworkUtil.createShuntCompensator;
import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.*;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.asyncDispatch;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.request;
Expand All @@ -40,6 +43,8 @@
class ShuntCompensatorModificationTest extends AbstractInjectionModificationTest {
private static final String PROPERTY_NAME = "property-name";
private static final String PROPERTY_VALUE = "property-value";
private static final Double MEASUREMENT_Q_VALUE = -10.0;
private static final Boolean MEASUREMENT_Q_VALID = false;

@Override
protected Network createNetwork(UUID networkUuid) {
Expand Down Expand Up @@ -279,6 +284,8 @@ protected ModificationInfos buildModification() {
.maxQAtNominalV(new AttributeModification<>(15.0, OperationType.SET))
.maximumSectionCount(new AttributeModification<>(1, OperationType.SET))
.sectionCount(new AttributeModification<>(1, 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();

Expand All @@ -300,6 +307,7 @@ protected void assertAfterNetworkModificationCreation() {
assertNotNull(model);
assertEquals(2.9629E-4, model.getBPerSection(), 0.0001);
assertEquals(PROPERTY_VALUE, getNetwork().getShuntCompensator("v7shunt").getProperty(PROPERTY_NAME));
assertMeasurements(shuntCompensator);
}

@Override
Expand Down Expand Up @@ -347,4 +355,12 @@ void testConnection() throws Exception {
.build();
assertChangeConnectionState(getNetwork().getShuntCompensator("v2shunt"), shuntModificationInfos, true);
}

private void assertMeasurements(ShuntCompensator shuntCompensator) {
Measurements<?> measurements = (Measurements<?>) shuntCompensator.getExtension(Measurements.class);
assertNotNull(measurements);
Collection<Measurement> reactivePowerMeasurements = measurements.getMeasurements(Measurement.Type.REACTIVE_POWER).stream().toList();
assertFalse(CollectionUtils.isEmpty(reactivePowerMeasurements));
Assertions.assertThat(reactivePowerMeasurements).allMatch(m -> m.getValue() == MEASUREMENT_Q_VALUE && m.isValid() == MEASUREMENT_Q_VALID);
}
}
Loading