Convert yang-data-codec-xml to JUnit5 84/106884/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 18 Oct 2023 15:26:18 +0000 (17:26 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 18 Oct 2023 15:26:18 +0000 (17:26 +0200)
This is a mostly automated conversion, but the parameterized tests
require some intervention.

JIRA: YANGTOOLS-1521
Change-Id: I8599cc0dc3b98a8206e09312fea828826c58072a
Signed-off-by: matus.matok <matus.matok@pantheon.tech>
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
26 files changed:
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractAnydataTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AbstractXmlTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnyXmlWithParamsParsingTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataNormalizeContentTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataParseTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/AnydataSerializeTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5396Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug5446Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8083Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8675Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8745Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug8803Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/Bug890Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/DOMSourceXMLStreamReaderTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NamespacePrefixesTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodeXmlTranslationTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/NormalizedNodesToXmlTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemaOrderedNormalizedNodeWriterTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/SchemalessXMLStreamNormalizedNodeStreamWriterTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/StrictParsingModeTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/TestFactories.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlStreamUtilsTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/XmlToNormalizedNodesTest.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1107Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1108Test.java
codec/yang-data-codec-xml/src/test/java/org/opendaylight/yangtools/yang/data/codec/xml/YT1473Test.java

index 3ea2029b7eda9dc99089464a4e94f51e3c116507..7c0480c033f80d736ba200cfaf669d877be8e4f4 100644 (file)
@@ -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;
     }
 
index 8c97f54452440ac45ffe7770c5b3a98dcb19f8b8..72876c885ab11efd09e8248161d0fe2317f7a32d 100644 (file)
@@ -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)));
     }
index c820db0d3c755175cefaca3f5f147df2465356f1..4690ab47bc8741ecdc6f2372176793c458644531 100644 (file)
@@ -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
index f5186acbbddbe8eac72362e0205b2bc488b13a67..68a17ad93abf29bcb91e31c62c92e9ef518308da 100644 (file)
@@ -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 = "<foo xmlns=\"test-anydata\"><cont-leaf>test</cont-leaf></foo>";
     private static final String ANYDATA_EMPTY_XML = "<foo xmlns=\"test-anydata\" />";
 
-    @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<Arguments> normalizeArgs() {
+    private static List<Arguments> 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())));
     }
 }
index cfe83df7bbaa38f6bd66447e44c79fe8a00e4b7e..cd28c6bbe018bfa7b9a42de2c8574c84985ddbfb 100644 (file)
@@ -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("<foo xmlns=\"test-anydata\"><bar/></foo>"));
 
index 58da0a64692f15c3f61f37891c8c07e6d85f3f72..1eb8df9e73c88752ee71a11073a271b8c3e4d0b7 100644 (file)
@@ -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<Object[]> 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("<foo xmlns=\"test-anydata\"><bar xmlns=\"test-anydata\"></bar></foo>", 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 {
                 + "<cont-leaf>abc</cont-leaf></cont>", 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);
 
index 67652c875f12fc113c8ae78e1c0cd87720a07642..1e379f389f5ab1da83ec850c626e3020efa6f16e 100644 (file)
@@ -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());
     }
 }
index bb81728ce537c749728fc6cc2917f6f9d9204ab9..8cac2e6fc09a6af0c3ff8c17850ea6079003e526 100644 (file)
@@ -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() {
index 77415388e516b3c2e979a72e3ea123c0888366af..46c65c570f31913c3adad7ab3ee2d8e29566e85a 100644 (file)
@@ -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;
index ebc6b574385da2b0ea6cdc5f1f16f0e92a4e07c3..72638754f79f31c81466ec503331d4d05378740b 100644 (file)
@@ -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();
index 238e83c445e3b00a6b6fc9ac3385667c1b62ce5c..681cb65fb81f327a773ab89254c3ac398ee444a5 100644 (file)
@@ -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<Object[]> 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());
     }
 }
index 12984a1eb87eed8e470ab075ef8d9443e96d70e8..e58380e96d71963e25375ef4309e6c6decb282db 100644 (file)
@@ -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<Object[]> 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();
 
index ec09d8a90121a771672bf0eee1368833d1d38582..4aaee706d339e3d8f9de07c9553d631f244f0d5e 100644 (file)
@@ -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("""
             <root xmlns="foo">
index 81890c12d77374fcc84b5f5d5fab2e44501f212d..e2566e90dce840155f9a0697c1494269b9df53a2 100644 (file)
@@ -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<Object[]> 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());
index 69980a97ec3a204ae9151abf0fdda973b24c1c4f..2c4b0b2975d5e02fc64162d58f6bb3fa05423b22 100644 (file)
@@ -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());
index 2f1d9fdbddb6c50e4a0a8266e6d9a27169a0d263..5eea63ec7bc845be106a80aa00d4fbb83c523be0 100644 (file)
@@ -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<Object[]> 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<Arguments> 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()));
+    }
 }
index 60d07df58d8572f5290c70ba5fc38cf9e6a3779c..0d5a37006d31d80158947be17d0e4f551fc99356 100644 (file)
@@ -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<Object[]> 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);
index 5698a2a67e8913e9b59fecfeb52a01f004dfe5da..010eb224d6aac948f995f45f93bc97d9152f9afd 100644 (file)
@@ -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<Object[]> 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("""
index b0cc57418ea4d9379210c5796443f8035812dfa3..7eadb184572ca0d308f165b6a88187d7f65aceff 100644 (file)
@@ -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<Object[]> 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()
index 2c3856ad5fb41b6652606b380ef08d9e4b3619ff..4713eb9352b622129dc230f550a39993970d874d 100644 (file)
@@ -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");
 
index 35f1354cb70e427b815754c82441c9477d1950f5..450a79564f5103d97235ee259282c8c47a454434 100644 (file)
@@ -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<Object[]> junitParameters() {
-        return List.of(new Object[][] {
-            { "default", DEFAULT_OUTPUT_FACTORY },
-            { "repairing", REPAIRING_OUTPUT_FACTORY },
-        });
+    @Override
+    public Stream<? extends Arguments> provideArguments(final ExtensionContext context) throws Exception {
+        return Stream.of(
+            Arguments.of("default", DEFAULT_OUTPUT_FACTORY),
+            Arguments.of("repairing", REPAIRING_OUTPUT_FACTORY));
     }
 }
index c01e948b5f75f0ac83186797f422c81ae4f93933..3c1f995297f7ca85c4b54c423f4f543432ed15e5 100644 (file)
@@ -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"));
     }
index be2de3f9649a841905c5770b4f7dc1467bb4f34f..4af6163e29167790cafae220856db41553830398 100644 (file)
@@ -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);
index 711778f9a0306002169b8949f8ec8f6a08c0ec01..b97fcd6508955c1fbc1daf866512e8c8c3ff1e55 100644 (file)
@@ -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";
index ac1d441c8dfc9f0ccb74723390aff9d564b472df..631cd03f2459a7fda2bca07255d07d18812e8269 100644 (file)
@@ -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<Object[]> 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);
index 44944e85e7472053347c7c2946f1e12153674e75..cc897b880016a3e45eb3e4786311024706aa2596 100644 (file)
@@ -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;