This is an automated email from the ASF dual-hosted git repository.

veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git


The following commit(s) were added to refs/heads/master by this push:
     new bd0038434 Migrate CrossOMTestSuiteBuilder to MatrixTestNode framework
bd0038434 is described below

commit bd00384348700089bd8f1591e96832f7b61bb89d
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Mar 8 09:56:42 2026 +0000

    Migrate CrossOMTestSuiteBuilder to MatrixTestNode framework
    
    Replace the JUnit 3 MatrixTestSuiteBuilder/MatrixTestCase pattern with the
    JUnit 5 MatrixTestNode pattern using Guice injection:
    
    - CrossOMTestCase: extend TestCase directly, use @Inject @Named fields
    - Test cases: remove constructors, use @Inject for dimension values
    - CrossOMTestSuite: new factory class with InjectorNode and fan-out nodes
    - Consumer tests: use @TestFactory returning Stream<DynamicNode>
    - LLOM2DOOMTest exclusions: convert to MatrixTestFilters
    - cross-om-tests pom.xml: replace junit-vintage-engine with junit-jupiter
    - Delete CrossOMTestSuiteBuilder
---
 systests/cross-om-tests/pom.xml                    |  4 +-
 .../src/test/java/DOOM2LLOMTest.java               | 20 +++----
 .../src/test/java/LLOM2DOOMTest.java               | 27 +++++-----
 .../apache/axiom/ts/om/cross/CrossOMTestCase.java  | 20 ++++---
 .../apache/axiom/ts/om/cross/CrossOMTestSuite.java | 61 ++++++++++++++++++++++
 .../axiom/ts/om/cross/CrossOMTestSuiteBuilder.java | 45 ----------------
 .../org/apache/axiom/ts/om/cross/TestAddChild.java |  5 --
 .../ts/om/cross/TestImportInformationItem.java     | 15 +++---
 .../axiom/ts/om/cross/TestInsertSibling.java       | 15 +++---
 9 files changed, 111 insertions(+), 101 deletions(-)

diff --git a/systests/cross-om-tests/pom.xml b/systests/cross-om-tests/pom.xml
index fb87d4835..a8a4958a8 100644
--- a/systests/cross-om-tests/pom.xml
+++ b/systests/cross-om-tests/pom.xml
@@ -50,8 +50,8 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/systests/cross-om-tests/src/test/java/DOOM2LLOMTest.java 
b/systests/cross-om-tests/src/test/java/DOOM2LLOMTest.java
index d8618cc05..56912c213 100644
--- a/systests/cross-om-tests/src/test/java/DOOM2LLOMTest.java
+++ b/systests/cross-om-tests/src/test/java/DOOM2LLOMTest.java
@@ -16,19 +16,19 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import java.util.stream.Stream;
 
 import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.ts.om.cross.CrossOMTestSuiteBuilder;
+import org.apache.axiom.ts.om.cross.CrossOMTestSuite;
+import org.junit.jupiter.api.DynamicNode;
+import org.junit.jupiter.api.TestFactory;
 
-public class DOOM2LLOMTest extends TestCase {
-    public static TestSuite suite() {
-        CrossOMTestSuiteBuilder builder =
-                new CrossOMTestSuiteBuilder(
+public class DOOM2LLOMTest {
+    @TestFactory
+    public Stream<DynamicNode> crossOMTests() {
+        return CrossOMTestSuite.create(
                         OMAbstractFactory.getMetaFactory(),
-                        
OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM));
-
-        return builder.build();
+                        
OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM))
+                .toDynamicNodes();
     }
 }
diff --git a/systests/cross-om-tests/src/test/java/LLOM2DOOMTest.java 
b/systests/cross-om-tests/src/test/java/LLOM2DOOMTest.java
index c8c3eddb1..7e5d5a2e4 100644
--- a/systests/cross-om-tests/src/test/java/LLOM2DOOMTest.java
+++ b/systests/cross-om-tests/src/test/java/LLOM2DOOMTest.java
@@ -16,23 +16,24 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import java.util.stream.Stream;
 
 import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.ts.om.cross.CrossOMTestSuiteBuilder;
