From b248a613aa6a2e6163c126c4a885f895f2cb80e3 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 18 Oct 2023 17:26:18 +0200 Subject: [PATCH] Convert yang-data-codec-xml to JUnit5 This is a mostly automated conversion, but the parameterized tests require some intervention. JIRA: YANGTOOLS-1521 Change-Id: I8599cc0dc3b98a8206e09312fea828826c58072a Signed-off-by: matus.matok Signed-off-by: Robert Varga --- .../data/codec/xml/AbstractAnydataTest.java | 14 +-- .../yang/data/codec/xml/AbstractXmlTest.java | 1 - .../xml/AnyXmlWithParamsParsingTest.java | 39 +++---- .../xml/AnydataNormalizeContentTest.java | 100 +++++++++--------- .../yang/data/codec/xml/AnydataParseTest.java | 6 +- .../data/codec/xml/AnydataSerializeTest.java | 50 ++++----- .../yang/data/codec/xml/Bug5396Test.java | 33 +++--- .../yang/data/codec/xml/Bug5446Test.java | 16 +-- .../yang/data/codec/xml/Bug8083Test.java | 12 +-- .../yang/data/codec/xml/Bug8675Test.java | 30 +++--- .../yang/data/codec/xml/Bug8745Test.java | 41 +++---- .../yang/data/codec/xml/Bug8803Test.java | 67 +++++------- .../yang/data/codec/xml/Bug890Test.java | 12 +-- .../xml/DOMSourceXMLStreamReaderTest.java | 41 +++---- .../data/codec/xml/NamespacePrefixesTest.java | 2 +- .../xml/NormalizedNodeXmlTranslationTest.java | 70 ++++++------ .../codec/xml/NormalizedNodesToXmlTest.java | 45 +++----- ...SchemaOrderedNormalizedNodeWriterTest.java | 53 ++++------ ...LStreamNormalizedNodeStreamWriterTest.java | 33 ++---- .../data/codec/xml/StrictParsingModeTest.java | 28 ++--- .../yang/data/codec/xml/TestFactories.java | 22 ++-- .../data/codec/xml/XmlStreamUtilsTest.java | 42 ++++---- .../codec/xml/XmlToNormalizedNodesTest.java | 40 +++---- .../yang/data/codec/xml/YT1107Test.java | 8 +- .../yang/data/codec/xml/YT1108Test.java | 57 +++++----- .../yang/data/codec/xml/YT1473Test.java | 2 +- 26 files changed, 366 insertions(+), 498 deletions(-) diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractAnydataTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractAnydataTest.java index 3ea2029b7e..7c0480c033 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractAnydataTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractAnydataTest.java @@ -16,8 +16,8 @@ import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; @@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public abstract class AbstractAnydataTest extends AbstractXmlTest { +abstract class AbstractAnydataTest extends AbstractXmlTest { static final QName FOO_QNAME = QName.create("test-anydata", "foo"); static final QName CONT_QNAME = QName.create(FOO_QNAME, "cont"); static final QName CONT_ANY_QNAME = QName.create(FOO_QNAME, "cont-any"); @@ -40,8 +40,8 @@ public abstract class AbstractAnydataTest extends AbstractXmlTest { static EffectiveModelContext SCHEMA_CONTEXT; - @BeforeClass - public static void beforeClass() throws Exception { + @BeforeAll + static final void beforeAll() throws Exception { SCHEMA_CONTEXT = YangParserTestUtils.parseYang(""" module test-anydata { yang-version 1.1; @@ -76,8 +76,8 @@ public abstract class AbstractAnydataTest extends AbstractXmlTest { }"""); } - @AfterClass - public static void afterClass() { + @AfterAll + static final void afterAll() { SCHEMA_CONTEXT = null; } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractXmlTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractXmlTest.java index 8c97f54452..72876c885a 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractXmlTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractXmlTest.java @@ -28,7 +28,6 @@ import org.xml.sax.SAXException; abstract class AbstractXmlTest { private static final TransformerFactory TF = TransformerFactory.newInstance(); - static final Document loadDocument(final String resourcePath) { return requireNonNull(readXmlToDocument(Bug5446Test.class.getResourceAsStream(resourcePath))); } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java index c820db0d3c..4690ab47bc 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java @@ -9,17 +9,16 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; import java.io.InputStream; import java.io.StringWriter; import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -30,17 +29,14 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent import org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.DOMSourceAnyxmlNode; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -import org.w3c.dom.Document; -public class AnyXmlWithParamsParsingTest { +class AnyXmlWithParamsParsingTest { private static final InputStream EDIT_CONFIG = XmlToNormalizedNodesTest.class.getResourceAsStream( "/anyxml-support/params/edit.xml"); @@ -48,25 +44,24 @@ public class AnyXmlWithParamsParsingTest { XMLNamespace.of("urn:ietf:params:xml:ns:netconf:base:1.0"), Revision.of("2011-06-01")); @Test - public void testAnyXmlWithParams() throws Exception { - final EffectiveModelContext context = YangParserTestUtils.parseYangResourceDirectory("/anyxml-support/params/"); + void testAnyXmlWithParams() throws Exception { + final var context = YangParserTestUtils.parseYangResourceDirectory("/anyxml-support/params/"); - final Document doc = UntrustedXML.newDocumentBuilder().parse(EDIT_CONFIG); + final var doc = UntrustedXML.newDocumentBuilder().parse(EDIT_CONFIG); final var resultHolder = new NormalizationResultHolder(); final var writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder); - final XmlParserStream xmlParser = XmlParserStream.create(writer, SchemaInferenceStack.of(context, + final var xmlParser = XmlParserStream.create(writer, SchemaInferenceStack.of(context, Absolute.of(QName.create(IETF_NETCONF, "edit-config"), YangConstants.operationInputQName(IETF_NETCONF))) .toInference()); xmlParser.traverse(new DOMSource(doc.getDocumentElement())); - final NormalizedNode parsed = resultHolder.getResult().data(); + final var parsed = assertInstanceOf(ContainerNode.class, resultHolder.getResult().data()); - final DataContainerChild editCfg = ((ContainerNode) parsed).childByArg(getNodeId(parsed, "edit-content")); - final DOMSource anyXmlParsedDom = ((DOMSourceAnyxmlNode) ((ChoiceNode) editCfg) - .childByArg(getNodeId(parsed, "config"))).body(); + final var editCfg = assertInstanceOf(ChoiceNode.class, parsed.childByArg(getNodeId(parsed, "edit-content"))); + final var anyXmlParsedDom = assertInstanceOf(DOMSourceAnyxmlNode.class, + editCfg.childByArg(getNodeId(parsed, "config"))).body(); - assertNotNull(anyXmlParsedDom); final String anyXmlParsedDomString = toStringDom(anyXmlParsedDom); assertThat(anyXmlParsedDomString, containsString( @@ -84,18 +79,18 @@ public class AnyXmlWithParamsParsingTest { } private static String toStringDom(final DOMSource source) { + final var sw = new StringWriter(); try { - final StringWriter sw = new StringWriter(); - final TransformerFactory tf = TransformerFactory.newInstance(); - final Transformer transformer = tf.newTransformer(); + final var tf = TransformerFactory.newInstance(); + final var transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.transform(source, new StreamResult(sw)); - return sw.toString(); - } catch (final TransformerException ex) { - throw new RuntimeException("Error converting to String", ex); + } catch (TransformerException ex) { + throw new AssertionError("Error converting to String", ex); } + return sw.toString(); } } \ No newline at end of file diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataNormalizeContentTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataNormalizeContentTest.java index f5186acbbd..68a17ad93a 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataNormalizeContentTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataNormalizeContentTest.java @@ -11,9 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.util.stream.Stream; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeAll; +import java.util.List; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.MethodSource; @@ -33,7 +31,6 @@ import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolde import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; class AnydataNormalizeContentTest extends AbstractAnydataTest { - private static final QName BAR_QNAME = QName.create(FOO_QNAME, "bar"); // container level 2 private static final QName LIST_QNAME = QName.create(FOO_QNAME, "lst"); // list private static final QName LEAF_LIST_QNAME = QName.create(FOO_QNAME, "my-leafs"); // leaf-list of type string @@ -47,18 +44,8 @@ class AnydataNormalizeContentTest extends AbstractAnydataTest { private static final String ANYDATA_XML = "test"; private static final String ANYDATA_EMPTY_XML = ""; - @BeforeAll - static void beforeAll() throws Exception { - beforeClass(); // junit 4 - } - - @AfterAll - static void afterAll() { - afterClass(); // junit 4 - } - @ParameterizedTest(name = "Anydata normalize to {0}") - @MethodSource("normalizeArgs") + @MethodSource void anydataNormalize(final String testDesc, final String xml, final Inference inference, final NormalizedNode expectedData) throws Exception { @@ -76,42 +63,53 @@ class AnydataNormalizeContentTest extends AbstractAnydataTest { assertEquals(expectedData, normalizedAnydata.getData()); } - private static Stream normalizeArgs() { + private static List anydataNormalize() { // test case descriptor, xml, inference, expected normalized data - return Stream.of( - Arguments.of("container (root level)", - ANYDATA_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME), - Builders.containerBuilder().withNodeIdentifier(CONT_NODEID).withChild(LEAF_NODE).build()), - Arguments.of("container (level 2)", - ANYDATA_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME, BAR_QNAME), - Builders.containerBuilder().withNodeIdentifier(BAR_NODEID).withChild(LEAF_NODE).build()), - Arguments.of("empty container", - ANYDATA_EMPTY_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME, BAR_QNAME), - ImmutableNodes.containerNode(BAR_NODEID)), - Arguments.of("single list element", - ANYDATA_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, LIST_QNAME), - Builders.unkeyedListBuilder().withNodeIdentifier(LIST_NODEID).withChild( - Builders.unkeyedListEntryBuilder().withNodeIdentifier(LIST_NODEID) - .withChild(LEAF_NODE).build()).build()), - Arguments.of("single empty list element", - ANYDATA_EMPTY_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, LIST_QNAME), - Builders.unkeyedListBuilder().withNodeIdentifier(LIST_NODEID).withChild( - Builders.unkeyedListEntryBuilder().withNodeIdentifier(LIST_NODEID).build()).build()), - Arguments.of("single empty leaf-list element", - ANYDATA_EMPTY_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, LIST_QNAME, LEAF_LIST_QNAME), - Builders.leafSetBuilder().withNodeIdentifier(LEAF_LIST_NODEID).withChild( - Builders.leafSetEntryBuilder() - .withNodeIdentifier(new NodeWithValue<>(LEAF_LIST_QNAME, "")) - .withValue("").build()).build()), - Arguments.of("leaf of type empty", - ANYDATA_EMPTY_XML, - Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME, LEAF_EMPTY_QNAME), - ImmutableNodes.leafNode(LEAF_EMPTY_NODEID, Empty.value()))); + return List.of( + Arguments.of("container (root level)", + ANYDATA_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME), + Builders.containerBuilder().withNodeIdentifier(CONT_NODEID).withChild(LEAF_NODE).build()), + Arguments.of("container (level 2)", + ANYDATA_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME, BAR_QNAME), + Builders.containerBuilder().withNodeIdentifier(BAR_NODEID).withChild(LEAF_NODE).build()), + Arguments.of("empty container", + ANYDATA_EMPTY_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME, BAR_QNAME), + ImmutableNodes.containerNode(BAR_NODEID)), + Arguments.of("single list element", + ANYDATA_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, LIST_QNAME), + Builders.unkeyedListBuilder() + .withNodeIdentifier(LIST_NODEID) + .withChild(Builders.unkeyedListEntryBuilder() + .withNodeIdentifier(LIST_NODEID) + .withChild(LEAF_NODE) + .build()) + .build()), + Arguments.of("single empty list element", + ANYDATA_EMPTY_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, LIST_QNAME), + Builders.unkeyedListBuilder() + .withNodeIdentifier(LIST_NODEID) + .withChild(Builders.unkeyedListEntryBuilder() + .withNodeIdentifier(LIST_NODEID) + .build()) + .build()), + Arguments.of("single empty leaf-list element", + ANYDATA_EMPTY_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, LIST_QNAME, LEAF_LIST_QNAME), + Builders.leafSetBuilder() + .withNodeIdentifier(LEAF_LIST_NODEID) + .withChild(Builders.leafSetEntryBuilder() + .withNodeIdentifier(new NodeWithValue<>(LEAF_LIST_QNAME, "")) + .withValue("") + .build()) + .build()), + Arguments.of("leaf of type empty", + ANYDATA_EMPTY_XML, + Inference.ofDataTreePath(SCHEMA_CONTEXT, CONT_QNAME, LEAF_EMPTY_QNAME), + ImmutableNodes.leafNode(LEAF_EMPTY_NODEID, Empty.value()))); } } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataParseTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataParseTest.java index cfe83df7bb..cd28c6bbe0 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataParseTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataParseTest.java @@ -11,16 +11,16 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.MatcherAssert.assertThat; import javax.xml.stream.XMLStreamReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; -public class AnydataParseTest extends AbstractAnydataTest { +class AnydataParseTest extends AbstractAnydataTest { @Test - public void testAnydata() throws Exception { + void testAnydata() throws Exception { final XMLStreamReader reader = UntrustedXML.createXMLStreamReader( toInputStream("")); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataSerializeTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataSerializeTest.java index 58da0a6469..1eb8df9e73 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataSerializeTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataSerializeTest.java @@ -13,7 +13,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import java.io.StringWriter; -import java.util.Collection; import javax.xml.stream.XMLOutputFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; @@ -21,9 +20,8 @@ import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.IgnoreTextAndAttributeValuesDifferenceListener; import org.custommonkey.xmlunit.XMLAssert; import org.custommonkey.xmlunit.XMLUnit; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata; @@ -35,21 +33,10 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absol import org.opendaylight.yangtools.yang.model.spi.DefaultSchemaTreeInference; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; -@RunWith(Parameterized.class) -public class AnydataSerializeTest extends AbstractAnydataTest { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - - private final XMLOutputFactory factory; - - public AnydataSerializeTest(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @Test - public void testDOMAnydata() throws Exception { +class AnydataSerializeTest extends AbstractAnydataTest { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + public void testDOMAnydata(final String factoryMode, final XMLOutputFactory factory) throws Exception { final var writer = new StringWriter(); final var xmlStreamWriter = factory.createXMLStreamWriter(writer); @@ -66,8 +53,9 @@ public class AnydataSerializeTest extends AbstractAnydataTest { assertEquals("", serializedXml); } - @Test - public void testXmlParseAnydata() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + public void testXmlParseAnydata(final String factoryMode, final XMLOutputFactory factory) throws Exception { // deserialization final var reader = UntrustedXML.createXMLStreamReader( AnydataSerializeTest.class.getResourceAsStream("/test-anydata.xml")); @@ -103,8 +91,9 @@ public class AnydataSerializeTest extends AbstractAnydataTest { XMLAssert.assertXMLEqual(diff, true); } - @Test - public void testAnydataLoadFromXML() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + public void testAnydataLoadFromXML(final String factoryMode, final XMLOutputFactory factory) throws Exception { // Load XML file final var doc = loadDocument("/test-anydata.xml"); final var domSource = new DOMSource(doc.getDocumentElement()); @@ -132,8 +121,9 @@ public class AnydataSerializeTest extends AbstractAnydataTest { XMLAssert.assertXMLEqual(diff, true); } - @Test - public void testAnydataSerialization() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + public void testAnydataSerialization(final String factoryMode, final XMLOutputFactory factory) throws Exception { //Get XML Data. final var doc = loadDocument("/test-anydata.xml"); final var domSource = new DOMSource(doc.getDocumentElement()); @@ -165,8 +155,9 @@ public class AnydataSerializeTest extends AbstractAnydataTest { XMLAssert.assertXMLEqual(diff, true); } - @Test - public void testSiblingSerialize() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + public void testSiblingSerialize(final String factoryMode, final XMLOutputFactory factory) throws Exception { final var writer = new StringWriter(); final var xmlStreamWriter = factory.createXMLStreamWriter(writer); @@ -188,8 +179,9 @@ public class AnydataSerializeTest extends AbstractAnydataTest { + "abc", serializedXml); } - @Test - public void testNormalizedSerialize() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + public void testNormalizedSerialize(final String factoryMode, final XMLOutputFactory factory) throws Exception { final var writer = new StringWriter(); final var xmlStreamWriter = factory.createXMLStreamWriter(writer); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java index 67652c875f..1e379f389f 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java @@ -7,11 +7,13 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.hamcrest.CoreMatchers.startsWith; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertInstanceOf; +import static org.junit.jupiter.api.Assertions.assertThrows; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -19,7 +21,6 @@ import org.opendaylight.yangtools.yang.common.Revision; import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; -import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.LeafNode; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; @@ -27,7 +28,7 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class Bug5396Test { +class Bug5396Test { private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2016-03-22")); private final EffectiveModelContext schemaContext = YangParserTestUtils.parseYang(""" @@ -65,19 +66,16 @@ public class Bug5396Test { }"""); @Test - public void test() throws Exception { + void test() throws Exception { testInputXML("/bug5396/xml/foo.xml", "dp1o34"); testInputXML("/bug5396/xml/foo2.xml", "dp0s3f9"); testInputXML("/bug5396/xml/foo3.xml", "dp09P1p2s3"); testInputXML("/bug5396/xml/foo4.xml", "dp0p3p1"); testInputXML("/bug5396/xml/foo5.xml", "dp0s3"); - try { - testInputXML("/bug5396/xml/invalid-foo.xml", null); - fail("Test should fail due to invalid input string"); - } catch (IllegalArgumentException e) { - assertTrue(e.getMessage().startsWith("Invalid value \"dp09P1p2s1234\" for union type.")); - } + final var ex = assertThrows(IllegalArgumentException.class, + () -> testInputXML("/bug5396/xml/invalid-foo.xml", null)); + assertThat(ex.getMessage(), startsWith("Invalid value \"dp09P1p2s1234\" for union type.")); } private void testInputXML(final String xmlPath, final String expectedValue) throws Exception { @@ -89,12 +87,9 @@ public class Bug5396Test { Inference.ofDataTreePath(schemaContext, QName.create(FOO, "root"))); xmlParser.parse(reader); - final var data = result.getResult().data(); - assertTrue(data instanceof ContainerNode); - final ContainerNode rootContainer = (ContainerNode) data; - - DataContainerChild myLeaf = rootContainer.childByArg(new NodeIdentifier(QName.create(FOO, "my-leaf"))); - assertTrue(myLeaf instanceof LeafNode); + final var rootContainer = assertInstanceOf(ContainerNode.class, result.getResult().data()); + final var myLeaf = assertInstanceOf(LeafNode.class, + rootContainer.childByArg(new NodeIdentifier(QName.create(FOO, "my-leaf")))); assertEquals(expectedValue, myLeaf.body()); } } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java index bb81728ce5..8cac2e6fc0 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java @@ -7,16 +7,16 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.util.Base64; import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -33,13 +33,13 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; import org.xmlunit.builder.DiffBuilder; -public class Bug5446Test extends AbstractXmlTest { +class Bug5446Test extends AbstractXmlTest { private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2015-11-05")); private static final QName ROOT_QNAME = QName.create(FOO_MODULE, "root"); private static final QName IP_ADDRESS_QNAME = QName.create(FOO_MODULE, "ip-address"); @Test - public void test() throws Exception { + void test() throws Exception { final EffectiveModelContext schemaContext = YangParserTestUtils.parseYang(""" module foo { yang-version 1; @@ -95,7 +95,7 @@ public class Bug5446Test extends AbstractXmlTest { .ignoreComments() .checkForIdentical() .build(); - assertFalse(diff.toString(), diff.hasDifferences()); + assertFalse(diff.hasDifferences(), diff.toString()); } private static ContainerNode createDocNode() { diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8083Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8083Test.java index 77415388e5..46c65c570f 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8083Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8083Test.java @@ -7,10 +7,10 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import java.io.InputStream; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -20,13 +20,13 @@ import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolde import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class Bug8083Test { +class Bug8083Test { private static final QNameModule FOOBAR = QNameModule.create(XMLNamespace.of("foobar-ns")); private static final QNameModule BAZ = QNameModule.create(XMLNamespace.of("baz-ns")); private static final QNameModule ZAB = QNameModule.create(XMLNamespace.of("zab-ns")); @Test - public void testInstanceIdentifierPathWithEmptyListKey() throws Exception { + void testInstanceIdentifierPathWithEmptyListKey() throws Exception { final var schemaContext = YangParserTestUtils.parseYang(""" module baz { namespace baz-ns; @@ -63,7 +63,7 @@ public class Bug8083Test { } @Test - public void testInstanceIdentifierPathWithIdentityrefListKey() throws Exception { + void testInstanceIdentifierPathWithIdentityrefListKey() throws Exception { final var schemaContext = YangParserTestUtils.parseYang(""" module zab { namespace zab-ns; @@ -108,7 +108,7 @@ public class Bug8083Test { } @Test - public void testInstanceIdentifierPathWithInstanceIdentifierListKey() throws Exception { + void testInstanceIdentifierPathWithInstanceIdentifierListKey() throws Exception { final var schemaContext = YangParserTestUtils.parseYang(""" module foobar { namespace foobar-ns; diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8675Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8675Test.java index ebc6b57438..72638754f7 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8675Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8675Test.java @@ -7,11 +7,11 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -23,13 +23,13 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class Bug8675Test { +class Bug8675Test { private static final QNameModule FOO = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2017-06-13")); private static EffectiveModelContext schemaContext; - @BeforeClass - public static void setup() { + @BeforeAll + static void setup() { schemaContext = YangParserTestUtils.parseYang(""" module foo { namespace foo; @@ -75,13 +75,13 @@ public class Bug8675Test { }"""); } - @AfterClass - public static void cleanup() { + @AfterAll + static void cleanup() { schemaContext = null; } @Test - public void testParsingEmptyElements() throws Exception { + void testParsingEmptyElements() throws Exception { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream( "/bug8675/foo.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -96,7 +96,7 @@ public class Bug8675Test { } @Test - public void testParsingEmptyRootElement() throws Exception { + void testParsingEmptyRootElement() throws Exception { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/bug8675/foo-2.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); final var result = new NormalizationResultHolder(); @@ -110,7 +110,7 @@ public class Bug8675Test { } @Test - public void testListAsRootElement() throws Exception { + void testListAsRootElement() throws Exception { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/bug8675/foo-3.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); final var result = new NormalizationResultHolder(); @@ -124,7 +124,7 @@ public class Bug8675Test { } @Test - public void testAnyXmlAsRootElement() throws Exception { + void testAnyXmlAsRootElement() throws Exception { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/bug8675/foo-4.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); final var result = new NormalizationResultHolder(); @@ -138,7 +138,7 @@ public class Bug8675Test { } @Test - public void testLeafAsRootElement() throws Exception { + void testLeafAsRootElement() throws Exception { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/bug8675/foo-5.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); final var result = new NormalizationResultHolder(); @@ -152,7 +152,7 @@ public class Bug8675Test { } @Test - public void testLeafListAsRootElement() throws Exception { + void testLeafListAsRootElement() throws Exception { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/bug8675/foo-6.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); final var result = new NormalizationResultHolder(); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8745Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8745Test.java index 238e83c445..681cb65fb8 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8745Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8745Test.java @@ -7,17 +7,15 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertFalse; -import java.util.Collection; import javax.xml.stream.XMLOutputFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.provider.ArgumentsSource; +import org.junit.jupiter.params.provider.MethodSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; @@ -25,23 +23,11 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; import org.xmlunit.builder.DiffBuilder; -@RunWith(Parameterized.class) -public class Bug8745Test extends AbstractXmlTest { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - +class Bug8745Test extends AbstractXmlTest { private static EffectiveModelContext SCHEMA_CONTEXT; - private final XMLOutputFactory factory; - - public Bug8745Test(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { SCHEMA_CONTEXT = YangParserTestUtils.parseYang(""" module foo { namespace foo; @@ -64,13 +50,14 @@ public class Bug8745Test extends AbstractXmlTest { }"""); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { SCHEMA_CONTEXT = null; } - @Test - public void testParsingAttributes() throws Exception { + @MethodSource("data") + @ArgumentsSource(TestFactories.class) + void testParsingAttributes(final String factoryMode, final XMLOutputFactory factory) throws Exception { final var doc = loadDocument("/bug8745/foo.xml"); final var domSource = new DOMSource(doc.getDocumentElement()); final var domResult = new DOMResult(UntrustedXML.newDocumentBuilder().newDocument()); @@ -87,6 +74,6 @@ public class Bug8745Test extends AbstractXmlTest { .ignoreWhitespace() .checkForIdentical() .build(); - assertFalse(diff.toString(), diff.hasDifferences()); + assertFalse(diff.hasDifferences(), diff.toString()); } } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8803Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8803Test.java index 12984a1eb8..e58380e96d 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8803Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8803Test.java @@ -7,24 +7,17 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.io.InputStream; import java.io.StringWriter; -import java.util.Collection; import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamReader; -import javax.xml.stream.XMLStreamWriter; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; -import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; @@ -32,23 +25,11 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -@RunWith(Parameterized.class) -public class Bug8803Test { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - +class Bug8803Test { private static EffectiveModelContext SCHEMA_CONTEXT; - private final XMLOutputFactory factory; - - public Bug8803Test(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { SCHEMA_CONTEXT = YangParserTestUtils.parseYang(""" module bar { namespace bar-ns; @@ -92,35 +73,35 @@ public class Bug8803Test { }"""); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { SCHEMA_CONTEXT = null; } - @Test - public void test() throws Exception { - final InputStream resourceAsStream = Bug8803Test.class.getResourceAsStream("/bug8803/foo.xml"); + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void test(final String factoryMode, final XMLOutputFactory factory) throws Exception { + final var resourceAsStream = Bug8803Test.class.getResourceAsStream("/bug8803/foo.xml"); // deserialization - final XMLStreamReader reader = UntrustedXML.createXMLStreamReader(resourceAsStream); + final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); - final NormalizationResultHolder result = new NormalizationResultHolder(); - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); + final var result = new NormalizationResultHolder(); + final var streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, Inference.ofDataTreePath(SCHEMA_CONTEXT, QName.create("foo-ns", "top-cont"))); xmlParser.parse(reader); - final NormalizedNode transformedInput = result.getResult().data(); + final var transformedInput = result.getResult().data(); assertNotNull(transformedInput); // serialization - final StringWriter writer = new StringWriter(); - final XMLStreamWriter xmlStreamWriter = factory.createXMLStreamWriter(writer); + final var writer = new StringWriter(); + final var xmlStreamWriter = factory.createXMLStreamWriter(writer); - final NormalizedNodeStreamWriter xmlNormalizedNodeStreamWriter = XMLStreamNormalizedNodeStreamWriter.create( - xmlStreamWriter, SCHEMA_CONTEXT); + final var xmlNormalizedNodeStreamWriter = XMLStreamNormalizedNodeStreamWriter.create(xmlStreamWriter, + SCHEMA_CONTEXT); - final NormalizedNodeWriter normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter( - xmlNormalizedNodeStreamWriter); + final var normalizedNodeWriter = NormalizedNodeWriter.forStreamWriter(xmlNormalizedNodeStreamWriter); normalizedNodeWriter.write(transformedInput); normalizedNodeWriter.flush(); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java index ec09d8a901..4aaee706d3 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java @@ -7,14 +7,14 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayInputStream; import java.nio.charset.StandardCharsets; import java.util.Collection; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -31,13 +31,13 @@ import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolde import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class Bug890Test { +class Bug890Test { private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo"), Revision.of("2018-07-10")); private static final QName OUTGOING_LABELS_QNAME = QName.create(FOO_MODULE, "outgoing-labels"); private static final QName INDEX_QNAME = QName.create(FOO_MODULE, "index"); @Test - public void testinputXml() throws Exception { + void testinputXml() throws Exception { final var schemaContext = YangParserTestUtils.parseYangResourceDirectory("/bug890"); final var reader = UntrustedXML.createXMLStreamReader(new ByteArrayInputStream(""" diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceXMLStreamReaderTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceXMLStreamReaderTest.java index 81890c12d7..e2566e90dc 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceXMLStreamReaderTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceXMLStreamReaderTest.java @@ -7,18 +7,16 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.util.Collection; import javax.xml.stream.XMLOutputFactory; import javax.xml.transform.dom.DOMResult; import javax.xml.transform.dom.DOMSource; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; @@ -28,23 +26,11 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -@RunWith(Parameterized.class) -public class DOMSourceXMLStreamReaderTest extends AbstractXmlTest { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - +class DOMSourceXMLStreamReaderTest extends AbstractXmlTest { private static EffectiveModelContext SCHEMA_CONTEXT; - private final XMLOutputFactory factory; - - public DOMSourceXMLStreamReaderTest(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { SCHEMA_CONTEXT = YangParserTestUtils.parseYang(""" module bar { namespace bar-ns; @@ -138,13 +124,14 @@ public class DOMSourceXMLStreamReaderTest extends AbstractXmlTest { }"""); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { SCHEMA_CONTEXT = null; } - @Test - public void test() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void test(final String factoryMode, final XMLOutputFactory factory) throws Exception { // deserialization final var doc = loadDocument("/dom-reader-test/foo.xml"); final var inputXml = new DOMSource(doc.getDocumentElement()); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NamespacePrefixesTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NamespacePrefixesTest.java index 69980a97ec..2c4b0b2975 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NamespacePrefixesTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NamespacePrefixesTest.java @@ -33,7 +33,7 @@ class NamespacePrefixesTest { allGenerated.add(encoded); } - assertEquals(allGenerated.size(), MAX_COUNTER); + assertEquals(MAX_COUNTER, allGenerated.size()); assertEquals("dPT", allGenerated.get(MAX_COUNTER - 1)); assertEquals("a", allGenerated.get(0)); assertEquals(allGenerated.size(), new HashSet<>(allGenerated).size()); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java index 2f1d9fdbdd..5eea63ec7b 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java @@ -7,10 +7,9 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; -import java.util.Collection; import java.util.List; import javax.xml.stream.XMLOutputFactory; import javax.xml.transform.dom.DOMResult; @@ -18,9 +17,9 @@ import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.ElementNameAndTextQualifier; import org.custommonkey.xmlunit.IgnoreTextAndAttributeValuesDifferenceListener; import org.custommonkey.xmlunit.XMLUnit; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -36,27 +35,10 @@ import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolder; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -@RunWith(Parameterized.class) public class NormalizedNodeXmlTranslationTest extends AbstractXmlTest { - private final EffectiveModelContext schema; - - @Parameterized.Parameters() - public static Collection data() { - return List.of(new Object[][] { - { "/schema/augment_choice_hell.yang", "/schema/augment_choice_hell_ok.xml", augmentChoiceHell() }, - { "/schema/augment_choice_hell.yang", "/schema/augment_choice_hell_ok2.xml", null }, - { "/schema/augment_choice_hell.yang", "/schema/augment_choice_hell_ok3.xml", augmentChoiceHell2() }, - { "/schema/test.yang", "/schema/simple.xml", null }, - { "/schema/test.yang", "/schema/simple2.xml", null }, - // TODO check attributes - { "/schema/test.yang", "/schema/simple_xml_with_attributes.xml", withAttributes() } - }); - } - private static final QNameModule MODULE = QNameModule.create( XMLNamespace.of("urn:opendaylight:params:xml:ns:yang:controller:test"), Revision.of("2014-03-13")); @@ -162,27 +144,23 @@ public class NormalizedNodeXmlTranslationTest extends AbstractXmlTest { return new NodeIdentifier(QName.create(MODULE, localName)); } - private final ContainerNode expectedNode; - private final String xmlPath; - - public NormalizedNodeXmlTranslationTest(final String yangPath, final String xmlPath, - final ContainerNode expectedNode) { - schema = YangParserTestUtils.parseYangResource(yangPath); - this.xmlPath = xmlPath; - this.expectedNode = expectedNode; + @ParameterizedTest + @MethodSource("data") + void testTranslationRepairing(final String yangPath, final String xmlPath, final ContainerNode expectedNode) + throws Exception { + testTranslation(TestFactories.REPAIRING_OUTPUT_FACTORY, yangPath, xmlPath, expectedNode); } - @Test - public void testTranslationRepairing() throws Exception { - testTranslation(TestFactories.REPAIRING_OUTPUT_FACTORY); + @ParameterizedTest + @MethodSource("data") + void testTranslation(final String yangPath, final String xmlPath, final ContainerNode expectedNode) + throws Exception { + testTranslation(TestFactories.DEFAULT_OUTPUT_FACTORY, yangPath, xmlPath, expectedNode); } - @Test - public void testTranslation() throws Exception { - testTranslation(TestFactories.DEFAULT_OUTPUT_FACTORY); - } - - private void testTranslation(final XMLOutputFactory factory) throws Exception { + private static void testTranslation(final XMLOutputFactory factory, final String yangPath, final String xmlPath, + final ContainerNode expectedNode) throws Exception { + final var schema = YangParserTestUtils.parseYangResource(yangPath); final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream(xmlPath); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -229,4 +207,16 @@ public class NormalizedNodeXmlTranslationTest extends AbstractXmlTest { // XMLAssert.assertXMLEqual(diff, true); } + + static List data() { + return List.of( + Arguments.of("/schema/augment_choice_hell.yang", "/schema/augment_choice_hell_ok.xml", augmentChoiceHell()), + Arguments.of("/schema/augment_choice_hell.yang", "/schema/augment_choice_hell_ok2.xml", null), + Arguments.of("/schema/augment_choice_hell.yang", "/schema/augment_choice_hell_ok3.xml", + augmentChoiceHell2()), + Arguments.of("/schema/test.yang", "/schema/simple.xml", null), + Arguments.of("/schema/test.yang", "/schema/simple2.xml", null), + // TODO check attributes + Arguments.of("/schema/test.yang", "/schema/simple_xml_with_attributes.xml", withAttributes())); + } } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java index 60d07df58d..0d5a37006d 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java @@ -7,22 +7,18 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import java.io.IOException; -import java.util.Collection; import java.util.Map; import javax.xml.stream.XMLOutputFactory; -import javax.xml.stream.XMLStreamException; import javax.xml.transform.dom.DOMResult; import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.IgnoreTextAndAttributeValuesDifferenceListener; import org.custommonkey.xmlunit.XMLAssert; import org.custommonkey.xmlunit.XMLUnit; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -36,15 +32,8 @@ import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -import org.xml.sax.SAXException; -@RunWith(Parameterized.class) public class NormalizedNodesToXmlTest extends AbstractXmlTest { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - private QNameModule bazModule; private QName outerContainer; @@ -72,24 +61,18 @@ public class NormalizedNodesToXmlTest extends AbstractXmlTest { private static EffectiveModelContext SCHEMA_CONTEXT; - private final XMLOutputFactory factory; - - public NormalizedNodesToXmlTest(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { SCHEMA_CONTEXT = YangParserTestUtils.parseYangResource("/baz.yang"); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { SCHEMA_CONTEXT = null; } - @Before - public void setup() { + @BeforeEach + void setup() { bazModule = QNameModule.create(XMLNamespace.of("baz-namespace")); outerContainer = QName.create(bazModule, "outer-container"); @@ -116,8 +99,10 @@ public class NormalizedNodesToXmlTest extends AbstractXmlTest { myLeafInList3 = QName.create(bazModule, "my-leaf-in-list-3"); } - @Test - public void testNormalizedNodeToXmlSerialization() throws XMLStreamException, IOException, SAXException { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void testNormalizedNodeToXmlSerialization(final String factoryMode, final XMLOutputFactory factory) + throws Exception { final var doc = loadDocument("/baz.xml"); final var domResult = new DOMResult(UntrustedXML.newDocumentBuilder().newDocument()); final var xmlStreamWriter = factory.createXMLStreamWriter(domResult); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaOrderedNormalizedNodeWriterTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaOrderedNormalizedNodeWriterTest.java index 5698a2a67e..010eb224d6 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaOrderedNormalizedNodeWriterTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaOrderedNormalizedNodeWriterTest.java @@ -7,17 +7,15 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; import java.io.StringWriter; import java.util.ArrayList; -import java.util.Collection; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamWriter; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode; @@ -28,27 +26,16 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; import org.xmlunit.builder.DiffBuilder; -@RunWith(Parameterized.class) -public class SchemaOrderedNormalizedNodeWriterTest { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - +class SchemaOrderedNormalizedNodeWriterTest { private static final String FOO_NAMESPACE = "foo"; private static final String RULE_NODE = "rule"; private static final String NAME_NODE = "name"; private static final String POLICY_NODE = "policy"; private static final String ORDER_NAMESPACE = "order"; - private final XMLOutputFactory factory; - - public SchemaOrderedNormalizedNodeWriterTest(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @Test - public void testWrite() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void testWrite(final String factoryMode, final XMLOutputFactory factory) throws Exception { final var stringWriter = new StringWriter(); final var xmlStreamWriter = factory.createXMLStreamWriter(stringWriter); @@ -147,11 +134,12 @@ public class SchemaOrderedNormalizedNodeWriterTest { .ignoreWhitespace() .checkForIdentical() .build(); - assertFalse(diff.toString(), diff.hasDifferences()); + assertFalse(diff.hasDifferences(), diff.toString()); } - @Test - public void testWriteOrder() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void testWriteOrder(final String factoryMode, final XMLOutputFactory factory) throws Exception { final StringWriter stringWriter = new StringWriter(); final XMLStreamWriter xmlStreamWriter = factory.createXMLStreamWriter(stringWriter); EffectiveModelContext schemaContext = YangParserTestUtils.parseYang(""" @@ -174,19 +162,14 @@ public class SchemaOrderedNormalizedNodeWriterTest { var writer = XMLStreamNormalizedNodeStreamWriter.create(xmlStreamWriter, schemaContext); try (var nnw = new SchemaOrderedNormalizedNodeWriter(writer, schemaContext)) { - - final var cont = Builders.containerBuilder() + nnw.write(Builders.containerBuilder() + .withNodeIdentifier(getNodeIdentifier(ORDER_NAMESPACE, "root")) + .withChild(Builders.containerBuilder() .withNodeIdentifier(getNodeIdentifier(ORDER_NAMESPACE, "cont")) .withChild(ImmutableNodes.leafNode(createQName(ORDER_NAMESPACE, "content"), "content1")) - .build(); - - final var root = Builders.containerBuilder() - .withNodeIdentifier(getNodeIdentifier(ORDER_NAMESPACE, "root")) - .withChild(cont) - .withChild(ImmutableNodes.leafNode(createQName(ORDER_NAMESPACE, "id"), "id1")) - .build(); - - nnw.write(root); + .build()) + .withChild(ImmutableNodes.leafNode(createQName(ORDER_NAMESPACE, "id"), "id1")) + .build()); } assertEquals(""" diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java index b0cc57418e..7eadb18457 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java @@ -7,7 +7,6 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import java.util.Collection; import java.util.Map; import javax.xml.stream.XMLOutputFactory; import javax.xml.transform.dom.DOMResult; @@ -15,10 +14,9 @@ import org.custommonkey.xmlunit.Diff; import org.custommonkey.xmlunit.IgnoreTextAndAttributeValuesDifferenceListener; import org.custommonkey.xmlunit.XMLAssert; import org.custommonkey.xmlunit.XMLUnit; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -27,20 +25,12 @@ import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes; -@RunWith(Parameterized.class) public class SchemalessXMLStreamNormalizedNodeStreamWriterTest extends AbstractXmlTest { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - - private final XMLOutputFactory factory; - private QNameModule foobarModule; private QName outerContainer; @@ -73,12 +63,8 @@ public class SchemalessXMLStreamNormalizedNodeStreamWriterTest extends AbstractX private QName mySecondKeyLeaf; private QName myLeafInList3; - public SchemalessXMLStreamNormalizedNodeStreamWriterTest(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @Before - public void setup() { + @BeforeEach + void setup() { foobarModule = QNameModule.create(XMLNamespace.of("foobar-namespace"), Revision.of("2016-09-19")); outerContainer = QName.create(foobarModule, "outer-container"); @@ -112,8 +98,9 @@ public class SchemalessXMLStreamNormalizedNodeStreamWriterTest extends AbstractX myLeafInList3 = QName.create(foobarModule, "my-leaf-in-list-3"); } - @Test - public void testWrite() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void testWrite(final String factoryMode, final XMLOutputFactory factory) throws Exception { final var doc = loadDocument("/foobar.xml"); final var domResult = new DOMResult(UntrustedXML.newDocumentBuilder().newDocument()); final var xmlStreamWriter = factory.createXMLStreamWriter(domResult); @@ -134,7 +121,7 @@ public class SchemalessXMLStreamNormalizedNodeStreamWriterTest extends AbstractX XMLAssert.assertXMLEqual(diff, true); } - private NormalizedNode buildOuterContainerNode() { + private ContainerNode buildOuterContainerNode() { return Builders.containerBuilder() .withNodeIdentifier(new NodeIdentifier(outerContainer)) .withChild(Builders.containerBuilder() diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/StrictParsingModeTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/StrictParsingModeTest.java index 2c3856ad5f..4713eb9352 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/StrictParsingModeTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/StrictParsingModeTest.java @@ -9,13 +9,13 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import javax.xml.stream.XMLStreamException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; @@ -24,11 +24,11 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class StrictParsingModeTest { +class StrictParsingModeTest { private static EffectiveModelContext schemaContext; - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { schemaContext = YangParserTestUtils.parseYang(""" module foo { namespace foo; @@ -40,14 +40,14 @@ public class StrictParsingModeTest { }"""); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { schemaContext = null; } - @Test // unknown child nodes in the top-level-container node will be skipped when the strictParsing is set to false - public void testLenientParsing() throws Exception { + @Test + void testLenientParsing() throws Exception { final var resourceAsStream = StrictParsingModeTest.class.getResourceAsStream( "/strict-parsing-mode-test/foo.xml"); @@ -64,10 +64,10 @@ public class StrictParsingModeTest { assertNotNull(transformedInput); } - @Test // should fail because strictParsing is switched on and the top-level-container node contains child nodes // which are not defined in the provided YANG model - public void testStrictParsing() throws Exception { + @Test + void testStrictParsing() throws Exception { final var resourceAsStream = StrictParsingModeTest.class.getResourceAsStream( "/strict-parsing-mode-test/foo.xml"); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/TestFactories.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/TestFactories.java index 35f1354cb7..450a79564f 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/TestFactories.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/TestFactories.java @@ -7,11 +7,13 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import java.util.Collection; -import java.util.List; +import java.util.stream.Stream; import javax.xml.stream.XMLOutputFactory; +import org.junit.jupiter.api.extension.ExtensionContext; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.ArgumentsProvider; -final class TestFactories { +final class TestFactories implements ArgumentsProvider { /** * Non-repairing XMLOutputFactory. */ @@ -28,14 +30,10 @@ final class TestFactories { REPAIRING_OUTPUT_FACTORY = f; } - private TestFactories() { - // Hidden on purpose - } - - static Collection junitParameters() { - return List.of(new Object[][] { - { "default", DEFAULT_OUTPUT_FACTORY }, - { "repairing", REPAIRING_OUTPUT_FACTORY }, - }); + @Override + public Stream provideArguments(final ExtensionContext context) throws Exception { + return Stream.of( + Arguments.of("default", DEFAULT_OUTPUT_FACTORY), + Arguments.of("repairing", REPAIRING_OUTPUT_FACTORY)); } } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java index c01e948b5f..3c1f995297 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java @@ -10,10 +10,10 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertSame; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertSame; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -21,10 +21,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; import org.opendaylight.yangtools.yang.common.Revision; @@ -41,7 +41,7 @@ import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition; import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class XmlStreamUtilsTest { +class XmlStreamUtilsTest { @FunctionalInterface interface XMLStreamWriterConsumer { void accept(XMLStreamWriter writer) throws XMLStreamException; @@ -51,8 +51,8 @@ public class XmlStreamUtilsTest { private static Module leafRefModule; private static PreferredPrefixes pref; - @BeforeClass - public static void initialize() { + @BeforeAll + static void initialize() { modelContext = YangParserTestUtils.parseYangResource("/leafref-test.yang"); assertNotNull(modelContext); assertEquals(1, modelContext.getModules().size()); @@ -61,14 +61,14 @@ public class XmlStreamUtilsTest { pref = new PreferredPrefixes.Shared(modelContext); } - @AfterClass - public static void cleanup() { + @AfterAll + static void cleanup() { leafRefModule = null; modelContext = null; } @Test - public void testWriteIdentityRef() throws Exception { + void testWriteIdentityRef() throws Exception { final QNameModule parent = QNameModule.create(XMLNamespace.of("parent:uri"), Revision.of("2000-01-01")); String xmlAsString = createXml(writer -> { @@ -92,7 +92,7 @@ public class XmlStreamUtilsTest { final Pattern prefixedIdentityPattern = Pattern.compile(".*\"different:namespace\">(.*):identity.*"); final Matcher matcher = prefixedIdentityPattern.matcher(xmlAsString); - assertTrue("Xml: " + xmlAsString + " should match: " + prefixedIdentityPattern, matcher.matches()); + assertTrue(matcher.matches(), "Xml: " + xmlAsString + " should match: " + prefixedIdentityPattern); } private static String createXml(final XMLStreamWriterConsumer consumer) throws XMLStreamException, IOException { @@ -111,17 +111,17 @@ public class XmlStreamUtilsTest { * One leafref reference to other leafref via relative references. */ @Test - public void testLeafRefRelativeChaining() { + void testLeafRefRelativeChaining() { getTargetNodeForLeafRef(StringTypeDefinition.class, "cont3", "leafname3"); } @Test - public void testLeafRefRelative() { + void testLeafRefRelative() { getTargetNodeForLeafRef(StringTypeDefinition.class, "pointToStringLeaf"); } @Test - public void testLeafRefAbsoluteWithSameTarget() { + void testLeafRefAbsoluteWithSameTarget() { getTargetNodeForLeafRef(InstanceIdentifierTypeDefinition.class, "absname"); } @@ -129,14 +129,14 @@ public class XmlStreamUtilsTest { * Tests relative path with double point inside path (e. g. "../../lf:interface/../lf:cont2/lf:stringleaf") */ // ignored because this isn't implemented - @Ignore + @Disabled @Test - public void testLeafRefWithDoublePointInPath() { + void testLeafRefWithDoublePointInPath() { getTargetNodeForLeafRef(StringTypeDefinition.class, "lf-with-double-point-inside"); } @Test - public void testLeafRefRelativeAndAbsoluteWithSameTarget() { + void testLeafRefRelativeAndAbsoluteWithSameTarget() { assertSame(getTargetNodeForLeafRef(InstanceIdentifierTypeDefinition.class, "absname"), getTargetNodeForLeafRef(InstanceIdentifierTypeDefinition.class, "relname")); } diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java index be2de3f964..4af6163e29 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.data.codec.xml; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertThrows; import java.io.IOException; import java.net.URISyntaxException; @@ -19,9 +19,9 @@ import java.util.HashMap; import java.util.Map; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.XMLStreamException; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; @@ -43,7 +43,7 @@ import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; import org.xml.sax.SAXException; -public class XmlToNormalizedNodesTest { +class XmlToNormalizedNodesTest { private static final QNameModule FOO_MODULE = QNameModule.create(XMLNamespace.of("foo-namespace")); private static final QName PARENT_CONTAINER = QName.create(FOO_MODULE, "parent-container"); @@ -76,22 +76,22 @@ public class XmlToNormalizedNodesTest { private static Inference outerContainerSchema; private static Inference parentContainerSchema; - @BeforeClass - public static void setup() { + @BeforeAll + static void setup() { schemaContext = YangParserTestUtils.parseYangResourceDirectory("/"); parentContainerSchema = Inference.ofDataTreePath(schemaContext, PARENT_CONTAINER); outerContainerSchema = Inference.ofDataTreePath(schemaContext, OUTER_CONTAINER); } - @AfterClass - public static void cleanup() { + @AfterAll + static void cleanup() { schemaContext = null; parentContainerSchema = null; outerContainerSchema = null; } @Test - public void testComplexXmlParsing() throws IOException, SAXException, URISyntaxException, XMLStreamException, + void testComplexXmlParsing() throws IOException, SAXException, URISyntaxException, XMLStreamException, ParserConfigurationException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/baz.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -112,7 +112,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void testSimpleXmlParsing() throws IOException, URISyntaxException, XMLStreamException, + void testSimpleXmlParsing() throws IOException, URISyntaxException, XMLStreamException, ParserConfigurationException, SAXException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/foo.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -126,7 +126,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnDuplicateLeaf() throws XMLStreamException, IOException, + void shouldFailOnDuplicateLeaf() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-foo.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -140,7 +140,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnDuplicateAnyXml() throws XMLStreamException, IOException, + void shouldFailOnDuplicateAnyXml() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-foo-2.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -154,7 +154,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnDuplicateContainer() throws XMLStreamException, IOException, + void shouldFailOnDuplicateContainer() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-foo-3.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -168,7 +168,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnUnterminatedLeafElement() throws XMLStreamException, IOException, + void shouldFailOnUnterminatedLeafElement() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-baz.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -180,7 +180,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnUnterminatedLeafElement2() throws XMLStreamException, IOException, + void shouldFailOnUnterminatedLeafElement2() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-baz-2.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -192,7 +192,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnUnterminatedContainerElement() throws XMLStreamException, IOException, + void shouldFailOnUnterminatedContainerElement() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-baz-4.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); @@ -204,7 +204,7 @@ public class XmlToNormalizedNodesTest { } @Test - public void shouldFailOnUnknownChildNode() throws XMLStreamException, IOException, + void shouldFailOnUnknownChildNode() throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException { final var resourceAsStream = XmlToNormalizedNodesTest.class.getResourceAsStream("/invalid-baz-3.xml"); final var reader = UntrustedXML.createXMLStreamReader(resourceAsStream); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1107Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1107Test.java index 711778f9a0..b97fcd6508 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1107Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1107Test.java @@ -7,10 +7,10 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.StringReader; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.opendaylight.yangtools.util.xml.UntrustedXML; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; @@ -22,14 +22,14 @@ import org.opendaylight.yangtools.yang.data.impl.schema.NormalizationResultHolde import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack.Inference; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; -public class YT1107Test { +class YT1107Test { private static final QName PARENT = QName.create("yt1107", "parent"); private static final QName ADMIN = QName.create(PARENT, "admin"); private static final QName NAME = QName.create(PARENT, "name"); private static final QName USER = QName.create(PARENT, "user"); @Test - public void testInterleavingLists() throws Exception { + void testInterleavingLists() throws Exception { final var schemaContext = YangParserTestUtils.parseYang(""" module yt1107 { namespace "yt1107"; diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java index ac1d441c8d..631cd03f24 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java @@ -7,16 +7,14 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertFalse; import java.io.StringWriter; -import java.util.Collection; import javax.xml.stream.XMLOutputFactory; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ArgumentsSource; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode; @@ -26,13 +24,7 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; import org.xmlunit.builder.DiffBuilder; -@RunWith(Parameterized.class) -public class YT1108Test { - @Parameterized.Parameters(name = "{0}") - public static Collection data() { - return TestFactories.junitParameters(); - } - +class YT1108Test { private static final QName IDENT_ONE = QName.create("foo-namespace", "ident-one"); private static final QName IDENTITYREF_LEAF = QName.create("foo-namespace", "identityref-leaf"); private static final QName LEAF_CONTAINER = QName.create("foo-namespace", "leaf-container"); @@ -40,14 +32,8 @@ public class YT1108Test { private static EffectiveModelContext MODEL_CONTEXT; - private final XMLOutputFactory factory; - - public YT1108Test(final String factoryMode, final XMLOutputFactory factory) { - this.factory = factory; - } - - @BeforeClass - public static void beforeClass() { + @BeforeAll + static void beforeClass() { MODEL_CONTEXT = YangParserTestUtils.parseYang(""" module foo { namespace "foo-namespace"; @@ -81,15 +67,17 @@ public class YT1108Test { }"""); } - @AfterClass - public static void afterClass() { + @AfterAll + static void afterClass() { MODEL_CONTEXT = null; } - @Test - public void testLeafOfIdentityRefTypeNNToXmlSerialization() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void testLeafOfIdentityRefTypeNNToXmlSerialization(final String factoryMode, final XMLOutputFactory factory) + throws Exception { final var diff = DiffBuilder - .compare(serializeToXml(Builders.containerBuilder() + .compare(serializeToXml(factory, Builders.containerBuilder() .withNodeIdentifier(NodeIdentifier.create(LEAF_CONTAINER)) .withChild(Builders.leafBuilder() .withNodeIdentifier(NodeIdentifier.create(IDENTITYREF_LEAF)) @@ -105,13 +93,15 @@ public class YT1108Test { .ignoreWhitespace() .checkForIdentical() .build(); - assertFalse(diff.toString(), diff.hasDifferences()); + assertFalse(diff.hasDifferences(), diff.toString()); } - @Test - public void testLeafOfUnionWithIdentityRefNNToXmlSerialization() throws Exception { + @ParameterizedTest(name = "{0}") + @ArgumentsSource(TestFactories.class) + void testLeafOfUnionWithIdentityRefNNToXmlSerialization(final String factoryMode, final XMLOutputFactory factory) + throws Exception { final var diff = DiffBuilder - .compare(serializeToXml(Builders.containerBuilder() + .compare(serializeToXml(factory, Builders.containerBuilder() .withNodeIdentifier(NodeIdentifier.create(LEAF_CONTAINER)) .withChild(Builders.leafBuilder() .withNodeIdentifier(NodeIdentifier.create(UNION_IDENTITYREF_LEAF)) @@ -127,10 +117,11 @@ public class YT1108Test { .ignoreWhitespace() .checkForIdentical() .build(); - assertFalse(diff.toString(), diff.hasDifferences()); + assertFalse(diff.hasDifferences(), diff.toString()); } - private String serializeToXml(final ContainerNode normalizedNode) throws Exception { + private static String serializeToXml(final XMLOutputFactory factory, final ContainerNode normalizedNode) + throws Exception { final var sw = new StringWriter(); try (var nnsw = XMLStreamNormalizedNodeStreamWriter.create(factory.createXMLStreamWriter(sw), MODEL_CONTEXT)) { NormalizedNodeWriter.forStreamWriter(nnsw).write(normalizedNode); diff --git a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1473Test.java b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1473Test.java index 44944e85e7..cc897b8800 100644 --- a/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1473Test.java +++ b/codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1473Test.java @@ -7,7 +7,7 @@ */ package org.opendaylight.yangtools.yang.data.codec.xml; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertInstanceOf; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; -- 2.36.6