Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/ContainerCommentTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/ContainerCommentTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/ContainerCommentTest.java
 (original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/ContainerCommentTest.java
 Sun Feb  6 01:51:55 2022
@@ -16,7 +16,7 @@ package xmlcursor.xpath.complex.checkin;
 
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlObject;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 /**
  * This class tests the execution of an XQuery where the
@@ -24,7 +24,7 @@ import org.junit.Test;
  */
 public class ContainerCommentTest {
     @Test
-    public void testFunctionPathWithCursor() throws Exception {
+    void testFunctionPathWithCursor() throws Exception {
         String sXml =
             "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
             "<!-- My Comment -->" +
@@ -58,8 +58,7 @@ public class ContainerCommentTest {
 
                 for (int i = 0; i < cursor.getSelectionCount(); i++) {
                     try (XmlCursor nameCursor = cursor.newCursor()) {
-                        nameCursor.selectPath(m_namespaceDeclaration +
-                                              "$this/xq:name/text()");
+                        nameCursor.selectPath(m_namespaceDeclaration + 
"$this/xq:name/text()");
                         nameCursor.toNextSelection();
                         names[i] = nameCursor.getTextValue();
                     }

Copied: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTest.java 
(from r1897794, 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTests.java)
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTest.java?p2=xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTest.java&p1=xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTests.java&r1=1897794&r2=1897795&rev=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTests.java 
(original)
+++ xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTest.java 
Sun Feb  6 01:51:55 2022
@@ -18,24 +18,20 @@ package xmlcursor.xpath.complex.checkin;
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameter;
-import org.junit.runners.Parameterized.Parameters;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 import xmlcursor.xpath.common.XPathCommon;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.io.IOException;
 import java.util.stream.Stream;
 
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.fail;
+import static xmlcursor.common.BasicCursorTestCase.jcur;
 
-@RunWith(Parameterized.class)
-public class XPathTests {
+public class XPathTest {
     static final String XML =
         "<?xml version=\"1.0\"?>" +
         "<doc xmlns:ext=\"http://somebody.elses.extension\";>" +
@@ -65,66 +61,58 @@ public class XPathTests {
     private static final String XMLFRAG_EMPTY = "<xml-fragment/>";
     private static XmlObject doc;
 
-    @Parameter
-    public String xpath = null;
-    @Parameter(value = 1)
-    public String[] expected = null;
-
-    @BeforeClass
+    @BeforeAll
     public static void init() throws XmlException {
         doc = XmlObject.Factory.parse(XML);
     }
 
-    @Parameters(name = "{index}: {0}")
-    public static Collection<Object[]> data() {
-        final List<Object[]> data = new ArrayList<>();
-
-        add(data, "/doc/a/@test", STEPS[2]);
-        add(data, "//.", XML, STEPS[1], STEPS[2], STEPS[5], XMLFRAG_EMPTY, 
STEPS[10], XMLFRAG_EMPTY, STEPS[8]);
-        add(data, "/doc", STEPS[1]);
-        add(data, "/doc/a", STEPS[2]);
-        add(data, "//@*", STEPS[3], STEPS[6], STEPS[7]);
-        add(data, ".", XML);
-        add(data, "//ancestor-or-self::*", XML, STEPS[2], STEPS[5], STEPS[10]);
-        add(data, "./child::*[1]", STEPS[1]);
-        add(data, "//descendant-or-self::*/@*[1]", STEPS[2], STEPS[6]);
-
-        // This is tricky:
-        // The expression "*" is true for the principal axis: since the axis 
is self, so we're looking for elements: doc
-        // elt node() also returns the doc elt, but also the comment nodes in 
the union set are returned in doc order
-        add(data, "//@* | * | node()", STEPS[1], STEPS[3], STEPS[6], STEPS[7], 
STEPS[8]);
-
-        add(data, "//*", STEPS[1], STEPS[2], STEPS[5], STEPS[4]);
-        add(data, "/doc/n", (String) null);
-        add(data, "//descendant::comment()", STEPS[8]);
-        add(data, "//*[local-name()='a']", STEPS[2], STEPS[4]);
-        add(data, "//*/@*", STEPS[3], STEPS[6], STEPS[7]);
-        add(data, "//*[last()]", STEPS[1], STEPS[5], STEPS[4]);
-        add(data, "doc/*[last()]", STEPS[5]);
-
-        // TODO: BUGBUG: fix this
-        add(data, "/doc/a/*/@*", (String) null);
-
-        add(data, "doc/descendant::node()", STEPS[2], STEPS[5], STEPS[11], 
STEPS[10], STEPS[11]);
-        add(data, "doc/a/@*", STEPS[2]);
-        add(data, "doc/b/a/ancestor-or-self::*", STEPS[1], STEPS[5], STEPS[4]);
-        add(data, "doc/b/a/preceding::*", STEPS[2]);
-        add(data, "doc/a/following::*", STEPS[5], STEPS[4]);
-        add(data, "/doc/b/preceding-sibling::*", STEPS[2]);
-        add(data, "/doc/a/following-sibling::*", STEPS[5]);
-
-        // "/doc/namespace::*", STEPS[0],DEFAULT_NS};
-
-        return data;
-    }
+    public static Stream<Arguments> dataCheckin() {
+        return Stream.of(
+            addConf("/doc/a/@test", STEPS[2]),
+            addConf("//.", XML, STEPS[1], STEPS[2], STEPS[5], XMLFRAG_EMPTY, 
STEPS[10], XMLFRAG_EMPTY, STEPS[8]),
+            addConf("/doc", STEPS[1]),
+            addConf("/doc/a", STEPS[2]),
+            addConf("//@*", STEPS[3], STEPS[6], STEPS[7]),
+            addConf(".", XML),
+            addConf("//ancestor-or-self::*", XML, STEPS[2], STEPS[5], 
STEPS[10]),
+            addConf("./child::*[1]", STEPS[1]),
+            addConf("//descendant-or-self::*/@*[1]", STEPS[2], STEPS[6]),
+
+            // This is tricky:
+            // The expression "*" is true for the principal axis: since the 
axis is self, so we're looking for elements: doc
+            // elt node() also returns the doc elt, but also the comment nodes 
in the union set are returned in doc order
+            addConf("//@* | * | node()", STEPS[1], STEPS[3], STEPS[6], 
STEPS[7], STEPS[8]),
+
+            addConf("//*", STEPS[1], STEPS[2], STEPS[5], STEPS[4]),
+            addConf("/doc/n", (String) null),
+            addConf("//descendant::comment()", STEPS[8]),
+            addConf("//*[local-name()='a']", STEPS[2], STEPS[4]),
+            addConf("//*/@*", STEPS[3], STEPS[6], STEPS[7]),
+            addConf("//*[last()]", STEPS[1], STEPS[5], STEPS[4]),
+            addConf("doc/*[last()]", STEPS[5]),
+
+            // TODO: BUGBUG: fix this
+            addConf("/doc/a/*/@*", (String) null),
+
+            addConf("doc/descendant::node()", STEPS[2], STEPS[5], STEPS[11], 
STEPS[10], STEPS[11]),
+            addConf("doc/a/@*", STEPS[2]),
+            addConf("doc/b/a/ancestor-or-self::*", STEPS[1], STEPS[5], 
STEPS[4]),
+            addConf("doc/b/a/preceding::*", STEPS[2]),
+            addConf("doc/a/following::*", STEPS[5], STEPS[4]),
+            addConf("/doc/b/preceding-sibling::*", STEPS[2]),
+            addConf("/doc/a/following-sibling::*", STEPS[5])
 
-    private static void add(List<Object[]> data, String xpath, String... 
expected) {
-        data.add(new Object[]{xpath, expected});
+            // "/doc/namespace::*", STEPS[0],DEFAULT_NS};
+        );
     }
 
+    private static Arguments addConf(String xpath, String... expected) {
+        return Arguments.of(xpath, expected);
+    }
 
-    @Test
-    public void testConformance() {
+    @ParameterizedTest
+    @MethodSource("dataCheckin")
+    void testConformance(String xpath, String[] expected) {
         try (XmlCursor actual = doc.newCursor()) {
             actual.selectPath(xpath);
 
@@ -133,11 +121,185 @@ public class XPathTests {
                 return;
             }
 
-            XmlObject[] expXO = 
Stream.of(expected).map(XPathTests::parse).toArray(XmlObject[]::new);
+            XmlObject[] expXO = 
Stream.of(expected).map(XPathTest::parse).toArray(XmlObject[]::new);
             XPathCommon.compare(actual, expXO);
         }
     }
 
+
+    public static Stream<Arguments> dataZvon() {
+        return Stream.of(
+        addZvon(1, "/AAA", 
"<AAA><BBB/><CCC/><BBB/><BBB/><DDD><BBB/></DDD><CCC/></AAA>"),
+        addZvon(1, "/AAA/CCC", "<CCC/>", "<CCC/>"),
+        addZvon(1, "/AAA/DDD/BBB", "<BBB/>"),
+
+        addZvon(2, "//BBB", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>"),
+        addZvon(2, "//DDD/BBB", "<BBB/>", "<BBB/>", "<BBB/>"),
+
+        addZvon(3, "/AAA/CCC/DDD/*", "<BBB/>", "<BBB/>", "<EEE/>", "<FFF/>"),
+        addZvon(3, "/*/*/*/BBB", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", 
"<BBB><BBB/></BBB>"),
+
+        //according to Galax the document order is :
+        addZvon(3, "//*",
+            
"<AAA><XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX><CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC><CCC><BBB><BBB><BBB/></BBB></BBB></CCC></AAA>",
+            "<XXX><DDD><BBB/><BBB/><EEE/><FFF/></DDD></XXX>", 
"<DDD><BBB/><BBB/><EEE/><FFF/></DDD>", "<BBB/>", "<BBB/>",
+            "<EEE/>", "<FFF/>", 
"<CCC><DDD><BBB/><BBB/><EEE/><FFF/></DDD></CCC>", 
"<DDD><BBB/><BBB/><EEE/><FFF/></DDD>",
+            "<BBB/>", "<BBB/>", "<EEE/>", "<FFF/>", 
"<CCC><BBB><BBB><BBB/></BBB></BBB></CCC>",
+            "<BBB><BBB><BBB/></BBB></BBB>", "<BBB><BBB/></BBB>", "<BBB/>"),
+
+        addZvon(4, "/AAA/BBB[1]", "<BBB/>"),
+        addZvon(4, "/AAA/BBB[last()]", "<BBB/>"),
+
+        addZvon(5, "//@id", "<xml-fragment id=\"b1\"/>", "<xml-fragment 
id=\"b2\"/>"),
+        addZvon(5, "//BBB[@id]", "<BBB id = \"b1\"/>", "<BBB id = \"b2\"/>"),
+        addZvon(5, "//BBB[@name]", "<BBB name=\"bbb\"/>"),
+        addZvon(5, "//BBB[@*]", "<BBB id = \"b1\"/>", "<BBB id = \"b2\"/>", 
"<BBB name=\"bbb\"/>"),
+        addZvon(5, "//BBB[not(@*)]", "<BBB/>"),
+
+        addZvon(6, "//BBB[@id='b1']", "<BBB id = \"b1\"/>"),
+        addZvon(6, "//BBB[@name='bbb']", "<BBB name=\"bbb\"/>"),
+        addZvon(6, "//BBB[normalize-space(@name)='bbb']", "<BBB name=\" bbb 
\"/>", "<BBB name=\"bbb\"/>"),
+
+        addZvon(7, "//*[count(BBB)=2]", "<DDD><BBB/><BBB/></DDD>"),
+        addZvon(7, "//*[count(*)=2]", "<DDD><BBB/><BBB/></DDD>", 
"<EEE><CCC/><DDD/></EEE>"),
+        addZvon(7, "//*[count(*)=3]",
+            
"<AAA><CCC><BBB/><BBB/><BBB/></CCC><DDD><BBB/><BBB/></DDD><EEE><CCC/><DDD/></EEE></AAA>",
 "<CCC><BBB/><BBB/><BBB/></CCC>"),
+
+        addZvon(8, "//*[name()='BBB']", "<BBB/>", "<BBB/>", "<BBB/>", 
"<BBB/>", "<BBB/>"),
+        addZvon(8, "//*[starts-with(name(),'B')]", 
"<BCC><BBB/><BBB/><BBB/></BCC>",
+            "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", "<BBB/>", 
"<BEC><CCC/><DBD/></BEC>"),
+
+        // ykadiysk: Jaxen prints in BF left-to-right order but XPath wants 
doc order
+        // addZvon("zvon8.xml", "//*[starts-with(name(),'B')]", 
"<BCC><BBB/><BBB/><BBB/></BCC>",
+        //    "<BBB/>", "<BBB/>", "<BEC><CCC/><DBD/></BEC>", "<BBB/>", 
"<BBB/>", "<BBB/>"),
+
+        addZvon(8, "//*[contains(name(),'C')]", 
"<BCC><BBB/><BBB/><BBB/></BCC>", "<BEC><CCC/><DBD/></BEC>", "<CCC/>"),
+
+        addZvon(9, "//*[string-length(name()) = 3]", 
"<AAA><Q/><SSSS/><BB/><CCC/><DDDDDDDD/><EEEE/></AAA>", "<CCC/>"),
+        addZvon(9, "//*[string-length(name()) < 3]", "<Q/>", "<BB/>"),
+        addZvon(9, "//*[string-length(name()) > 3]", "<SSSS/>", "<DDDDDDDD/>", 
"<EEEE/>"),
+
+        addZvon(10, "$this//CCC | $this//BBB", "<BBB/>", "<CCC/>", "<CCC/>"),
+        // Nodes are returned in document order
+        addZvon(10, "$this/AAA/EEE | $this//BBB", "<BBB/>", "<EEE/>"),
+        addZvon(10, "./AAA/EEE |.//DDD/CCC | ./AAA | .//BBB", 
"<AAA><BBB/><CCC/><DDD><CCC/></DDD><EEE/></AAA>",
+            "<BBB/>", "<CCC/>", "<EEE/>"),
+
+        addZvon(11, "/AAA", "<AAA><BBB/><CCC/></AAA>"),
+        addZvon(11, "/child::AAA", "<AAA><BBB/><CCC/></AAA>"),
+        addZvon(11, "/AAA/BBB", "<BBB/>"),
+        addZvon(11, "/child::AAA/child::BBB", "<BBB/>"),
+        addZvon(11, "/child::AAA/BBB", "<BBB/>"),
+
+        addZvon(12, "/descendant::*",
+            
"<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>",
+            "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>", 
"<DDD><CCC><DDD/><EEE/></CCC></DDD>",
+            "<CCC><DDD/><EEE/></CCC>", "<DDD/>", "<EEE/>", 
"<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>",
+            "<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>", 
"<EEE><DDD><FFF/></DDD></EEE>", "<DDD><FFF/></DDD>", "<FFF/>"),
+        addZvon(12, "/AAA/BBB/descendant::*", 
"<DDD><CCC><DDD/><EEE/></CCC></DDD>",
+            "<CCC><DDD/><EEE/></CCC>", "<DDD/>", "<EEE/>"),
+        addZvon(12, "//CCC/descendant::*", "<DDD/>", "<EEE/>", 
"<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>",
+            "<EEE><DDD><FFF/></DDD></EEE>", "<DDD><FFF/></DDD>", "<FFF/>"),
+        addZvon(12, "//CCC/descendant::DDD", "<DDD/>", 
"<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>", "<DDD><FFF/></DDD>"),
+
+        addZvon(13, "//DDD/parent::*", 
"<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>",
+            "<CCC><DDD/><EEE/></CCC>", 
"<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>", 
"<EEE><DDD><FFF/></DDD></EEE>"),
+
+        addZvon(14, "/AAA/BBB/DDD/CCC/EEE/ancestor::*",
+            
"<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>",
+            "<BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB>", 
"<DDD><CCC><DDD/><EEE/></CCC></DDD>", "<CCC><DDD/><EEE/></CCC>"),
+        addZvon(14, "//FFF/ancestor::*",
+            
"<AAA><BBB><DDD><CCC><DDD/><EEE/></CCC></DDD></BBB><CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC></AAA>",
+            "<CCC><DDD><EEE><DDD><FFF/></DDD></EEE></DDD></CCC>", 
"<DDD><EEE><DDD><FFF/></DDD></EEE></DDD>",
+            "<EEE><DDD><FFF/></DDD></EEE>", "<DDD><FFF/></DDD>"),
+
+        addZvon(15, "/AAA/BBB/following-sibling::*",
+            "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>", 
"<CCC><DDD/></CCC>"),
+        addZvon(15, "//CCC/following-sibling::*", "<DDD/>", "<FFF/>", 
"<FFF><GGG/></FFF>"),
+
+        addZvon(16, "/AAA/XXX/preceding-sibling::*", 
"<BBB><CCC/><DDD/></BBB>"),
+        addZvon(16, "//CCC/preceding-sibling::*", "<BBB><CCC/><DDD/></BBB>",
+            "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>", 
"<EEE/>", "<DDD/>"),
+
+        addZvon(17, "/AAA/XXX/following::*", "<CCC><DDD/></CCC>", "<DDD/>"),
+        addZvon(17, "//ZZZ/following::*", "<FFF><GGG/></FFF>", "<GGG/>",
+            "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+            "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<EEE/>", 
"<DDD/>", "<CCC/>", "<FFF/>",
+            "<FFF><GGG/></FFF>", "<GGG/>", "<CCC><DDD/></CCC>", "<DDD/>"),
+
+
+        // the preceding axis contains all nodes that are descendants of the 
root of the tree in which the context
+        // node is found, are not ancestors of the context node, and occur 
before the context node in document order
+        addZvon(18, "/AAA/XXX/preceding::*", 
"<BBB><CCC/><ZZZ><DDD/></ZZZ></BBB>", "<CCC/>",
+            "<ZZZ><DDD/></ZZZ>", "<DDD/>"),
+        addZvon(18, "//GGG/preceding::*", 
"<BBB><CCC/><ZZZ><DDD/></ZZZ></BBB>", "<CCC/>",
+            "<ZZZ><DDD/></ZZZ>", "<DDD/>", "<EEE/>", "<DDD/>", "<CCC/>", 
"<FFF/>"),
+
+
+        addZvon(19, "/AAA/XXX/descendant-or-self::*", 
"<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+            "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<EEE/>", 
"<DDD/>", "<CCC/>", "<FFF/>", "<FFF><GGG/></FFF>", "<GGG/>"),
+        addZvon(19, "//CCC/descendant-or-self::*", "<CCC/>", "<CCC/>", 
"<CCC><DDD/></CCC>", "<DDD/>"),
+
+
+        addZvon(20, "/AAA/XXX/DDD/EEE/ancestor-or-self::*",
+            
"<AAA><BBB><CCC/><ZZZ><DDD/></ZZZ></BBB><XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+            "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+            "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", "<EEE/>"),
+        addZvon(20, "//GGG/ancestor-or-self::*",
+            
"<AAA><BBB><CCC/><ZZZ><DDD/></ZZZ></BBB><XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+            "<XXX><DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD></XXX>",
+            "<DDD><EEE/><DDD/><CCC/><FFF/><FFF><GGG/></FFF></DDD>", 
"<FFF><GGG/></FFF>", "<GGG/>"),
+
+        addZvon(21, "//GGG/ancestor::*",
+            
"<AAA><BBB><CCC/><ZZZ/></BBB><XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+            
"<XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX>",
+            
"<DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD>",
+            "<FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF>"),
+        addZvon(21, "//GGG/descendant::*", "<JJJ><QQQ/></JJJ>", "<QQQ/>", 
"<JJJ/>"),
+        addZvon(21, "//GGG/following::*", "<HHH/>", "<CCC><DDD/></CCC>", 
"<DDD/>"),
+        addZvon(21, "//GGG/preceding::*", "<BBB><CCC/><ZZZ/></BBB>", "<CCC/>", 
"<ZZZ/>", "<EEE/>", "<HHH/>"),
+        addZvon(21, "//GGG/self::*", "<GGG><JJJ><QQQ/></JJJ><JJJ/></GGG>"),
+        addZvon(21, "//GGG/ancestor::* | //GGG/descendant::* | 
//GGG/following::* | //GGG/preceding::* | //GGG/self::*",
+            
"<AAA><BBB><CCC/><ZZZ/></BBB><XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX><CCC><DDD/></CCC></AAA>",
+            "<BBB><CCC/><ZZZ/></BBB>", "<CCC/>", "<ZZZ/>", 
"<XXX><DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD></XXX>",
+            
"<DDD><EEE/><FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF></DDD>", 
"<EEE/>",
+            "<FFF><HHH/><GGG><JJJ><QQQ/></JJJ><JJJ/></GGG><HHH/></FFF>", 
"<HHH/>", "<GGG><JJJ><QQQ/></JJJ><JJJ/></GGG>",
+            "<JJJ><QQQ/></JJJ>", "<QQQ/>", "<JJJ/>", "<HHH/>", 
"<CCC><DDD/></CCC>", "<DDD/>"),
+
+        addZvon(22, "//BBB[position() mod 2 = 0 ]", "<BBB/>", "<BBB/>", 
"<BBB/>", "<BBB/>"),
+        addZvon(22, "//BBB[ position() = floor(last() div 2 + 0.5) or 
position() = ceiling(last() div 2 + 0.5) ]",
+            "<BBB/>", "<BBB/>"),
+        addZvon(22, "//CCC[ position() = floor(last() div 2 + 0.5) or 
position() = ceiling(last() div 2 + 0.5) ]",
+            "<CCC/>")
+        );
+    }
+
+    private static Arguments addZvon(int dataset, String xpath, String... 
expected) {
+        return Arguments.of(dataset, xpath, expected);
+    }
+
+    /**
+     * Verifies XPath impl using examples from
+     * http://www.zvon.org/xxl/XPathTutorial/Output/example1.html
+     * includes expanded notations as well
+     */
+    @ParameterizedTest(name = "{index}: zvon{0}.xml {1}")
+    @MethodSource("dataZvon")
+    void zvonExample(int dataset, String xpath, String[] expected) throws 
IOException, XmlException {
+        try (XmlCursor x1 = jcur("xbean/xmlcursor/xpath/zvon"+dataset+".xml")) 
{
+            x1.selectPath(xpath);
+
+            XmlObject[] exp = new XmlObject[expected.length];
+            for (int i = 0; i < expected.length; i++) {
+                exp[i] = XmlObject.Factory.parse(expected[i]);
+            }
+
+            XPathCommon.compare(x1, exp);
+        }
+    }
+
+
+
     private static XmlObject parse(String str) {
         try {
             return XmlObject.Factory.parse(str);

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTestsMisc.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTestsMisc.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTestsMisc.java
 (original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/checkin/XPathTestsMisc.java
 Sun Feb  6 01:51:55 2022
@@ -16,16 +16,19 @@
 package xmlcursor.xpath.complex.checkin;
 
 import org.apache.xmlbeans.XmlCursor;
-import org.apache.xmlbeans.XmlObject;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
+import static xmlcursor.common.BasicCursorTestCase.cur;
 
 public class XPathTestsMisc {
 
     @Test
-    public void testDelete() throws Exception {
+    void testDelete() throws Exception {
         String query = "*";
 
-        try (XmlCursor xc = 
XmlObject.Factory.parse(XPathTests.XML).newCursor()) {
+        // TODO: add asserts
+
+        try (XmlCursor xc = cur(XPathTest.XML)) {
             xc.selectPath(query);
             while (xc.toNextSelection()) {
                 System.out.println(xc.xmlText());

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/DeclareNamespaceTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/DeclareNamespaceTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/DeclareNamespaceTest.java
 (original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/DeclareNamespaceTest.java
 Sun Feb  6 01:51:55 2022
@@ -18,18 +18,18 @@ import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlLong;
 import org.apache.xmlbeans.XmlObject;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import xmlcursor.common.Common;
 
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.*;
+import static xmlcursor.common.BasicCursorTestCase.cur;
+import static xmlcursor.common.BasicCursorTestCase.obj;
 
 public class DeclareNamespaceTest {
 
     @Test
-    public void testDeclareNSPath() throws Exception {
-        XmlObject s = XmlObject.Factory.parse(
-            "<a xmlns:ack='abc' ack:attr='val1'>foo<b>bar</b></a>");
-        XmlObject[] res;
+    void testDeclareNSPath() throws Exception {
+        XmlObject s = obj("<a xmlns:ack='abc' 
ack:attr='val1'>foo<b>bar</b></a>");
         /*
         res=s.selectPath("./a");
         assertTrue(s.selectChildren("","a")[0] == res[0] );
@@ -41,11 +41,10 @@ public class DeclareNamespaceTest {
             s1.selectPath(query);
             assertEquals(1, s1.getSelectionCount());
             s1.toNextSelection();
-            assertEquals(s1.xmlText(),
-                "<xml-fragment ack:attr=\"val1\" xmlns:ack=\"abc\"/>");
+            assertEquals("<xml-fragment ack:attr=\"val1\" 
xmlns:ack=\"abc\"/>", s1.xmlText());
         }
 
-        res = s.execQuery(query);
+        XmlObject[] res = s.execQuery(query);
         XmlObject o;
         try (XmlCursor c1 = s.newCursor()) {
             c1.toFirstContentToken();
@@ -53,16 +52,12 @@ public class DeclareNamespaceTest {
         }
 
         assertNotSame(o, res[0]);
-        assertEquals(res[0].xmlText(),
-            "<xml-fragment ack:attr=\"val1\" xmlns:ack=\"abc\"/>");
+        assertEquals("<xml-fragment ack:attr=\"val1\" xmlns:ack=\"abc\"/>", 
res[0].xmlText());
     }
 
     @Test
-    public void testDefaultNSPath() throws Exception {
-        XmlObject s = XmlObject.Factory.parse(
-            "<a xmlns='abc'>foo<b>bar</b></a>");
-        XmlObject[] res;
-
+    void testDefaultNSPath() throws Exception {
+        XmlObject s = obj("<a xmlns='abc'>foo<b>bar</b></a>");
         String query = "declare default element namespace 'abc'; 
.//b[position()=last()]";
         /*
         XmlCursor s1=s.newCursor();
@@ -71,7 +66,7 @@ public class DeclareNamespaceTest {
         s1.toNextSelection();
         assertEquals( s1.xmlText(),"<b xmlns=\"abc\">bar</b>");
         */
-        res = s.execQuery(query);
+        XmlObject[] res = s.execQuery(query);
         try (XmlCursor c1 = s.newCursor()) {
             c1.toFirstContentToken();
             XmlObject o = c1.getObject();
@@ -81,11 +76,9 @@ public class DeclareNamespaceTest {
     }
 
     @Test
-    public void testSequence() throws Exception {
-        XmlObject o = XmlObject.Factory.parse(
-            "<a xmlns='abc'>foo<b>bar</b></a>");
-        XmlObject[] res = null;
-        res = o.selectPath("count(//*:a), count(//*:b)");
+    void testSequence() throws Exception {
+        XmlObject o = obj("<a xmlns='abc'>foo<b>bar</b></a>");
+        XmlObject[] res = o.selectPath("count(//*:a), count(//*:b)");
         assertEquals(2, res.length);
         XmlLong a = ((XmlLong) res[0]);
         String expXml = "<xml-fragment>1</xml-fragment>";
@@ -108,22 +101,19 @@ public class DeclareNamespaceTest {
     }
 
     @Test
-    public void testSequenceUnion() throws Exception {
-        XmlObject o = XmlObject.Factory.parse("<a><b>1</b>1</a>");
+    void testSequenceUnion() throws Exception {
+        XmlObject o = obj("<a><b>1</b>1</a>");
         XmlObject[] res = o.selectPath("//a union //b");
         assertEquals(2, res.length);
-        XmlObject a;
-        a = res[0];
         //node a
-        assertEquals("<xml-fragment><b>1</b>1</xml-fragment>", a.xmlText());
-        a = res[1];
+        assertEquals("<xml-fragment><b>1</b>1</xml-fragment>", 
res[0].xmlText());
         //node b
-        assertEquals("<xml-fragment>1</xml-fragment>", a.xmlText());
+        assertEquals("<xml-fragment>1</xml-fragment>", res[1].xmlText());
     }
 
     @Test
-    public void testSequenceIntersect() throws Exception {
-        try (XmlCursor o = 
XmlObject.Factory.parse("<a><b>1</b>1</a>").newCursor()) {
+    void testSequenceIntersect() throws Exception {
+        try (XmlCursor o = cur("<a><b>1</b>1</a>")) {
             o.selectPath("//b intersect //b");
             assertEquals(1, o.getSelectionCount());
             o.toNextSelection();
@@ -132,8 +122,8 @@ public class DeclareNamespaceTest {
     }
 
     @Test
-    public void testSequenceExcept() throws Exception {
-        try (XmlCursor o = 
XmlObject.Factory.parse("<a><b>1</b>1</a>").newCursor()) {
+    void testSequenceExcept() throws Exception {
+        try (XmlCursor o = cur("<a><b>1</b>1</a>")) {
             o.selectPath("/a except /a");
             assertEquals(0, o.getSelectionCount());
             o.selectPath("//* except //b");
@@ -145,12 +135,11 @@ public class DeclareNamespaceTest {
 
     //If an operand of union, intersect, or except
     // contains an item that is not a node, a type error is raised.
-
-    @Test(expected = RuntimeException.class)
-    public void testSequenceTypeError() throws XmlException {
-        try (XmlCursor o = XmlObject.Factory.parse("<a/>").newCursor()) {
+    @Test
+    void testSequenceTypeError() throws XmlException {
+        try (XmlCursor o = obj("<a/>").newCursor()) {
             o.selectPath("(0 to 4) except (0 to 4)");
-            o.toNextSelection();
+            assertThrows(RuntimeException.class, o::toNextSelection);
         }
     }
 }

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/NodeCopyTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/NodeCopyTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/NodeCopyTest.java 
(original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/NodeCopyTest.java 
Sun Feb  6 01:51:55 2022
@@ -17,18 +17,19 @@ package xmlcursor.xpath.complex.detailed
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlLong;
 import org.apache.xmlbeans.XmlObject;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import xbean.scomp.element.globalEltDefault.GlobalEltDefaultIntDocument;
 
-import static org.junit.Assert.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static xmlcursor.common.BasicCursorTestCase.obj;
 
 public class NodeCopyTest {
 
     @Test
-    public void testNS() throws Exception {
-        XmlObject s = XmlObject.Factory.parse("<a xmlns:ack='abc' 
ack:attr='val1'>foo<b>bar</b></a>");
-        XmlObject[] res;
+    void testNS() throws Exception {
+        XmlObject s = obj("<a xmlns:ack='abc' 
ack:attr='val1'>foo<b>bar</b></a>");
         /*
         res=s.selectPath("./a");
         assertTrue(s.selectChildren("","a")[0] == res[0] );
@@ -40,7 +41,7 @@ public class NodeCopyTest {
             assertEquals("<a ack:attr=\"val1\" 
xmlns:ack=\"abc\">foo<b>bar</b></a>", s1.xmlText());
         }
 
-        res = s.execQuery("./a");
+        XmlObject[] res = s.execQuery("./a");
         XmlObject o;
         try (XmlCursor c1 = s.newCursor()) {
             c1.toFirstContentToken();
@@ -52,18 +53,17 @@ public class NodeCopyTest {
     }
 
     @Test
-    public void testText() throws Exception {
-        XmlObject s = XmlObject.Factory.parse("<a><b>bar</b><c>foo</c></a>");
-        XmlObject[] res;
-        res = s.selectPath(".//text()");
+    void testText() throws Exception {
+        XmlObject s = obj("<a><b>bar</b><c>foo</c></a>");
+        XmlObject[] res = s.selectPath(".//text()");
         assertEquals(2, res.length);
         assertEquals("<xml-fragment>bar</xml-fragment>", res[0].xmlText());
         assertEquals("<xml-fragment>foo</xml-fragment>", res[1].xmlText());
     }
 
     @Test
-    public void testCount() throws Exception {
-        XmlObject s = XmlObject.Factory.parse("<a><b>bar</b>foo</a>");
+    void testCount() throws Exception {
+        XmlObject s = obj("<a><b>bar</b>foo</a>");
         XmlObject[] res;
         res = s.selectPath("count(.//b)");
         System.out.println(res[0].xmlText());
@@ -73,7 +73,7 @@ public class NodeCopyTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testInt() throws Exception {
         GlobalEltDefaultIntDocument d =
             GlobalEltDefaultIntDocument.Factory
@@ -84,15 +84,14 @@ public class NodeCopyTest {
     }
 
     @Test
-    public void testXmlObjectSelectPath() {
+    void testXmlObjectSelectPath() {
 
     }
 
     @Test
-    public void testDeleteMe() throws Exception {
-        XmlObject t = XmlObject.Factory.parse("<a><b/><b/></a>");
+    void testDeleteMe() throws Exception {
+        XmlObject t = obj("<a><b/><b/></a>");
         try (XmlCursor cursor = t.newCursor()) {
-            System.out.println(cursor.getObject());
             // use xpath to select elements
             cursor.selectPath("*/*");
 

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/TypesTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/TypesTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/TypesTest.java 
(original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/complex/detailed/TypesTest.java 
Sun Feb  6 01:51:55 2022
@@ -15,25 +15,26 @@
 package xmlcursor.xpath.complex.detailed;
 
 import org.apache.xmlbeans.*;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.time.OffsetDateTime;
 import java.util.Calendar;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class TypesTest {
     private XmlObject o;
 
-    @Before
+    // TODO: add asserts - convert system.out.printlns to asserts
+
+    @BeforeEach
     public void setUp() throws Exception {
         o = XmlObject.Factory.parse("<a/>");
     }
 
     @Test
-    public void testDate() {
+    void testDate() {
         int offsetSeconds = OffsetDateTime.now().getOffset().getTotalSeconds();
         XmlObject[] res = o.selectPath("xs:date(\"2000-01-01\")");
         assertEquals(1, res.length);
@@ -45,7 +46,7 @@ public class TypesTest {
     }
 
     @Test
-    public void testZDate() {
+    void testZDate() {
         XmlObject[] res = o.selectPath("xs:date(\"2000-01-01Z\")");
         assertEquals(1, res.length);
         Calendar d = ((XmlDate) res[0]).getCalendarValue();
@@ -56,7 +57,7 @@ public class TypesTest {
     }
 
     @Test
-    public void testCaliforniaDate() {
+    void testCaliforniaDate() {
         XmlObject[] res = o.selectPath("xs:date(\"2000-01-01-08:00\")");
         assertEquals(1, res.length);
         Calendar d = ((XmlDate) res[0]).getCalendarValue();
@@ -67,7 +68,7 @@ public class TypesTest {
     }
 
     @Test
-    public void testDateTime() {
+    void testDateTime() {
         int offsetSeconds = OffsetDateTime.now().getOffset().getTotalSeconds();
         XmlObject[] res = 
o.selectPath("xs:dateTime(\"2000-01-01T15:03:06.123\")");
         assertEquals(1, res.length);
@@ -83,7 +84,7 @@ public class TypesTest {
     }
 
     @Test
-    public void testZDateTime() {
+    void testZDateTime() {
         XmlObject[] res = 
o.selectPath("xs:dateTime(\"2000-01-01T15:03:06.123Z\")");
         assertEquals(1, res.length);
         Calendar d = ((XmlDateTime) res[0]).getCalendarValue();
@@ -98,7 +99,7 @@ public class TypesTest {
     }
 
     @Test
-    public void testCaliforniaDateTime() {
+    void testCaliforniaDateTime() {
         XmlObject[] res = 
o.selectPath("xs:dateTime(\"2000-01-01T15:03:06.123-08:00\")");
         assertEquals(1, res.length);
         Calendar d = ((XmlDateTime) res[0]).getCalendarValue();
@@ -113,9 +114,8 @@ public class TypesTest {
     }
 
     @Test
-    public void testDecimal() {
-        XmlObject[] res = o.selectPath(
-            "seconds-from-dateTime(xs:dateTime('1997-07-16T19:20:30+01:00'))");
+    void testDecimal() {
+        XmlObject[] res = 
o.selectPath("seconds-from-dateTime(xs:dateTime('1997-07-16T19:20:30+01:00'))");
         assertEquals(1, res.length);
         XmlDecimal dec = (XmlDecimal) res[0];
         assertEquals("<xml-fragment>30</xml-fragment>", dec.xmlText());
@@ -124,7 +124,7 @@ public class TypesTest {
     //Saxon returns string here, though the string is a valid duration
     //representation
     @Test
-    public void testDuration() {
+    void testDuration() {
         XmlObject[] res = o.selectPath("xs:dayTimeDuration(\"PT12H\")*4");
         assertEquals(1, res.length);
         //System.out.println(res[0].schemaType());
@@ -138,14 +138,12 @@ public class TypesTest {
     }
 
     @Test
-    public void testTypes() throws Exception {
-        XmlObject o = XmlObject.Factory.parse(
-            "<a xml:base='abc'>foo<b>bar</b></a>");
-        XmlObject[] res = null;
+    void testTypes() throws Exception {
+        XmlObject o = XmlObject.Factory.parse("<a 
xml:base='abc'>foo<b>bar</b></a>");
 
         //Long
-        res = o.selectPath("hours-from-dateTime(" +
-                           "current-dateTime()) cast as xs:integer");
+        XmlObject[] res = o.selectPath("hours-from-dateTime(" +
+                                       "current-dateTime()) cast as 
xs:integer");
         assertEquals(1, res.length);
         //System.out.println(res[0].schemaType());
         XmlLong xl = ((XmlLong) res[0]);

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java 
(original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/AxesTest.java 
Sun Feb  6 01:51:55 2022
@@ -17,13 +17,13 @@ package xmlcursor.xpath.xbean_xpath.deta
 
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlException;
-import org.apache.xmlbeans.XmlObject;
 import org.apache.xmlbeans.XmlOptions;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static xmlcursor.common.BasicCursorTestCase.cur;
 
 /**
  * Axes Tested:
@@ -35,29 +35,29 @@ import static org.junit.Assert.assertEqu
  * namespace
  */
 public class AxesTest {
-    private final String sXmlChild =
+    private static final String sXmlChild =
         "<foo> <bar xmlns:pre=\"http://uri.com\"; at0='val0'>" +
         "<pre:baz xmlns:baz='http://uri' baz:at0='val1'/>txt 
child</bar></foo>";
 
     private final XmlOptions options = new XmlOptions();
 
-    private final String sXmlDesc =
+    private static final String sXmlDesc =
         "<foo> <foo xmlns:pre=\"http://uri.com\"; at0='val0'>" +
         "<pre:baz xmlns:baz='http://uri' baz:at0='val1'/>txt 
child</foo></foo>";
 
-    @Before
+    @BeforeEach
     public void setUp() {
         options.setXPathUseXmlBeans();
     }
 
     @Test
-    public void testChildAxisAbbrev() throws XmlException {
+    void testChildAxisAbbrev() throws XmlException {
         String sQuery1 = "./foo/bar";
         String sExpected =
             "<bar at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
             "<pre:baz baz:at0=\"val1\" xmlns:baz=\"http://uri\"/>txt 
child</bar>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -74,13 +74,13 @@ public class AxesTest {
     }
 
     @Test
-    public void testChildAxis() throws XmlException {
+    void testChildAxis() throws XmlException {
         String sQuery1 = "./foo/child::bar";
         String sExpected =
             "<bar at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
             "<pre:baz baz:at0=\"val1\" xmlns:baz=\"http://uri\"/>txt 
child</bar>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1, options);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -89,13 +89,13 @@ public class AxesTest {
     }
 
     @Test
-    public void testChildAxisDot() throws XmlException {
+    void testChildAxisDot() throws XmlException {
         String sQuery1 = "$this/foo/./bar";
         String sExpected =
             "<bar at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
             "<pre:baz baz:at0=\"val1\" xmlns:baz=\"http://uri\"/>txt 
child</bar>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1, options);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -104,23 +104,23 @@ public class AxesTest {
     }
 
     @Test
-    public void testChildAxisDNE() throws XmlException {
+    void testChildAxisDNE() throws XmlException {
         String sQuery1 = "$this/foo/./baz";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1, options);
             assertEquals(0, c.getSelectionCount());
         }
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testDescendantAxis() throws XmlException {
         String sQuery1 = "./descendant::foo";
         String sExpected = "<foo at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
                            "<pre:baz  baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</foo>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             assertEquals("foo", c.getName().getLocalPart());
 
@@ -132,12 +132,12 @@ public class AxesTest {
     }
 
     @Test
-    public void testDescendantAxisAbbrev() throws XmlException {
+    void testDescendantAxisAbbrev() throws XmlException {
         String sQuery1 = ".//foo";
         String sExpected = "<foo at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
                            "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</foo>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
 
             c.selectPath(sQuery1, options);
@@ -148,13 +148,13 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testDescAxisDot() throws XmlException {
         String sQuery1 = "$this/descendant::foo/.";
         String sExpected = "<foo at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
                            "<pre:baz  baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</foo>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1, options);
             assertEquals(1, c.getSelectionCount());
@@ -164,11 +164,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testDescAxisDNE() throws XmlException {
         String sQuery1 = "$this/descendant::baz";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1, options);
             assertEquals(0, c.getSelectionCount());
@@ -176,11 +176,11 @@ public class AxesTest {
     }
 
     @Test
-    public void testChildAttribute() throws XmlException {
+    void testChildAttribute() throws XmlException {
         String sExpected = "<xml-fragment at0=\"val0\" 
xmlns:pre=\"http://uri.com\"/>";
         String sQuery1 = "$this/foo/bar/attribute::at0";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1, options);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -189,11 +189,11 @@ public class AxesTest {
     }
 
     @Test
-    public void testChildAttributeAbbrev() throws XmlException {
+    void testChildAttributeAbbrev() throws XmlException {
         String sExpected = "<xml-fragment at0=\"val0\" 
xmlns:pre=\"http://uri.com\"/>";
         String sQuery1 = "$this/foo/bar/@at0";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1, options);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -202,11 +202,11 @@ public class AxesTest {
     }
 
     @Test
-    public void testDescAttribute() throws XmlException {
+    void testDescAttribute() throws XmlException {
         String sExpected = "<xml-fragment at0=\"val0\" 
xmlns:pre=\"http://uri.com\"/>";
         String sQuery1 = "$this//attribute::at0";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1, options);
             assertEquals(1, c.getSelectionCount());
@@ -216,11 +216,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testDescendantOrSelfAxis() throws XmlException {
         String sQuery1 = "./descendant-or-self::foo";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             String[] sExpected = {
                 c.xmlText()
                 , "<foo at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
@@ -241,11 +241,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testDescendantOrSelfAxisDot() throws XmlException {
         String sQuery1 = "./descendant-or-self::foo";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             String[] sExpected = new String[]
                 {
                     c.xmlText()
@@ -268,11 +268,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testDescendantOrSelfAxisDNE() throws XmlException {
         String sQuery1 = "$this/descendant-or-self::baz";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1, options);
             assertEquals(0, c.getSelectionCount());
@@ -280,11 +280,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testSelfAxis() throws XmlException {
         String sQuery1 = "$this/self::foo";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             String sExpected = c.xmlText();
 
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
@@ -298,10 +298,10 @@ public class AxesTest {
     }
 
     @Test
-    public void testSelfAxisAbbrev() throws XmlException {
+    void testSelfAxisAbbrev() throws XmlException {
         String sQuery1 = ".";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             String sExpected = c.xmlText();
 
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
@@ -315,11 +315,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testSelfAxisDot() throws XmlException {
         String sQuery1 = "./self::foo";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             String sExpected = c.xmlText();
 
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
@@ -333,11 +333,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testSelfAxisDNE() throws XmlException {
         String sQuery1 = "$this/self::baz";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1, options);
             assertEquals(0, c.getSelectionCount());
@@ -345,11 +345,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testNamespaceAxis() throws XmlException {
         String sQuery1 = "$this/namespace::http://uri.com";;
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             String sExpected = c.xmlText();
 
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
@@ -365,11 +365,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testNamespaceAxisDot() throws XmlException {
         String sQuery1 = "./*/namespace::http://uri.com";;
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             String sExpected = c.xmlText();
 
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
@@ -383,11 +383,11 @@ public class AxesTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testNamespaceAxisDNE() throws XmlException {
         String sQuery1 = "$this/namespace::*";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlDesc).newCursor()) {
+        try (XmlCursor c = cur(sXmlDesc)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             assertEquals(XmlCursor.TokenType.TEXT, c.toNextToken());
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/NodeTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/NodeTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/NodeTest.java 
(original)
+++ 
xmlbeans/trunk/src/test/java/xmlcursor/xpath/xbean_xpath/detailed/NodeTest.java 
Sun Feb  6 01:51:55 2022
@@ -17,11 +17,11 @@ package xmlcursor.xpath.xbean_xpath.deta
 
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlException;
-import org.apache.xmlbeans.XmlObject;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static xmlcursor.common.BasicCursorTestCase.cur;
 
 /**
  * Nodes Tested:
@@ -39,20 +39,20 @@ import static org.junit.Assert.assertEqu
  */
 public class NodeTest {
 
-    private String sXmlChild =
+    private static final String sXmlChild =
         "<foo> <bar xmlns:pre=\"http://uri.com\"; at0='val0'>" +
         "<pre:baz xmlns:baz='http://uri' baz:at0='val1'/>txt child</bar>" +
         "</foo>";
 
-    private String sXmlPI =
+    private static final String sXmlPI =
         "<foo><?xml-stylesheet target=\"http://someuri\";?></foo>";
 
 
     @Test
-    public void testNameTestStar() throws XmlException {
+    void testNameTestStar() throws XmlException {
         String sQuery1 = "./*";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             String sExpected = c.xmlText();
             c.selectPath(sQuery1);
             assertEquals(1, c.getSelectionCount());
@@ -62,12 +62,12 @@ public class NodeTest {
     }
 
     @Test
-    public void testNameTestNCName() throws XmlException {
+    void testNameTestNCName() throws XmlException {
         String sQuery1 = "$this//*";
+        String sExpected = "<pre:baz baz:at0=\"val1\" " +
+                           "xmlns:baz=\"http://uri\"; 
xmlns:pre=\"http://uri.com\"/>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected = "<pre:baz baz:at0=\"val1\" " +
-                               "xmlns:baz=\"http://uri\"; 
xmlns:pre=\"http://uri.com\"/>";
+        try (XmlCursor c = cur(sXmlChild)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.toNextToken();
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
@@ -80,12 +80,12 @@ public class NodeTest {
     }
 
     @Test
-    public void testNameTestQName_1() throws XmlException {
+    void testNameTestQName_1() throws XmlException {
         String sQuery1 = "declare namespace pre=\"http://uri.com\";; 
$this//pre:*";
+        String sExpected =
+            "<pre:baz baz:at0=\"val1\" xmlns:baz=\"http://uri\"; 
xmlns:pre=\"http://uri.com\"/>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected =
-                "<pre:baz baz:at0=\"val1\" xmlns:baz=\"http://uri\"; 
xmlns:pre=\"http://uri.com\"/>";
+        try (XmlCursor c = cur(sXmlChild)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             assertEquals("foo", c.getName().getLocalPart());
             c.selectPath(sQuery1);
@@ -97,10 +97,10 @@ public class NodeTest {
 
     //test a QName that DNE
     @Test
-    public void testNameTestQName_2() throws XmlException {
+    void testNameTestQName_2() throws XmlException {
         String sQuery1 = "declare namespace pre=\"http://uri\";; 
$this//pre:baz";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
+        try (XmlCursor c = cur(sXmlChild)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1);
             assertEquals(0, c.getSelectionCount());
@@ -108,12 +108,12 @@ public class NodeTest {
     }
 
     @Test
-    public void testNameTestQName_3() throws XmlException {
+    void testNameTestQName_3() throws XmlException {
         String sQuery1 = "$this//bar";
+        String sExpected = "<bar at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
+                           "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</bar>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected = "<bar at0=\"val0\" 
xmlns:pre=\"http://uri.com\";>" +
-                               "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</bar>";
+        try (XmlCursor c = cur(sXmlChild)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1);
             assertEquals(1, c.getSelectionCount());
@@ -123,18 +123,18 @@ public class NodeTest {
     }
 
     @Test
-    public void testNodeTypeComment() {
+    void testNodeTypeComment() {
 
     }
 
 
     @Test
-    public void testNodeTypeNodeAbbrev() throws XmlException {
+    void testNodeTypeNodeAbbrev() throws XmlException {
         String sQuery1 = "$this/foo/*";
+        String sExpected = "<bar at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
+                           "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</bar>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected = "<bar at0=\"val0\" 
xmlns:pre=\"http://uri.com\";>" +
-                               "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</bar>";
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -146,13 +146,13 @@ public class NodeTest {
      * Will not support natively
      */
     @Test
-    @Ignore
+    @Disabled
     public void testNodeTypeNode() throws XmlException {
         String sQuery1 = "$this/foo/node()";
+        String sExpected = "<bar at0=\"val0\" xmlns:pre=\"http://uri.com\";>" +
+                           "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</bar>";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected = "<bar at0=\"val0\" 
xmlns:pre=\"http://uri.com\";>" +
-                               "<pre:baz baz:at0=\"val1\" 
xmlns:baz=\"http://uri\"/>txt child</bar>";
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery1);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -161,11 +161,12 @@ public class NodeTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testNodeTypePI() throws XmlException {
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected = "<foo><?xml-stylesheet 
target=\"http://someuri\";?></foo>";
-            String sQuery = "./foo/processing-instruction()";
+        String sExpected = "<foo><?xml-stylesheet 
target=\"http://someuri\";?></foo>";
+        String sQuery = "./foo/processing-instruction()";
+
+        try (XmlCursor c = cur(sXmlChild)) {
             c.selectPath(sQuery);
             assertEquals(1, c.getSelectionCount());
             c.toNextSelection();
@@ -174,12 +175,12 @@ public class NodeTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testNodeTypeText() throws XmlException {
         String sQuery1 = "$this//text()";
+        String sExpected = " ";
 
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlChild).newCursor()) {
-            String sExpected = " ";
+        try (XmlCursor c = cur(sXmlChild)) {
             assertEquals(XmlCursor.TokenType.START, c.toNextToken());
             c.selectPath(sQuery1);
             assertEquals(1, c.getSelectionCount());
@@ -189,9 +190,9 @@ public class NodeTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testPI() throws XmlException {
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlPI).newCursor()) {
+        try (XmlCursor c = cur(sXmlPI)) {
             String sExpected = "<?xml-stylesheet target=\"http://someuri\";?>";
             String sQuery = "./foo/processing-instruction('xml-stylesheet')";
             c.selectPath(sQuery);
@@ -202,9 +203,9 @@ public class NodeTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testPIDNE() throws XmlException {
-        try (XmlCursor c = XmlObject.Factory.parse(sXmlPI).newCursor()) {
+        try (XmlCursor c = cur(sXmlPI)) {
             String sQuery = "./foo/processing-instruction('stylesheet')";
             c.selectPath(sQuery);
             assertEquals(0, c.getSelectionCount());

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xquery/checkin/QueryEngineTests.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xquery/checkin/QueryEngineTests.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/xmlcursor/xquery/checkin/QueryEngineTests.java 
(original)
+++ xmlbeans/trunk/src/test/java/xmlcursor/xquery/checkin/QueryEngineTests.java 
Sun Feb  6 01:51:55 2022
@@ -15,15 +15,15 @@
 package xmlcursor.xquery.checkin;
 
 import org.apache.xmlbeans.XmlObject;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class QueryEngineTests {
     // Execute repeated queries to test picking up of the query engine from 
classpath
     // This test is following rev 292446
     @Test
-    public void testQueryEngineSelection() throws Exception {
+    void testQueryEngineSelection() throws Exception {
         XmlObject o = XmlObject.Factory.parse("<foo><a><b/></a></foo>");
         XmlObject[] res = o.execQuery("(//a/b)");
         String expectedRes = "<b/>";

Modified: xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/NISTTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/NISTTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/NISTTest.java 
(original)
+++ xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/NISTTest.java Sun 
Feb  6 01:51:55 2022
@@ -18,79 +18,60 @@ import common.Common;
 import noNamespace.TestCase;
 import noNamespace.TestSuiteDocument;
 import noNamespace.TestSuiteDocument.TestSuite.TestGroup;
+import org.apache.commons.io.IOUtils;
 import org.apache.xmlbeans.XmlException;
 import org.apache.xmlbeans.XmlObject;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.TestWatcher;
-import org.junit.runner.Description;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Stream;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-@Ignore("Too many XMLBeans unrelated errors")
-@RunWith(Parameterized.class)
+@Disabled("Too many XMLBeans unrelated errors")
 public class NISTTest {
 
     private static ZipFile zf;
 
-    @Rule
-    public final QueryFailed queryLog = new QueryFailed();
-
-    @SuppressWarnings("DefaultAnnotationParam")
-    @Parameterized.Parameter(value = 0)
-    public String groupName;
-
-    @Parameterized.Parameter(value = 1)
-    public String testName;
-
-    @Parameterized.Parameter(value = 2)
-    public TestCase testCase;
-
-    private String query;
-
-    @Parameterized.Parameters(name = "{index}: {0} {1}")
-    public static Iterable<Object[]> files() throws IOException, XmlException {
+    public static Stream<Arguments> files() throws IOException, XmlException {
         zf = new 
ZipFile(Common.getCaseLocation()+"/xbean/xmlcursor/xquery/xmlQuery.zip");
-
         ZipEntry e = zf.getEntry("testSuite/NIST/files/catalog.xml");
-        InputStream is = zf.getInputStream(e);
-        TestSuiteDocument doc = TestSuiteDocument.Factory.parse(is);
 
-        List<Object[]> files = new ArrayList<Object[]>();
-        for (TestGroup xg : doc.getTestSuite().getTestGroupArray()) {
-            String groupName = xg.getName();
-            for (TestCase tc : xg.getTestCaseArray()) {
-                String testName = tc.getName();
-                files.add(new Object[]{groupName, testName, tc});
-
-                // NIST BUG: folder is called testSuite but appears as 
testsuite in desc. file
-                String filePath = tc.getFilePath()
-                    .replaceAll("testsuite", "testSuite")
-                    .replace((char) 92, '/');
-                tc.setFilePath(filePath);
+        try (InputStream is = zf.getInputStream(e)) {
+            TestSuiteDocument doc = TestSuiteDocument.Factory.parse(is);
+
+            List<Arguments> files = new ArrayList<>();
+            for (TestGroup xg : doc.getTestSuite().getTestGroupArray()) {
+                String groupName = xg.getName();
+                for (TestCase tc : xg.getTestCaseArray()) {
+                    String testName = tc.getName();
+                    files.add(Arguments.of(groupName, testName, tc));
+
+                    // NIST BUG: folder is called testSuite but appears as 
testsuite in desc. file
+                    String filePath = tc.getFilePath()
+                        .replaceAll("testsuite", "testSuite")
+                        .replace((char) 92, '/');
+                    tc.setFilePath(filePath);
+                }
             }
+            return files.stream();
         }
-        is.close();
-
-        return files;
     }
 
-    @Test
-    public void bla() throws Exception {
+    @ParameterizedTest(name = "{index}: {0} {1}")
+    @MethodSource("files")
+    void bla(String groupName, String testName, TestCase testCase) throws 
Exception {
         //bad comment syntax in suite
-        query = getString(testCase.getFilePath()+testCase.getName()+".xq")
+        String query = getString(testCase.getFilePath() + testCase.getName() + 
".xq")
             .replace("{--", "(:")
             .replace("--}", ":)");
 
@@ -106,27 +87,9 @@ public class NISTTest {
     }
 
     private static String getString(String zipFile) throws IOException {
-        ByteArrayOutputStream bos = new ByteArrayOutputStream();
         ZipEntry queryFile = zf.getEntry(zipFile);
-        InputStream is = zf.getInputStream(queryFile);
-        byte[] buf = new byte[4096];
-        for (int readBytes; (readBytes = is.read(buf)) > -1; ) {
-            bos.write(buf, 0, readBytes);
-        }
-        is.close();
-        return new String(bos.toByteArray(), Charset.forName("UTF-8"));
-    }
-
-
-
-    private class QueryFailed extends TestWatcher {
-        @Override
-        protected void failed(Throwable e, Description description) {
-            System.out.println(
-                "Description:\n"+
-                testCase.getQuery().getDescription().getStringValue()+
-                "\n\nQuery:\n"+
-                query);
+        try (InputStream is = zf.getInputStream(queryFile)) {
+            return new String(IOUtils.toByteArray(is), StandardCharsets.UTF_8);
         }
     }
 }

Modified: 
xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/StoreTestsXqrl.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/StoreTestsXqrl.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/StoreTestsXqrl.java 
(original)
+++ xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/StoreTestsXqrl.java 
Sun Feb  6 01:51:55 2022
@@ -17,42 +17,37 @@ package xmlcursor.xquery.detailed;
 
 import org.apache.xmlbeans.XmlCursor;
 import org.apache.xmlbeans.XmlObject;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.*;
 
 
 //Used to be a checkin
 public class StoreTestsXqrl {
-    private void doTokenTest(String xml) throws Exception {
+    @ParameterizedTest
+    @ValueSource(strings = {
+        "<foo xmlns=\"foo.com\"><bar>1</bar></foo>",
+        "<foo><!--comment--><?target foo?></foo>",
+        "<foo>a<bar>b</bar>c<bar>d</bar>e</foo>",
+        "<foo xmlns:x=\"y\"><bar xmlns:x=\"z\"/></foo>",
+        "<foo x=\"y\" p=\"r\"/>",
+        "<bar>xxxxsssssssssssssss</bar>"
+    })
+    void doSaveTest(String xml) throws Exception {
+        if (xml.startsWith("<bar>")) xml = xml.replace("s", 
"<foo>aaa</foo>bbb");
+
         try (XmlCursor c = XmlObject.Factory.parse(xml).newCursor();
-            XmlCursor cq = c.execQuery(".")) {
+             XmlCursor cq = c.execQuery(".")) {
             String s = cq.xmlText();
             assertEquals(s, xml);
         }
     }
 
-    private void doSaveTest(String xml) throws Exception {
-        doTokenTest(xml);
-    }
-
     @Test
-    public void testSaving() throws Exception {
-        doSaveTest("<foo xmlns=\"foo.com\"><bar>1</bar></foo>");
-        doSaveTest("<foo><!--comment--><?target foo?></foo>");
-        doSaveTest("<foo>a<bar>b</bar>c<bar>d</bar>e</foo>");
-        doSaveTest("<foo xmlns:x=\"y\"><bar xmlns:x=\"z\"/></foo>");
-        doSaveTest("<foo x=\"y\" p=\"r\"/>");
-
-        String s = "<foo>aaa</foo>bbb";
-        s = s + s + s + s + s + s + s + s + s + s + s + s + s + s + s;
-        s = "<bar>xxxx" + s + "</bar>";
-
-        doSaveTest(s);
-
-        XmlObject x =
-            XmlObject.Factory.parse("<foo xmlns:a='a.com'><bar 
xmlns:a='b.com'/></foo>");
+    void testSaving() throws Exception {
+        XmlObject x = XmlObject.Factory.parse("<foo xmlns:a='a.com'><bar 
xmlns:a='b.com'/></foo>");
 
         try (XmlCursor c = x.newCursor()) {
             c.toFirstChild();
@@ -71,30 +66,21 @@ public class StoreTestsXqrl {
         }
     }
 
-    public void testTextFrag(String actual, String expected) {
-        String pre = "<xml-fragment>";
-
-        String post = "</xml-fragment>";
-
-        assertTrue(actual.startsWith(pre));
-        assertTrue(actual.endsWith(post));
-
-        assertEquals(expected, actual.substring(
-            pre.length(), actual.length() - post.length()));
-    }
-
     //
     // Make sure XQuery works (tests the saver too)
     //
     @Test
-    public void testXQuery()
-        throws Exception {
+    void testXQuery() throws Exception {
+        String pre = "<xml-fragment>";
+        String post = "</xml-fragment>";
         try (XmlCursor c = XmlObject.Factory.parse(
                 "<foo><bar>1</bar><bar>2</bar></foo>").newCursor();
             XmlCursor cq = c.execQuery("for $b in //bar order by ($b) 
descending return $b")) {
-            String s = cq.xmlText();
+            String actual = cq.xmlText();
 
-            testTextFrag(s, "<bar>2</bar><bar>1</bar>");
+            assertTrue(actual.startsWith(pre));
+            assertTrue(actual.endsWith(post));
+            assertEquals("<bar>2</bar><bar>1</bar>", 
actual.substring(pre.length(), actual.length() - post.length()));
         }
 
         try (XmlCursor c = XmlObject.Factory.parse("<foo></foo>").newCursor()) 
{
@@ -105,14 +91,13 @@ public class StoreTestsXqrl {
 
             try (XmlCursor cq = c.execQuery(".")) {
                 String s = cq.xmlText();
-                assertEquals("<foo><boo:boo xmlns:boo=\"boo.com\"/></foo>",
-                    s);
+                assertEquals("<foo><boo:boo xmlns:boo=\"boo.com\"/></foo>", s);
             }
         }
     }
 
     @Test
-    public void testPathing() throws Exception {
+    void testPathing() throws Exception {
         XmlObject x =
             XmlObject.Factory.parse(
                 "<foo><bar>1</bar><bar>2</bar><bar>3</bar></foo>");
@@ -129,11 +114,9 @@ public class StoreTestsXqrl {
             assertTrue(c.toNextSelection());
             assertEquals("<bar>3</bar>", c.xmlText());
 
-            assertTrue(!c.toNextSelection());
+            assertFalse(c.toNextSelection());
 
-            x =
-                XmlObject.Factory.parse(
-                    "<foo><bar x='1'/><bar x='2'/><bar x='3'/></foo>");
+            x = XmlObject.Factory.parse("<foo><bar x='1'/><bar x='2'/><bar 
x='3'/></foo>");
         }
 
         try (XmlCursor c = x.newCursor()) {
@@ -152,10 +135,9 @@ public class StoreTestsXqrl {
             assertTrue(c.currentTokenType().isAttr());
             assertEquals("3", c.getTextValue());
 
-            assertTrue(!c.toNextSelection());
+            assertFalse(c.toNextSelection());
 
-            x = XmlObject.Factory.parse(
-                "<foo><bar>1</bar><bar>2</bar><bar>3</bar></foo>");
+            x = 
XmlObject.Factory.parse("<foo><bar>1</bar><bar>2</bar><bar>3</bar></foo>");
         }
 
         try (XmlCursor c = x.newCursor()) {
@@ -173,7 +155,7 @@ public class StoreTestsXqrl {
             assertTrue(c.currentTokenType().isText());
             assertEquals("3", c.getChars());
 
-            assertTrue(!c.toNextSelection());
+            assertFalse(c.toNextSelection());
         }
     }
 }

Modified: xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/XQueryTest.java
URL: 
http://svn.apache.org/viewvc/xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/XQueryTest.java?rev=1897795&r1=1897794&r2=1897795&view=diff
==============================================================================
--- xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/XQueryTest.java 
(original)
+++ xmlbeans/trunk/src/test/java/xmlcursor/xquery/detailed/XQueryTest.java Sun 
Feb  6 01:51:55 2022
@@ -14,34 +14,37 @@
  */
 package xmlcursor.xquery.detailed;
 
-import org.apache.xmlbeans.*;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.apache.xmlbeans.XmlCursor;
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlLong;
+import org.apache.xmlbeans.XmlObject;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import test.xbean.xmlcursor.xQueryInput.EmpT;
 import tools.util.JarUtil;
 
 import java.io.IOException;
-import java.io.InputStream;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static xmlcursor.common.BasicCursorTestCase.jcur;
+import static xmlcursor.common.BasicCursorTestCase.jobj;
 
 public class XQueryTest {
     @Test
-    @Ignore("XQuery on Cursor is invalid")
+    @Disabled("XQuery on Cursor is invalid")
     public void testSimple() throws XmlException, IOException {
         String xq = "for $e in //employee where $e/name='Bob' return  $e ";
         String xq1 = "for $e in //employee return  $e ";
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
 
-        XmlObject o = XmlObject.Factory.parse(input);
+        XmlObject o = jobj("xbean/xmlcursor/XQueryInput.xml");
         try (XmlCursor c = o.newCursor();
             XmlCursor c1 = c.execQuery(xq)) {
             c1.toFirstContentToken();
             assertEquals("<employee>\n" +
-                         "\t\t<name>Bob</name>\n" +
-                         "\t\t<ssn>1000</ssn>\n" +
-                         "\t</employee>", c1.xmlText());
+                                    "\t\t<name>Bob</name>\n" +
+                                    "\t\t<ssn>1000</ssn>\n" +
+                                    "\t</employee>", c1.xmlText());
         }
 
         XmlObject[] res = o.execQuery(xq);
@@ -50,58 +53,48 @@ public class XQueryTest {
     }
 
     @Test
-    public void testObjConstruction() throws XmlException, IOException {
+    void testObjConstruction() throws XmlException, IOException {
         String query = 
JarUtil.getResourceFromJar("xbean/xmlcursor/xquery/Constructor.xq");
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
-        XmlObject o = XmlObject.Factory.parse(input);
+        XmlObject o = jobj("xbean/xmlcursor/XQueryInput.xml");
         //via Object
         XmlObject[] reslt = o.execQuery(query);
         assertEquals(3, reslt.length);
-        assertEquals("<person><name>Bob</name></person>",
-            reslt[0].xmlText());
-        assertEquals("<person><name>Beth</name></person>",
-            reslt[1].xmlText());
-        assertEquals("<person><name>NotBob</name></person>",
-            reslt[2].xmlText());
+        assertEquals("<person><name>Bob</name></person>", reslt[0].xmlText());
+        assertEquals("<person><name>Beth</name></person>", reslt[1].xmlText());
+        assertEquals("<person><name>NotBob</name></person>", 
reslt[2].xmlText());
 
         try (XmlCursor c = o.newCursor()) {
-            int i = 0;
-            while (i++ < 2) {
+            for (int i = 0; i < 2; i++) {
                 //via Cursor--new
                 try (XmlCursor c1 = c.execQuery(query)) {
                     //c.dispose();
                     assertEquals(XmlCursor.TokenType.STARTDOC, 
c1.currentTokenType());
                     assertEquals(XmlCursor.TokenType.START, c1.toNextToken());
-                    assertEquals("<person><name>Bob</name></person>",
-                        c1.xmlText());
+                    assertEquals("<person><name>Bob</name></person>", 
c1.xmlText());
                     // assertTrue(c1.toNextSelection());
                     assertTrue(c1.toNextSibling());
-                    assertEquals("<person><name>Beth</name></person>",
-                        c1.xmlText());
+                    assertEquals("<person><name>Beth</name></person>", 
c1.xmlText());
                     //assertTrue(c1.toNextSelection());
                     assertTrue(c1.toNextSibling());
-                    assertEquals("<person><name>NotBob</name></person>",
-                        c1.xmlText());
+                    assertEquals("<person><name>NotBob</name></person>", 
c1.xmlText());
                 }
             }
         }
     }
 
     @Test
-    public void testJoin() throws XmlException, IOException {
+    void testJoin() throws XmlException, IOException {
         String query = 
JarUtil.getResourceFromJar("xbean/xmlcursor/xquery/Join.xq");
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
-        XmlObject o = XmlObject.Factory.parse(input);
+        XmlObject o = jobj("xbean/xmlcursor/XQueryInput.xml");
 
         try (XmlCursor c = o.newCursor();
             XmlCursor c1 = c.execQuery(query)) {
             c1.toFirstContentToken();
             assertEquals("<result>" +
-                         "<ssn>1000</ssn>,\n" +
-                         "\t\t<name>Bob</name>,\n" +
-                         "\t\t<name>NotBob</name>" +
-                         "</result>",
-                c1.xmlText());
+                                    "<ssn>1000</ssn>,\n" +
+                                    "\t\t<name>Bob</name>,\n" +
+                                    "\t\t<name>NotBob</name>" +
+                                    "</result>", c1.xmlText());
 /*          assertEquals("<xml-fragment>" +
                 "<result>" +
                 "<ssn>1000</ssn>,\n" +
@@ -125,51 +118,45 @@ public class XQueryTest {
     }
 
     @Test
-    public void testTextSequenceRootObject() throws XmlException, IOException {
+    void testTextSequenceRootObject() throws XmlException, IOException {
         //String query = "$this//text()";
         String query = ".//text()";
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
-        XmlObject o = XmlObject.Factory.parse(input);
+        XmlObject o = jobj("xbean/xmlcursor/XQueryInput.xml");
         XmlObject[] res = o.execQuery(query);
         assertEquals(19, res.length);
-        input.close();
     }
 
     @Test
-    @Ignore("Cursor support for //text() is invalid")
+    @Disabled("Cursor support for //text() is invalid")
     public void testTextSequenceRootCursor() throws XmlException, IOException {
         String query = ".//text()";
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
-        XmlObject o = XmlObject.Factory.parse(input);
+        XmlObject o = jobj("xbean/xmlcursor/XQueryInput.xml");
         try (XmlCursor c = o.newCursor();
             XmlCursor c1 = c.execQuery(query)) {
-            assertEquals(XmlCursor.TokenType.TEXT,c1.toNextToken());
+            assertEquals(XmlCursor.TokenType.TEXT, c1.toNextToken());
             //assertEquals(19, c1.getSelectionCount());
             c.close(); // make sure this doesn't screw things up
             while (c1.toNextSibling()) {
                 assertEquals(XmlCursor.TokenType.TEXT, c1.currentTokenType());
             }
             c1.toStartDoc();
-            assertEquals("<xml-fragment>Bob</xml-fragment>",
-                    c1.xmlText());
+            assertEquals("<xml-fragment>Bob</xml-fragment>", c1.xmlText());
         }
     }
 
     @Test
-    @Ignore("still bugged")
+    @Disabled("still bugged")
     public void testDocumentFunc() throws XmlException, IOException {
         //String query = "<result>{$this},{count(//employee)}</result>";
         String query = "<result>{.},{count(//employee)}</result>";
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
-        try (XmlCursor c = XmlObject.Factory.parse(input).newCursor();
+        try (XmlCursor c = jcur("xbean/xmlcursor/XQueryInput.xml");
             XmlCursor c1 = c.execQuery(query)) {
-            assertEquals("",
-                c1.xmlText());
+            assertEquals("", c1.xmlText());
         }
     }
 
     @Test
-    public void testTextAtOddPlaces() throws Exception {
+    void testTextAtOddPlaces() throws Exception {
         //String query = "<result>{$this},{count(//employee)}</result>";
         String query = "<result>{.},{count(//employee)}</result>";
         String input = "<foo><a><b>text</b>more text</a></foo>";
@@ -188,19 +175,17 @@ public class XQueryTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testMultiDocJoin() throws XmlException, IOException {
         String query = 
JarUtil.getResourceFromJar("xbean/xmlcursor/xquery/2DocJoin.xq");
-        InputStream input = 
JarUtil.getResourceFromJarasStream("xbean/xmlcursor/XQueryInput.xml");
-        try (XmlCursor c = XmlObject.Factory.parse(input).newCursor();
+        try (XmlCursor c = jcur("xbean/xmlcursor/XQueryInput.xml");
             XmlCursor c1 = c.execQuery(query)) {
-            assertEquals("",
-                c1.xmlText());
+            assertEquals("", c1.xmlText());
         }
     }
 
     @Test
-    public void testFunction() throws Exception {
+    void testFunction() throws Exception {
         String query =
             " declare function local:summary($emps as element(employee)*) \n" +
             "   as element(dept)*\n" +
@@ -245,20 +230,17 @@ public class XQueryTest {
         XmlObject o = XmlObject.Factory.parse(xml);
         XmlObject[] res = o.execQuery(query);
         assertEquals(2, res.length);
-        
assertEquals("<dept><deptno>7</deptno><headcount>2</headcount><payroll>30</payroll></dept>",
-            res[0].xmlText());
-        
assertEquals("<dept><deptno>5</deptno><headcount>1</headcount><payroll>40</payroll></dept>",
-            res[1].xmlText());
+        
assertEquals("<dept><deptno>7</deptno><headcount>2</headcount><payroll>30</payroll></dept>",
 res[0].xmlText());
+        
assertEquals("<dept><deptno>5</deptno><headcount>1</headcount><payroll>40</payroll></dept>",
 res[1].xmlText());
         try (XmlCursor c = o.newCursor();
             XmlCursor c1 = c.execQuery(query)) {
             c1.toFirstContentToken();
-            assertEquals(res[0].xmlText(),
-                c1.xmlText());
+            assertEquals(res[0].xmlText(), c1.xmlText());
         }
     }
 
     @Test
-    public void testType() throws Exception {
+    void testType() throws Exception {
         String xml = "<a><b></b><b></b></a>";
         String query = "count(//b)";
         XmlObject o = XmlObject.Factory.parse(xml);
@@ -269,7 +251,7 @@ public class XQueryTest {
     }
 
     @Test
-    public void testQueryComment() throws Exception {
+    void testQueryComment() throws Exception {
         String xml = "<a><b></b><b></b></a>";
         String query = "(:comment:) count(//b)";
         XmlObject o = XmlObject.Factory.parse(xml);
@@ -280,7 +262,7 @@ public class XQueryTest {
     }
 
     @Test
-    @Ignore
+    @Disabled
     public void testStandaloneFunction() throws Exception {
         String query =
             "<results>\n" +



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to