SvcExportTest.java
/**
* 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/.
* SPDX-License-Identifier: MPL-2.0
*/
package com.powsybl.cgmes.conversion.test.export.issues;
import com.powsybl.cgmes.conformity.CgmesConformity1ModifiedCatalog;
import com.powsybl.cgmes.conversion.CgmesImport;
import com.powsybl.cgmes.conversion.Conversion;
import com.powsybl.cgmes.conversion.test.ConversionUtil;
import com.powsybl.cgmes.model.CgmesNamespace;
import com.powsybl.commons.test.AbstractSerDeTest;
import com.powsybl.iidm.network.Network;
import com.powsybl.iidm.network.StaticVarCompensator;
import org.junit.jupiter.api.Test;
import java.nio.file.Path;
import java.util.Properties;
import static com.powsybl.iidm.network.StaticVarCompensator.RegulationMode.OFF;
import static org.junit.jupiter.api.Assertions.*;
/**
* @author Luma Zamarre��o {@literal <zamarrenolm at aia.es>}
*/
class SvcExportTest extends AbstractSerDeTest {
@Test
void microT4SvcRCDisabled() {
String svcId = "3c69652c-ff14-4550-9a87-b6fdaccbb5f4";
String rcId = "caf65447-3cfb-48d7-aaaa-cd9af3d34261";
// Import a test case with SVC RC disabled and check we have kept the RC id ant its target value
Properties importParams = new Properties();
importParams.put(CgmesImport.IMPORT_CGM_WITH_SUBNETWORKS, "false");
Network network = Network.read(CgmesConformity1ModifiedCatalog.microT4BeBbOffSvcControlV().dataSource(), importParams);
StaticVarCompensator svc = network.getStaticVarCompensator(svcId);
assertNotNull(svc);
assertEquals(OFF, svc.getRegulationMode());
assertEquals(rcId, svc.getProperty(Conversion.PROPERTY_REGULATING_CONTROL));
assertEquals(231.123, svc.getVoltageSetpoint(), 0.0);
// Do a full export and check that output files contain the reference to the RC
String basename = "micro-t4-svc-rc-off-v";
network.write("CGMES", null, tmpDir.resolve(basename));
Path eq = tmpDir.resolve(basename + "_EQ.xml");
Path ssh = tmpDir.resolve(basename + "_SSH.xml");
assertTrue(ConversionUtil.xmlContains(eq, "RegulatingControl", CgmesNamespace.RDF_NAMESPACE, "ID", "_" + rcId));
assertTrue(ConversionUtil.xmlContains(ssh, "RegulatingControl", CgmesNamespace.RDF_NAMESPACE, "about", "#_" + rcId));
}
}