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 {