+import org.apache.axiom.testutils.suite.MatrixTestFilters;
+import org.apache.axiom.ts.om.cross.CrossOMTestSuite;
 import org.apache.axiom.ts.om.cross.TestInsertSibling;
+import org.junit.jupiter.api.DynamicNode;
+import org.junit.jupiter.api.TestFactory;
 
-public class LLOM2DOOMTest extends TestCase {
-    public static TestSuite suite() {
-        CrossOMTestSuiteBuilder builder =
-                new CrossOMTestSuiteBuilder(
-                        
OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM),
-                        OMAbstractFactory.getMetaFactory());
-
+public class LLOM2DOOMTest {
+    @TestFactory
+    public Stream<DynamicNode> crossOMTests() {
         // TODO
-        builder.exclude(TestInsertSibling.class);
-
-        return builder.build();
+        MatrixTestFilters excludes =
+                
MatrixTestFilters.builder().add(TestInsertSibling.class).build();
+        return CrossOMTestSuite.create(
+                        
OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM),
+                        OMAbstractFactory.getMetaFactory())
+                .toDynamicNodes(excludes);
     }
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestCase.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestCase.java
index 7ddf7e45e..fc28f9193 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestCase.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestCase.java
@@ -18,15 +18,19 @@
  */
 package org.apache.axiom.ts.om.cross;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+import junit.framework.TestCase;
+
 import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.testutils.suite.MatrixTestCase;
 
-public abstract class CrossOMTestCase extends MatrixTestCase {
-    protected final OMMetaFactory metaFactory;
-    protected final OMMetaFactory altMetaFactory;
+public abstract class CrossOMTestCase extends TestCase {
+    @Inject
+    @Named("metaFactory")
+    protected OMMetaFactory metaFactory;
 
-    public CrossOMTestCase(OMMetaFactory metaFactory, OMMetaFactory 
altMetaFactory) {
-        this.metaFactory = metaFactory;
-        this.altMetaFactory = altMetaFactory;
-    }
+    @Inject
+    @Named("altMetaFactory")
+    protected OMMetaFactory altMetaFactory;
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
new file mode 100644
index 000000000..02f04b07c
--- /dev/null
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuite.java
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.axiom.ts.om.cross;
+
+import org.apache.axiom.om.OMMetaFactory;
+import org.apache.axiom.testing.multiton.Multiton;
+import org.apache.axiom.testutils.suite.InjectorNode;
+import org.apache.axiom.testutils.suite.MatrixTest;
+import org.apache.axiom.testutils.suite.ParameterFanOutNode;
+import org.apache.axiom.ts.xml.XMLSample;
+
+import com.google.common.collect.ImmutableList;
+import com.google.inject.AbstractModule;
+import com.google.inject.name.Names;
+
+public class CrossOMTestSuite {
+    public static InjectorNode create(OMMetaFactory metaFactory, OMMetaFactory 
altMetaFactory) {
+        return new InjectorNode(
+                new AbstractModule() {
+                    @Override
+                    protected void configure() {
+                        bind(OMMetaFactory.class)
+                                .annotatedWith(Names.named("metaFactory"))
+                                .toInstance(metaFactory);
+                        bind(OMMetaFactory.class)
+                                .annotatedWith(Names.named("altMetaFactory"))
+                                .toInstance(altMetaFactory);
+                    }
+                },
+                ImmutableList.of(
+                        new MatrixTest(TestAddChild.class),
+                        new ParameterFanOutNode<>(
+                                XMLSample.class,
+                                Multiton.getInstances(XMLSample.class),
+                                "file",
+                                XMLSample::getName,
+                                new 
MatrixTest(TestImportInformationItem.class)),
+                        new ParameterFanOutNode<>(
+                                Boolean.class,
+                                ImmutableList.of(false, true),
+                                "before",
+                                String::valueOf,
+                                new MatrixTest(TestInsertSibling.class))));
+    }
+}
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuiteBuilder.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuiteBuilder.java
deleted file mode 100644
index 062a2117f..000000000
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/CrossOMTestSuiteBuilder.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.axiom.ts.om.cross;
-
-import static org.apache.axiom.testing.multiton.Multiton.getInstances;
-
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.testutils.suite.MatrixTestSuiteBuilder;
-import org.apache.axiom.ts.xml.XMLSample;
-
-public class CrossOMTestSuiteBuilder extends MatrixTestSuiteBuilder {
-    private final OMMetaFactory metaFactory;
-    private final OMMetaFactory altMetaFactory;
-
-    public CrossOMTestSuiteBuilder(OMMetaFactory metaFactory, OMMetaFactory 
altMetaFactory) {
-        this.metaFactory = metaFactory;
-        this.altMetaFactory = altMetaFactory;
-    }
-
-    @Override
-    protected void addTests() {
-        addTest(new TestAddChild(metaFactory, altMetaFactory));
-        for (XMLSample file : getInstances(XMLSample.class)) {
-            addTest(new TestImportInformationItem(metaFactory, altMetaFactory, 
file));
-        }
-        addTest(new TestInsertSibling(metaFactory, altMetaFactory, false));
-        addTest(new TestInsertSibling(metaFactory, altMetaFactory, true));
-    }
-}
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestAddChild.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestAddChild.java
index f25dbe925..4d8272806 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestAddChild.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestAddChild.java
@@ -21,13 +21,8 @@ package org.apache.axiom.ts.om.cross;
 import static com.google.common.truth.Truth.assertThat;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 
 public class TestAddChild extends CrossOMTestCase {
-    public TestAddChild(OMMetaFactory metaFactory, OMMetaFactory 
altMetaFactory) {
-        super(metaFactory, altMetaFactory);
-    }
-
     @Override
     protected void runTest() throws Throwable {
         OMElement parent = 
metaFactory.getOMFactory().createOMElement("parent", null);
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestImportInformationItem.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestImportInformationItem.java
index 79cc8f162..765423920 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestImportInformationItem.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestImportInformationItem.java
@@ -21,20 +21,17 @@ package org.apache.axiom.ts.om.cross;
 import static com.google.common.truth.Truth.assertAbout;
 import static org.apache.axiom.truth.xml.XMLTruth.xml;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 import org.apache.axiom.om.OMDocument;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.ts.om.XMLSampleAdapter;
 import org.apache.axiom.ts.xml.XMLSample;
 
 public class TestImportInformationItem extends CrossOMTestCase {
-    private final XMLSample file;
-
-    public TestImportInformationItem(
-            OMMetaFactory metaFactory, OMMetaFactory altMetaFactory, XMLSample 
file) {
-        super(metaFactory, altMetaFactory);
-        this.file = file;
-        addTestParameter("file", file.getName());
-    }
+    @Inject
+    @Named("file")
+    private XMLSample file;
 
     @Override
     protected void runTest() throws Throwable {
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestInsertSibling.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestInsertSibling.java
index 1e417a106..ca0d05cbb 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestInsertSibling.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/cross/TestInsertSibling.java
@@ -20,21 +20,18 @@ package org.apache.axiom.ts.om.cross;
 
 import static com.google.common.truth.Truth.assertThat;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 import org.apache.axiom.om.OMComment;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMText;
 
 public class TestInsertSibling extends CrossOMTestCase {
-    private final boolean before;
-
-    public TestInsertSibling(
-            OMMetaFactory metaFactory, OMMetaFactory altMetaFactory, boolean 
before) {
-        super(metaFactory, altMetaFactory);
-        this.before = before;
-        addTestParameter("before", before);
-    }
+    @Inject
+    @Named("before")
+    private boolean before;
 
     @Override
     protected void runTest() throws Throwable {

Reply via email to