diff --git a/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/EurostagTutorialExample1Factory.java b/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/EurostagTutorialExample1Factory.java index 11019804752..5711710bd44 100644 --- a/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/EurostagTutorialExample1Factory.java +++ b/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/EurostagTutorialExample1Factory.java @@ -384,4 +384,15 @@ public static Network createWithMultipleConnectedComponents() { return network; } + public static Network createWithTerminalMockExt() { + Network network = create(); + network.setCaseDate(DateTime.parse("2013-01-15T18:45:00.000+01:00")); + + Load load = network.getLoad("LOAD"); + TerminalMockExt terminalMockExt = new TerminalMockExt(load); + load.addExtension(TerminalMockExt.class, terminalMockExt); + + return network; + } + } diff --git a/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/TerminalMockExt.java b/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/TerminalMockExt.java new file mode 100644 index 00000000000..f5b92fdb289 --- /dev/null +++ b/iidm/iidm-test/src/main/java/com/powsybl/iidm/network/test/TerminalMockExt.java @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2019, 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 com.powsybl.iidm.network.test; + +import com.powsybl.commons.extensions.AbstractExtension; +import com.powsybl.iidm.network.Load; +import com.powsybl.iidm.network.Terminal; + +import java.util.Objects; + +/** + * @author Miora Ralambotiana + */ +public class TerminalMockExt extends AbstractExtension { + + private Terminal terminal; + + public TerminalMockExt(Load load) { + super(load); + terminal = load.getTerminal(); + } + + @Override + public String getName() { + return "terminalMock"; + } + + public Terminal getTerminal() { + return terminal; + } + + public TerminalMockExt setTerminal(Terminal terminal) { + this.terminal = Objects.requireNonNull(terminal); + return this; + } +} diff --git a/iidm/iidm-xml-converter/src/main/java/com/powsybl/iidm/xml/TerminalRefXml.java b/iidm/iidm-xml-converter/src/main/java/com/powsybl/iidm/xml/TerminalRefXml.java index c7232c27b66..fd3d76bfdae 100644 --- a/iidm/iidm-xml-converter/src/main/java/com/powsybl/iidm/xml/TerminalRefXml.java +++ b/iidm/iidm-xml-converter/src/main/java/com/powsybl/iidm/xml/TerminalRefXml.java @@ -11,6 +11,7 @@ import com.powsybl.iidm.network.*; import javax.xml.stream.XMLStreamException; +import javax.xml.stream.XMLStreamWriter; import static com.powsybl.iidm.xml.IidmXmlConstants.IIDM_URI; @@ -24,21 +25,25 @@ public static void writeTerminalRef(Terminal t, NetworkXmlWriterContext context, } public static void writeTerminalRef(Terminal t, NetworkXmlWriterContext context, String namespace, String elementName) throws XMLStreamException { + writeTerminalRef(t, context, namespace, elementName, context.getWriter()); + } + + public static void writeTerminalRef(Terminal t, NetworkXmlWriterContext context, String namespace, String elementName, XMLStreamWriter writer) throws XMLStreamException { Connectable c = t.getConnectable(); if (!context.getFilter().test(c)) { throw new PowsyblException("Oups, terminal ref point to a filtered equipment " + c.getId()); } - context.getWriter().writeEmptyElement(namespace, elementName); - context.getWriter().writeAttribute("id", context.getAnonymizer().anonymizeString(c.getId())); + writer.writeEmptyElement(namespace, elementName); + writer.writeAttribute("id", context.getAnonymizer().anonymizeString(c.getId())); if (c.getTerminals().size() > 1) { if (c instanceof Injection) { // nothing to do } else if (c instanceof Branch) { Branch branch = (Branch) c; - context.getWriter().writeAttribute("side", branch.getSide(t).name()); + writer.writeAttribute("side", branch.getSide(t).name()); } else if (c instanceof ThreeWindingsTransformer) { ThreeWindingsTransformer twt = (ThreeWindingsTransformer) c; - context.getWriter().writeAttribute("side", twt.getSide(t).name()); + writer.writeAttribute("side", twt.getSide(t).name()); } else { throw new AssertionError("Unexpected Connectable instance: " + c.getClass()); } diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/IdentifiableExtensionXmlSerializerTest.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/IdentifiableExtensionXmlSerializerTest.java index b7219e500f8..c14d7696f3a 100644 --- a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/IdentifiableExtensionXmlSerializerTest.java +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/IdentifiableExtensionXmlSerializerTest.java @@ -25,9 +25,7 @@ import javax.xml.stream.XMLStreamException; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; /** * @author Geoffroy Jamgotchian @@ -199,4 +197,16 @@ public void testNetworkSourceExtension() throws IOException { assertEquals(sourceData, source2.getSourceData()); } } + + @Test + public void testTerminalExtension() throws IOException { + Network network2 = roundTripXmlTest(EurostagTutorialExample1Factory.createWithTerminalMockExt(), + NetworkXml::writeAndValidate, + NetworkXml::read, + "/eurostag-tutorial-example1-with-terminalMock-ext.xml"); + Load loadXml = network2.getLoad("LOAD"); + TerminalMockExt terminalMockExtXml = loadXml.getExtension(TerminalMockExt.class); + assertNotNull(terminalMockExtXml); + assertSame(loadXml.getTerminal(), terminalMockExtXml.getTerminal()); + } } diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/LoadZipModelXmlSerializer.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/LoadZipModelXmlSerializer.java index 3e1fa679f04..8e470af3778 100644 --- a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/LoadZipModelXmlSerializer.java +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/LoadZipModelXmlSerializer.java @@ -60,13 +60,13 @@ public String getNamespacePrefix() { @Override public void write(LoadZipModel zipModel, XmlWriterContext context) throws XMLStreamException { - XmlUtil.writeDouble("a1", zipModel.getA1(), context.getWriter()); - XmlUtil.writeDouble("a2", zipModel.getA2(), context.getWriter()); - XmlUtil.writeDouble("a3", zipModel.getA3(), context.getWriter()); - XmlUtil.writeDouble("a4", zipModel.getA4(), context.getWriter()); - XmlUtil.writeDouble("a5", zipModel.getA5(), context.getWriter()); - XmlUtil.writeDouble("a6", zipModel.getA6(), context.getWriter()); - XmlUtil.writeDouble("v0", zipModel.getV0(), context.getWriter()); + XmlUtil.writeDouble("a1", zipModel.getA1(), context.getExtensionsWriter()); + XmlUtil.writeDouble("a2", zipModel.getA2(), context.getExtensionsWriter()); + XmlUtil.writeDouble("a3", zipModel.getA3(), context.getExtensionsWriter()); + XmlUtil.writeDouble("a4", zipModel.getA4(), context.getExtensionsWriter()); + XmlUtil.writeDouble("a5", zipModel.getA5(), context.getExtensionsWriter()); + XmlUtil.writeDouble("a6", zipModel.getA6(), context.getExtensionsWriter()); + XmlUtil.writeDouble("v0", zipModel.getV0(), context.getExtensionsWriter()); } @Override diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/TerminalMockXmlSerializer.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/TerminalMockXmlSerializer.java new file mode 100644 index 00000000000..731e500fa0f --- /dev/null +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/TerminalMockXmlSerializer.java @@ -0,0 +1,86 @@ +/** + * Copyright (c) 2019, 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 com.powsybl.iidm.xml; + +import com.google.auto.service.AutoService; +import com.powsybl.commons.extensions.ExtensionXmlSerializer; +import com.powsybl.commons.xml.XmlReaderContext; +import com.powsybl.commons.xml.XmlUtil; +import com.powsybl.commons.xml.XmlWriterContext; +import com.powsybl.iidm.network.Load; +import com.powsybl.iidm.network.Network; +import com.powsybl.iidm.network.test.TerminalMockExt; + +import javax.xml.stream.XMLStreamException; +import java.io.InputStream; + +/** + * @author Miora Ralambotiana + */ +@AutoService(ExtensionXmlSerializer.class) +public class TerminalMockXmlSerializer implements ExtensionXmlSerializer { + + @Override + public boolean hasSubElements() { + return true; + } + + @Override + public InputStream getXsdAsStream() { + return getClass().getResourceAsStream("/xsd/terminalMock.xsd"); + } + + @Override + public String getNamespaceUri() { + return "http://www.itesla_project.eu/schema/iidm/ext/terminal_mock/1_0"; + } + + @Override + public String getNamespacePrefix() { + return "mock"; + } + + @Override + public void write(TerminalMockExt extension, XmlWriterContext context) throws XMLStreamException { + NetworkXmlWriterContext networkContext = (NetworkXmlWriterContext) context; + TerminalRefXml.writeTerminalRef(extension.getTerminal(), networkContext, getNamespaceUri(), "terminal", context.getExtensionsWriter()); + } + + @Override + public TerminalMockExt read(Load extendable, XmlReaderContext context) throws XMLStreamException { + NetworkXmlReaderContext networkContext = (NetworkXmlReaderContext) context; + TerminalMockExt terminalMockExt = new TerminalMockExt(extendable); + XmlUtil.readUntilEndElement(getExtensionName(), networkContext.getReader(), () -> { + if (networkContext.getReader().getLocalName().equals("terminal")) { + String id = networkContext.getAnonymizer().deanonymizeString(networkContext.getReader().getAttributeValue(null, "id")); + String side = networkContext.getReader().getAttributeValue(null, "side"); + networkContext.getEndTasks().add(() -> { + Network network = extendable.getTerminal().getVoltageLevel().getSubstation().getNetwork(); + terminalMockExt.setTerminal(TerminalRefXml.readTerminalRef(network, id, side)); + }); + } else { + throw new AssertionError("Unexpected element: " + networkContext.getReader().getLocalName()); + } + }); + return terminalMockExt; + } + + @Override + public String getExtensionName() { + return "terminalMock"; + } + + @Override + public String getCategoryName() { + return "network"; + } + + @Override + public Class getExtensionClass() { + return TerminalMockExt.class; + } +} diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XMLImporterExporterBaseEXtensionsTest.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XMLImporterExporterBaseExtensionsTest.java similarity index 94% rename from iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XMLImporterExporterBaseEXtensionsTest.java rename to iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XMLImporterExporterBaseExtensionsTest.java index bab5d84d2ee..9ebff1a57aa 100644 --- a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XMLImporterExporterBaseEXtensionsTest.java +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XMLImporterExporterBaseExtensionsTest.java @@ -23,10 +23,9 @@ /** * @author Chamseddine BENHAMED */ -public class XMLImporterExporterBaseEXtensionsTest extends AbstractConverterTest { - - public void importExport(String xiidmBaseRef, String xiidmExtRef) throws IOException { +public class XMLImporterExporterBaseExtensionsTest extends AbstractConverterTest { + private void importExport(String xiidmBaseRef, String xiidmExtRef) throws IOException { Properties exportProperties = new Properties(); exportProperties.put(XMLExporter.EXPORT_MODE, String.valueOf(IidmImportExportMode.EXTENSIONS_IN_ONE_SEPARATED_FILE)); List exportExtensionsList = Arrays.asList("loadFoo", "loadBar"); diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseExtensionsTest.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseExtensionsTest.java index dc8d4315307..d06f8ff9221 100644 --- a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseExtensionsTest.java +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseExtensionsTest.java @@ -29,7 +29,7 @@ public class XmlExporterBaseExtensionsTest extends AbstractConverterTest { - public void exporterTestBaseExtensions(Network network, String xiidmBaseRef, String xiidmExtRef) throws IOException { + private void exporterTestBaseExtensions(Network network, String xiidmBaseRef, String xiidmExtRef) throws IOException { Properties exportProperties = new Properties(); exportProperties.put(XMLExporter.ANONYMISED, "false"); exportProperties.put(XMLExporter.EXPORT_MODE, String.valueOf(IidmImportExportMode.EXTENSIONS_IN_ONE_SEPARATED_FILE)); diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseOneExtensionPerFileTest.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseOneExtensionPerFileTest.java index 75b190881bc..b65e74977b1 100644 --- a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseOneExtensionPerFileTest.java +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterBaseOneExtensionPerFileTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.datasource.MemDataSource; import com.powsybl.iidm.IidmImportExportMode; import com.powsybl.iidm.network.Network; +import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; import com.powsybl.iidm.network.test.MultipleExtensionsTestNetworkFactory; import org.junit.Test; @@ -26,18 +27,23 @@ public class XmlExporterBaseOneExtensionPerFileTest extends AbstractConverterTest { - public void exporterOneFilePerExtensionType(Network network, String xiidmBaseRef, List extensionsList) throws IOException { - + private MemDataSource export(Network network, List extensionsList) { Properties properties = new Properties(); properties.put(XMLExporter.EXPORT_MODE, String.valueOf(IidmImportExportMode.ONE_SEPARATED_FILE_PER_EXTENSION_TYPE)); properties.put(XMLExporter.EXTENSIONS_LIST, extensionsList); MemDataSource dataSource = new MemDataSource(); new XMLExporter(platformConfig).export(network, properties, dataSource); + return dataSource; + } + + private void exporterOneFilePerExtensionType(Network network, List extensionsList) throws IOException { + MemDataSource dataSource = export(network, extensionsList); + // check the base exported file and compare it to iidmBaseRef reference file try (InputStream is = new ByteArrayInputStream(dataSource.getData("", "xiidm"))) { assertNotNull(is); - compareXml(getClass().getResourceAsStream(xiidmBaseRef), is); + compareXml(getClass().getResourceAsStream("/multiple-extensions.xiidm"), is); } try (InputStream is = new ByteArrayInputStream(dataSource.getData("-loadBar.xiidm"))) { @@ -53,8 +59,8 @@ public void exporterOneFilePerExtensionType(Network network, String xiidmBaseRef @Test(expected = NullPointerException.class) public void exportOneExtensionTypeTest() throws IOException { - List extensionsList = Arrays.asList("loadBar"); - exporterOneFilePerExtensionType(MultipleExtensionsTestNetworkFactory.create(), "/multiple-extensions.xiidm", extensionsList); + List extensionsList = Collections.singletonList("loadBar"); + exporterOneFilePerExtensionType(MultipleExtensionsTestNetworkFactory.create(), extensionsList); } @Test @@ -68,6 +74,21 @@ public void getIdentifiablesPerExtensionTypeTest() { @Test public void exportAllExtensionsTest() throws IOException { List extensionsList = Arrays.asList("loadFoo", "loadBar"); - exporterOneFilePerExtensionType(MultipleExtensionsTestNetworkFactory.create(), "/multiple-extensions.xiidm", extensionsList); + exporterOneFilePerExtensionType(MultipleExtensionsTestNetworkFactory.create(), extensionsList); + } + + @Test + public void exportTerminalExtTest() throws IOException { + MemDataSource dataSource = export(EurostagTutorialExample1Factory.createWithTerminalMockExt(), Collections.singletonList("terminalMock")); + + try (InputStream is = new ByteArrayInputStream(dataSource.getData("", "xiidm"))) { + assertNotNull(is); + compareXml(getClass().getResourceAsStream("/eurostag-tutorial-example1.xml"), is); + } + + try (InputStream is = new ByteArrayInputStream(dataSource.getData("-terminalMock.xiidm"))) { + assertNotNull(is); + compareXml(getClass().getResourceAsStream("/eurostag-tutorial-example1-terminalMock.xml"), is); + } } } diff --git a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterImporterBaseOneExtensionPerFileTest.java b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterImporterBaseOneExtensionPerFileTest.java index 793db6c0d17..df5c3a288b0 100644 --- a/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterImporterBaseOneExtensionPerFileTest.java +++ b/iidm/iidm-xml-converter/src/test/java/com/powsybl/iidm/xml/XmlExporterImporterBaseOneExtensionPerFileTest.java @@ -7,10 +7,14 @@ package com.powsybl.iidm.xml; import com.powsybl.commons.AbstractConverterTest; +import com.powsybl.commons.datasource.DataSource; import com.powsybl.commons.datasource.MemDataSource; import com.powsybl.iidm.IidmImportExportMode; +import com.powsybl.iidm.network.Load; import com.powsybl.iidm.network.Network; +import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; import com.powsybl.iidm.network.test.MultipleExtensionsTestNetworkFactory; +import com.powsybl.iidm.network.test.TerminalMockExt; import org.junit.Test; import java.io.ByteArrayInputStream; @@ -20,6 +24,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertSame; /** * @author Chamseddine BENHAMED @@ -27,8 +32,7 @@ public class XmlExporterImporterBaseOneExtensionPerFileTest extends AbstractConverterTest { - public void exporteImportOneFilePerExtensionType(Network network, String xiidmBaseRef) throws IOException { - List extensions = Arrays.asList("loadFoo", "loadBar"); + private MemDataSource exportOneFilePerExtensionType(Network network, List extensions) { Properties exportProperties = new Properties(); exportProperties.put(XMLExporter.EXPORT_MODE, String.valueOf(IidmImportExportMode.ONE_SEPARATED_FILE_PER_EXTENSION_TYPE)); exportProperties.put(XMLExporter.EXTENSIONS_LIST, extensions); @@ -36,9 +40,25 @@ public void exporteImportOneFilePerExtensionType(Network network, String xiidmBa MemDataSource dataSource = new MemDataSource(); new XMLExporter(platformConfig).export(network, exportProperties, dataSource); + return dataSource; + } + + private Network importOneFilePerExtensionType(DataSource dataSource, List extensions) { + Properties importProperties = new Properties(); + importProperties.put(XMLImporter.IMPORT_MODE, String.valueOf(IidmImportExportMode.ONE_SEPARATED_FILE_PER_EXTENSION_TYPE)); + importProperties.put(XMLImporter.EXTENSIONS_LIST, extensions); + return new XMLImporter(platformConfig).importData(dataSource, importProperties); + } + + @Test + public void testMultipleExtensions() throws IOException { + Network network = MultipleExtensionsTestNetworkFactory.create(); + List extensions = Arrays.asList("loadFoo", "loadBar"); + MemDataSource dataSource = exportOneFilePerExtensionType(network, extensions); + // check the base exported file and compare it to iidmBaseRef reference file try (InputStream is = new ByteArrayInputStream(dataSource.getData("", "xiidm"))) { - compareXml(getClass().getResourceAsStream(xiidmBaseRef), is); + compareXml(getClass().getResourceAsStream("/multiple-extensions.xiidm"), is); } try (InputStream is = new ByteArrayInputStream(dataSource.getData("-loadBar.xiidm"))) { @@ -49,12 +69,8 @@ public void exporteImportOneFilePerExtensionType(Network network, String xiidmBa compareXml(getClass().getResourceAsStream("/multiple-extensions-loadFoo.xiidm"), is); } - Properties importProperties = new Properties(); - importProperties.put(XMLImporter.IMPORT_MODE, String.valueOf(IidmImportExportMode.ONE_SEPARATED_FILE_PER_EXTENSION_TYPE)); - importProperties.put(XMLImporter.EXTENSIONS_LIST, extensions); - XMLImporter importer = new XMLImporter(platformConfig); + Network n = importOneFilePerExtensionType(dataSource, extensions); - Network n = importer.importData(dataSource, importProperties); assertNotNull(n); assertEquals(2, network.getLoad("LOAD").getExtensions().size()); assertEquals(1, network.getLoad("LOAD2").getExtensions().size()); @@ -66,8 +82,13 @@ public void exporteImportOneFilePerExtensionType(Network network, String xiidmBa } @Test - public void test() throws IOException { - exporteImportOneFilePerExtensionType(MultipleExtensionsTestNetworkFactory.create(), - "/multiple-extensions.xiidm"); + public void testTerminalMockExtension() { + MemDataSource dataSource = exportOneFilePerExtensionType(EurostagTutorialExample1Factory.createWithTerminalMockExt(), Collections.singletonList("terminalMock")); + Network network2 = importOneFilePerExtensionType(dataSource, Collections.singletonList("terminalMock")); + + Load load2 = network2.getLoad("LOAD"); + TerminalMockExt terminalMockExt2 = load2.getExtension(TerminalMockExt.class); + assertNotNull(terminalMockExt2); + assertSame(load2.getTerminal(), terminalMockExt2.getTerminal()); } } diff --git a/iidm/iidm-xml-converter/src/test/resources/eurostag-tutorial-example1-terminalMock.xml b/iidm/iidm-xml-converter/src/test/resources/eurostag-tutorial-example1-terminalMock.xml new file mode 100644 index 00000000000..505a59b8147 --- /dev/null +++ b/iidm/iidm-xml-converter/src/test/resources/eurostag-tutorial-example1-terminalMock.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/iidm/iidm-xml-converter/src/test/resources/eurostag-tutorial-example1-with-terminalMock-ext.xml b/iidm/iidm-xml-converter/src/test/resources/eurostag-tutorial-example1-with-terminalMock-ext.xml new file mode 100644 index 00000000000..a1177e4c104 --- /dev/null +++ b/iidm/iidm-xml-converter/src/test/resources/eurostag-tutorial-example1-with-terminalMock-ext.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iidm/iidm-xml-converter/src/test/resources/xsd/terminalMock.xsd b/iidm/iidm-xml-converter/src/test/resources/xsd/terminalMock.xsd new file mode 100644 index 00000000000..2bd4a837c5c --- /dev/null +++ b/iidm/iidm-xml-converter/src/test/resources/xsd/terminalMock.xsd @@ -0,0 +1,15 @@ + + + + + + + + + + +