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 1bad1bd24 Migrate OMDOMTestSuiteBuilder to new matrix test framework
1bad1bd24 is described below

commit 1bad1bd2416f0a47bf19f80b4e8c4c7be3e0c78d
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Mar 8 18:28:28 2026 +0000

    Migrate OMDOMTestSuiteBuilder to new matrix test framework
    
    Replace OMDOMTestSuiteBuilder (JUnit 3 MatrixTestSuiteBuilder) with
    OMDOMTestSuite using InjectorNode/ParameterFanOutNode/MatrixTest and
    Guice dependency injection.
    
    - Create OMDOMTestSuite with static create(DOMMetaFactory) method
    - Create OMDOMTestCase base class with @Inject DOMMetaFactory field
    - Update all 28 omdom test cases to extend OMDOMTestCase, removing
      constructors and DOMMetaFactory casts
    - Migrate OMDOMImplementationTest to JUnit 5 @TestFactory
    - Add junit-jupiter dependency to axiom-dom
    - Delete OMDOMTestSuiteBuilder
---
 implementations/axiom-dom/pom.xml                  |   5 +
 .../axiom/om/impl/dom/OMDOMImplementationTest.java |  16 +--
 .../org/apache/axiom/ts/omdom/OMDOMTestCase.java   |  16 +--
 .../org/apache/axiom/ts/omdom/OMDOMTestSuite.java  | 122 +++++++++++++++++++++
 .../axiom/ts/omdom/OMDOMTestSuiteBuilder.java      |  93 ----------------
 .../ts/omdom/attr/TestGetNamespaceNormalized.java  |  16 +--
 .../attr/TestSetValueOnNamespaceDeclaration.java   |  16 +--
 .../omdom/document/TestAppendChildForbidden.java   |  18 ++-
 .../TestCreateDocumentFragmentInterfaces.java      |  15 +--
 .../axiom/ts/omdom/document/TestGetOMFactory1.java |  15 +--
 .../axiom/ts/omdom/document/TestGetOMFactory2.java |  14 +--
 .../axiom/ts/omdom/document/TestImportNode.java    |  21 ++--
 .../omdom/document/TestInsertBeforeForbidden.java  |  18 ++-
 .../ts/omdom/element/TestAddAttributeReplace.java  |   9 +-
 .../element/TestAddChildFromForeignDocument.java   |  13 +--
 .../omdom/element/TestAppendChildIncomplete.java   |   9 +-
 .../ts/omdom/element/TestCloneNodeIncomplete.java  |   9 +-
 .../axiom/ts/omdom/element/TestCloneOMElement.java |   9 +-
 .../apache/axiom/ts/omdom/element/TestDetach.java  |  15 +--
 .../omdom/element/TestGetNamespaceNormalized.java  |  16 +--
 .../omdom/element/TestInsertBeforeIncomplete.java  |   9 +-
 .../ts/omdom/element/TestRemoveAttribute.java      |   9 +-
 .../TestRemoveAttributeNSNamespaceDeclaration.java |   9 +-
 .../ts/omdom/element/TestRemoveAttributeNode.java  |   9 +-
 .../omdom/element/TestRemoveChildIncomplete.java   |   9 +-
 .../element/TestReplaceChildFirstIncomplete.java   |   9 +-
 .../element/TestReplaceChildMiddleIncomplete.java  |   9 +-
 .../ts/omdom/factory/TestCreateOMAttribute.java    |   9 +-
 .../factory/TestCreateOMTextCDATASection.java      |   9 +-
 .../TestCreateOMTextCDATASectionWithParent.java    |   9 +-
 .../TestInsertSiblingAfterFromForeignDocument.java |  13 +--
 ...TestInsertSiblingBeforeFromForeignDocument.java |  13 +--
 .../axiom/ts/omdom/text/TestCloneNodeBinary.java   |   9 +-
 .../ts/omdom/text/TestGetNodeValueBinary.java      |   9 +-
 34 files changed, 228 insertions(+), 371 deletions(-)

diff --git a/implementations/axiom-dom/pom.xml 
b/implementations/axiom-dom/pom.xml
index 1b96c6ef6..5e4f4f028 100644
--- a/implementations/axiom-dom/pom.xml
+++ b/implementations/axiom-dom/pom.xml
@@ -68,6 +68,11 @@
             <artifactId>junit-vintage-engine</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>commons-logging</groupId>
             <artifactId>commons-logging</artifactId>
diff --git 
a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
 
b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
index 07fe8a8ea..1e0c5fecc 100644
--- 
a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
+++ 
b/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
@@ -18,16 +18,16 @@
  */
 package org.apache.axiom.om.impl.dom;
 
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import java.util.stream.Stream;
 
 import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
-import org.apache.axiom.ts.omdom.OMDOMTestSuiteBuilder;
+import org.apache.axiom.ts.omdom.OMDOMTestSuite;
+import org.junit.jupiter.api.TestFactory;
+import org.junit.jupiter.api.DynamicNode;
 
-public class OMDOMImplementationTest extends TestCase {
-    public static TestSuite suite() {
-        OMDOMTestSuiteBuilder builder =
-                new OMDOMTestSuiteBuilder(new 
OMDOMMetaFactoryLoader().load(null));
-        return builder.build();
+public class OMDOMImplementationTest {
+    @TestFactory
+    public Stream<DynamicNode> tests() {
+        return OMDOMTestSuite.create(new 
OMDOMMetaFactoryLoader().load(null)).toDynamicNodes();
     }
 }
diff --git 
a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestCase.java
similarity index 65%
copy from 
implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
copy to 
testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestCase.java
index 07fe8a8ea..065c0fe8a 100644
--- 
a/implementations/axiom-dom/src/test/java/org/apache/axiom/om/impl/dom/OMDOMImplementationTest.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestCase.java
@@ -16,18 +16,14 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.om.impl.dom;
+package org.apache.axiom.ts.omdom;
+
+import com.google.inject.Inject;
 
 import junit.framework.TestCase;
-import junit.framework.TestSuite;
 
-import org.apache.axiom.om.impl.dom.factory.OMDOMMetaFactoryLoader;
-import org.apache.axiom.ts.omdom.OMDOMTestSuiteBuilder;
+import org.apache.axiom.om.dom.DOMMetaFactory;
 
-public class OMDOMImplementationTest extends TestCase {
-    public static TestSuite suite() {
-        OMDOMTestSuiteBuilder builder =
-                new OMDOMTestSuiteBuilder(new 
OMDOMMetaFactoryLoader().load(null));
-        return builder.build();
-    }
+public abstract class OMDOMTestCase extends TestCase {
+    @Inject protected DOMMetaFactory metaFactory;
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
new file mode 100644
index 000000000..92383a551
--- /dev/null
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuite.java
@@ -0,0 +1,122 @@
+/*
+ * 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.omdom;
+
+import org.apache.axiom.om.dom.DOMMetaFactory;
+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;
+
+/**
+ * Builds a test suite for Axiom implementations that also implement DOM. Note 
that this test suite
+ * only contains tests that depend on Axiom specific features. Pure DOM tests 
(that are executable
+ * with a standard DOM implementation) should go to <code>dom-testsuite</code>.
+ */
+public class OMDOMTestSuite {
+    public static InjectorNode create(DOMMetaFactory metaFactory) {
+        return new InjectorNode(
+                new AbstractModule() {
+                    @Override
+                    protected void configure() {
+                        bind(DOMMetaFactory.class).toInstance(metaFactory);
+                    }
+                },
+                ImmutableList.of(
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.attr.TestGetNamespaceNormalized.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.attr.TestSetValueOnNamespaceDeclaration
+                                        .class),
+                        new ParameterFanOutNode<>(
+                                Boolean.class,
+                                ImmutableList.of(true, false),
+                                "build",
+                                String::valueOf,
+                                ImmutableList.of(
+                                        new MatrixTest(
+                                                
org.apache.axiom.ts.omdom.document
+                                                        
.TestAppendChildForbidden.class),
+                                        new MatrixTest(
+                                                
org.apache.axiom.ts.omdom.document
+                                                        
.TestInsertBeforeForbidden.class))),
+                        new MatrixTest(
+                                org.apache.axiom.ts.omdom.document
+                                        
.TestCreateDocumentFragmentInterfaces.class),
+                        new 
MatrixTest(org.apache.axiom.ts.omdom.document.TestGetOMFactory1.class),
+                        new 
MatrixTest(org.apache.axiom.ts.omdom.document.TestGetOMFactory2.class),
+                        new ParameterFanOutNode<>(
+                                XMLSample.class,
+                                Multiton.getInstances(XMLSample.class),
+                                "file",
+                                XMLSample::getName,
+                                new MatrixTest(
+                                        
org.apache.axiom.ts.omdom.document.TestImportNode.class)),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestAddAttributeReplace.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestAddChildFromForeignDocument
+                                        .class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestAppendChildIncomplete.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestCloneNodeIncomplete.class),
+                        new 
MatrixTest(org.apache.axiom.ts.omdom.element.TestCloneOMElement.class),
+                        new 
MatrixTest(org.apache.axiom.ts.omdom.element.TestDetach.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestGetNamespaceNormalized.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestInsertBeforeIncomplete.class),
+                        new 
MatrixTest(org.apache.axiom.ts.omdom.element.TestRemoveAttribute.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestRemoveAttributeNode.class),
+                        new MatrixTest(
+                                org.apache.axiom.ts.omdom.element
+                                        
.TestRemoveAttributeNSNamespaceDeclaration.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestRemoveChildIncomplete.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestReplaceChildFirstIncomplete
+                                        .class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.element.TestReplaceChildMiddleIncomplete
+                                        .class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.factory.TestCreateOMAttribute.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.factory.TestCreateOMTextCDATASection
+                                        .class),
+                        new MatrixTest(
+                                org.apache.axiom.ts.omdom.factory
+                                        
.TestCreateOMTextCDATASectionWithParent.class),
+                        new MatrixTest(
+                                org.apache.axiom.ts.omdom.node
+                                        
.TestInsertSiblingAfterFromForeignDocument.class),
+                        new MatrixTest(
+                                org.apache.axiom.ts.omdom.node
+                                        
.TestInsertSiblingBeforeFromForeignDocument.class),
+                        new 
MatrixTest(org.apache.axiom.ts.omdom.text.TestCloneNodeBinary.class),
+                        new MatrixTest(
+                                
org.apache.axiom.ts.omdom.text.TestGetNodeValueBinary.class)));
+    }
+}
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuiteBuilder.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuiteBuilder.java
deleted file mode 100644
index 0467a9618..000000000
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/OMDOMTestSuiteBuilder.java
+++ /dev/null
@@ -1,93 +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.omdom;
-
-import static org.apache.axiom.testing.multiton.Multiton.getInstances;
-
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.testutils.suite.MatrixTestSuiteBuilder;
-import org.apache.axiom.ts.xml.XMLSample;
-
-/**
- * Builds a test suite for Axiom implementations that also implement DOM. Note 
that this test suite
- * only contains tests that depend on Axiom specific features. Pure DOM tests 
(that are executable
- * with a standard DOM implementation) should go to <code>dom-testsuite</code>.
- */
-public class OMDOMTestSuiteBuilder extends MatrixTestSuiteBuilder {
-    private final DOMMetaFactory metaFactory;
-
-    public OMDOMTestSuiteBuilder(DOMMetaFactory metaFactory) {
-        this.metaFactory = metaFactory;
-    }
-
-    @Override
-    protected void addTests() {
-        addTest(new 
org.apache.axiom.ts.omdom.attr.TestGetNamespaceNormalized(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.attr.TestSetValueOnNamespaceDeclaration(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.document.TestAppendChildForbidden(metaFactory, true));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.document.TestAppendChildForbidden(
-                        metaFactory, false));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.document.TestCreateDocumentFragmentInterfaces(
-                        metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.document.TestGetOMFactory1(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.document.TestGetOMFactory2(metaFactory));
-        for (XMLSample sample : getInstances(XMLSample.class)) {
-            addTest(new 
org.apache.axiom.ts.omdom.document.TestImportNode(metaFactory, sample));
-        }
-        addTest(
-                new 
org.apache.axiom.ts.omdom.document.TestInsertBeforeForbidden(
-                        metaFactory, true));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.document.TestInsertBeforeForbidden(
-                        metaFactory, false));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestAddAttributeReplace(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestAddChildFromForeignDocument(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestAppendChildIncomplete(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestCloneNodeIncomplete(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestCloneOMElement(metaFactory));
-        addTest(new org.apache.axiom.ts.omdom.element.TestDetach(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestGetNamespaceNormalized(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestInsertBeforeIncomplete(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestRemoveAttribute(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestRemoveAttributeNode(metaFactory));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.element.TestRemoveAttributeNSNamespaceDeclaration(
-                        metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestRemoveChildIncomplete(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.element.TestReplaceChildFirstIncomplete(metaFactory));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.element.TestReplaceChildMiddleIncomplete(
-                        metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.factory.TestCreateOMAttribute(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.factory.TestCreateOMTextCDATASection(metaFactory));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.factory.TestCreateOMTextCDATASectionWithParent(
-                        metaFactory));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.node.TestInsertSiblingAfterFromForeignDocument(
-                        metaFactory));
-        addTest(
-                new 
org.apache.axiom.ts.omdom.node.TestInsertSiblingBeforeFromForeignDocument(
-                        metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.text.TestCloneNodeBinary(metaFactory));
-        addTest(new 
org.apache.axiom.ts.omdom.text.TestGetNodeValueBinary(metaFactory));
-    }
-}
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestGetNamespaceNormalized.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestGetNamespaceNormalized.java
index 2cace3db7..93924562a 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestGetNamespaceNormalized.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestGetNamespaceNormalized.java
@@ -19,10 +19,8 @@
 package org.apache.axiom.ts.omdom.attr;
 
 import org.apache.axiom.om.OMAttribute;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNamedInformationItem;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 
@@ -30,18 +28,10 @@ import org.w3c.dom.Document;
  * Tests that the return value of {@link 
OMNamedInformationItem#getNamespace()} is correctly
  * normalized for attributes created using {@link 
Document#createAttributeNS(String, String)}.
  */
-public class TestGetNamespaceNormalized extends AxiomTestCase {
-    public TestGetNamespaceNormalized(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestGetNamespaceNormalized extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
-        Document doc =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+        Document doc = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         Attr attr = doc.createAttributeNS(null, "attr");
         assertNull(((OMAttribute) attr).getNamespace());
     }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestSetValueOnNamespaceDeclaration.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestSetValueOnNamespaceDeclaration.java
index 80837a564..2e66bb2ad 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestSetValueOnNamespaceDeclaration.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/attr/TestSetValueOnNamespaceDeclaration.java
@@ -25,10 +25,8 @@ import java.util.Iterator;
 import javax.xml.XMLConstants;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -37,18 +35,10 @@ import org.w3c.dom.Element;
  * Tests that after calling {@link Attr#setValue(String)} on a namespace 
declaration the new
  * namespace URI is reflected in the result of {@link 
OMElement#getAllDeclaredNamespaces()}.
  */
-public class TestSetValueOnNamespaceDeclaration extends AxiomTestCase {
-    public TestSetValueOnNamespaceDeclaration(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestSetValueOnNamespaceDeclaration extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
-        Document doc =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+        Document doc = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         Element element = doc.createElementNS("", "test");
         Attr attr = doc.createAttributeNS(XMLConstants.XMLNS_ATTRIBUTE_NS_URI, 
"xmlns:attr");
         element.setAttributeNodeNS(attr);
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestAppendChildForbidden.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestAppendChildForbidden.java
index 3312b196c..019328fa5 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestAppendChildForbidden.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestAppendChildForbidden.java
@@ -23,20 +23,18 @@ import static com.google.common.truth.Truth.assertThat;
 import java.io.StringReader;
 
 import org.apache.axiom.om.OMDocument;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
 
-public class TestAppendChildForbidden extends AxiomTestCase {
-    private final boolean build;
-
-    public TestAppendChildForbidden(OMMetaFactory metaFactory, boolean build) {
-        super(metaFactory);
-        this.build = build;
-        addTestParameter("build", build);
-    }
+public class TestAppendChildForbidden extends OMDOMTestCase {
+    @Inject
+    @Named("build")
+    private boolean build;
 
     @Override
     protected void runTest() throws Throwable {
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestCreateDocumentFragmentInterfaces.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestCreateDocumentFragmentInterfaces.java
index 729328dd9..f082c22bb 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestCreateDocumentFragmentInterfaces.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestCreateDocumentFragmentInterfaces.java
@@ -19,9 +19,7 @@
 package org.apache.axiom.ts.omdom.document;
 
 import org.apache.axiom.om.OMInformationItem;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentFragment;
 
@@ -29,18 +27,11 @@ import org.w3c.dom.DocumentFragment;
  * Tests that the {@link DocumentFragment} instances created by {@link
  * Document#createDocumentFragment()} don't implement any Axiom interfaces.
  */
-public class TestCreateDocumentFragmentInterfaces extends AxiomTestCase {
-    public TestCreateDocumentFragmentInterfaces(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCreateDocumentFragmentInterfaces extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         Document document =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+                
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         DocumentFragment fragment = document.createDocumentFragment();
         assertFalse(fragment instanceof OMInformationItem);
     }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory1.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory1.java
index 2d20ab107..fef37ed66 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory1.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory1.java
@@ -22,27 +22,18 @@ import javax.xml.parsers.DocumentBuilder;
 
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMInformationItem;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 
 /**
  * Tests that {@link OMInformationItem#getOMFactory()} returns the expected 
instance for a {@link
  * Document} created with the {@link DocumentBuilder#newDocument()}.
  */
-public class TestGetOMFactory1 extends AxiomTestCase {
-    public TestGetOMFactory1(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestGetOMFactory1 extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         Document document =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+                
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         assertSame(metaFactory.getOMFactory(), ((OMDocument) 
document).getOMFactory());
     }
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory2.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory2.java
index 6585fc03b..d73a4a3d6 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory2.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestGetOMFactory2.java
@@ -20,9 +20,7 @@ package org.apache.axiom.ts.omdom.document;
 
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMInformationItem;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.DOMImplementation;
 import org.w3c.dom.Document;
 import org.w3c.dom.DocumentType;
@@ -32,17 +30,11 @@ import org.w3c.dom.DocumentType;
  * Document} created with the {@link DOMImplementation#createDocument(String, 
String,
  * DocumentType)}.
  */
-public class TestGetOMFactory2 extends AxiomTestCase {
-    public TestGetOMFactory2(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestGetOMFactory2 extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         Document document =
-                ((DOMMetaFactory) metaFactory)
-                        .getDOMImplementation()
-                        .createDocument("urn:test", "root", null);
+                metaFactory.getDOMImplementation().createDocument("urn:test", 
"root", null);
         assertSame(metaFactory.getOMFactory(), ((OMDocument) 
document).getOMFactory());
     }
 }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestImportNode.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestImportNode.java
index 68fd5756e..ed5965148 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestImportNode.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestImportNode.java
@@ -23,9 +23,7 @@ import static com.google.common.truth.Truth.assertAbout;
 import static org.apache.axiom.truth.xml.XMLTruth.xml;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.ConformanceTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.apache.axiom.ts.jaxp.dom.DOMImplementation;
 import org.apache.axiom.ts.xml.XMLSample;
 import org.w3c.dom.Document;
@@ -33,19 +31,18 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.xml.sax.InputSource;
 
-public class TestImportNode extends ConformanceTestCase {
-    public TestImportNode(OMMetaFactory metaFactory, XMLSample file) {
-        super(metaFactory, file);
-    }
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+public class TestImportNode extends OMDOMTestCase {
+    @Inject
+    @Named("file")
+    private XMLSample file;
 
     @Override
     protected void runTest() throws Throwable {
         Document doc = DOMImplementation.XERCES.parse(new 
InputSource(file.getUrl().toString()));
-        Document doc2 =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+        Document doc2 = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         Node n = doc2.importNode(doc.getDocumentElement(), true);
         assertAbout(xml())
                 .that(xml(OMElement.class, (OMElement) n))
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestInsertBeforeForbidden.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestInsertBeforeForbidden.java
index d76de4ff7..03a4a0ccd 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestInsertBeforeForbidden.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/document/TestInsertBeforeForbidden.java
@@ -23,21 +23,19 @@ import static com.google.common.truth.Truth.assertThat;
 import java.io.StringReader;
 
 import org.apache.axiom.om.OMDocument;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Comment;
 import org.w3c.dom.DOMException;
 import org.w3c.dom.Document;
 
-public class TestInsertBeforeForbidden extends AxiomTestCase {
-    private final boolean build;
-
-    public TestInsertBeforeForbidden(OMMetaFactory metaFactory, boolean build) 
{
-        super(metaFactory);
-        this.build = build;
-        addTestParameter("build", build);
-    }
+public class TestInsertBeforeForbidden extends OMDOMTestCase {
+    @Inject
+    @Named("build")
+    private boolean build;
 
     @Override
     protected void runTest() throws Throwable {
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddAttributeReplace.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddAttributeReplace.java
index 5e036db1c..285447242 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddAttributeReplace.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddAttributeReplace.java
@@ -21,8 +21,7 @@ package org.apache.axiom.ts.omdom.element;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -31,11 +30,7 @@ import org.w3c.dom.Element;
  * Tests that the owner document of an attribute changes if it is removed from 
its owner element as
  * a side effect of {@link OMElement#addAttribute(OMAttribute)}.
  */
-public class TestAddAttributeReplace extends AxiomTestCase {
-    public TestAddAttributeReplace(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestAddAttributeReplace extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddChildFromForeignDocument.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddChildFromForeignDocument.java
index 666446aca..6aafb8fd3 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddChildFromForeignDocument.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAddChildFromForeignDocument.java
@@ -22,10 +22,8 @@ import javax.xml.parsers.DocumentBuilder;
 
 import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -33,15 +31,10 @@ import org.w3c.dom.Element;
  * Tests that {@link OMContainer#addChild(OMNode)} automatically adopts (in 
the sense of DOM) the
  * child node if it doesn't have the same owner document.
  */
-public class TestAddChildFromForeignDocument extends AxiomTestCase {
-    public TestAddChildFromForeignDocument(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestAddChildFromForeignDocument extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
-        DocumentBuilder db =
-                ((DOMMetaFactory) 
metaFactory).newDocumentBuilderFactory().newDocumentBuilder();
+        DocumentBuilder db = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder();
         Document document1 = db.newDocument();
         Element element1 = document1.createElementNS(null, "element1");
         Document document2 = db.newDocument();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAppendChildIncomplete.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAppendChildIncomplete.java
index 2a35b45d0..196813026 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAppendChildIncomplete.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestAppendChildIncomplete.java
@@ -21,9 +21,8 @@ package org.apache.axiom.ts.omdom.element;
 import java.io.StringReader;
 
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -35,11 +34,7 @@ import org.w3c.dom.NodeList;
  *
  * @see TestInsertBeforeIncomplete
  */
-public class TestAppendChildIncomplete extends AxiomTestCase {
-    public TestAppendChildIncomplete(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestAppendChildIncomplete extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneNodeIncomplete.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneNodeIncomplete.java
index d2980d0e2..ba717c29f 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneNodeIncomplete.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneNodeIncomplete.java
@@ -23,18 +23,13 @@ import static org.apache.axiom.truth.xml.XMLTruth.xml;
 
 import java.io.StringReader;
 
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
 /** Tests {@link Node#cloneNode(boolean)} on an element that is not completely 
built. */
-public class TestCloneNodeIncomplete extends AxiomTestCase {
-    public TestCloneNodeIncomplete(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCloneNodeIncomplete extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         Element element =
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneOMElement.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneOMElement.java
index 7ee46d26f..ecffdb155 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneOMElement.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestCloneOMElement.java
@@ -20,19 +20,14 @@ package org.apache.axiom.ts.omdom.element;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Element;
 
 /**
  * Tests that the element returned by {@link OMElement#cloneOMElement()} has a 
different owner
  * document than the original element.
  */
-public class TestCloneOMElement extends AxiomTestCase {
-    public TestCloneOMElement(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCloneOMElement extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestDetach.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestDetach.java
index 7dc3591a1..553a6753f 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestDetach.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestDetach.java
@@ -19,10 +19,8 @@
 package org.apache.axiom.ts.omdom.element;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -30,18 +28,11 @@ import org.w3c.dom.Element;
  * Tests that after a node has been removed from its parent using {@link 
OMNode#detach()}, it will
  * have a new owner document.
  */
-public class TestDetach extends AxiomTestCase {
-    public TestDetach(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestDetach extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         Document document =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+                
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         Element parent = document.createElementNS(null, "parent");
         Element child = document.createElementNS(null, "child");
         parent.appendChild(child);
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestGetNamespaceNormalized.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestGetNamespaceNormalized.java
index 16d7c1096..8d32d58f6 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestGetNamespaceNormalized.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestGetNamespaceNormalized.java
@@ -19,10 +19,8 @@
 package org.apache.axiom.ts.omdom.element;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNamedInformationItem;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
@@ -30,18 +28,10 @@ import org.w3c.dom.Element;
  * Tests that the return value of {@link 
OMNamedInformationItem#getNamespace()} is correctly
  * normalized for elements created using {@link 
Document#createElementNS(String, String)}.
  */
-public class TestGetNamespaceNormalized extends AxiomTestCase {
-    public TestGetNamespaceNormalized(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestGetNamespaceNormalized extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
-        Document doc =
-                ((DOMMetaFactory) metaFactory)
-                        .newDocumentBuilderFactory()
-                        .newDocumentBuilder()
-                        .newDocument();
+        Document doc = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder().newDocument();
         Element element = doc.createElementNS(null, "test");
         assertNull(((OMElement) element).getNamespace());
     }
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestInsertBeforeIncomplete.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestInsertBeforeIncomplete.java
index 098a58229..dcfa59aeb 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestInsertBeforeIncomplete.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestInsertBeforeIncomplete.java
@@ -21,9 +21,8 @@ package org.apache.axiom.ts.omdom.element;
 import java.io.StringReader;
 
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
@@ -37,11 +36,7 @@ import org.w3c.dom.NodeList;
  *
  * @see TestAppendChildIncomplete
  */
-public class TestInsertBeforeIncomplete extends AxiomTestCase {
-    public TestInsertBeforeIncomplete(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestInsertBeforeIncomplete extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttribute.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttribute.java
index 988e7d6d3..29c85271c 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttribute.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttribute.java
@@ -21,8 +21,7 @@ package org.apache.axiom.ts.omdom.element;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -31,11 +30,7 @@ import org.w3c.dom.Element;
  * Tests that the owner document of an attribute changes if it is removed 
using {@link
  * OMElement#removeAttribute(OMAttribute)}.
  */
-public class TestRemoveAttribute extends AxiomTestCase {
-    public TestRemoveAttribute(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestRemoveAttribute extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNSNamespaceDeclaration.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNSNamespaceDeclaration.java
index a16e4601d..5b3cdce10 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNSNamespaceDeclaration.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNSNamespaceDeclaration.java
@@ -22,19 +22,14 @@ import javax.xml.XMLConstants;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Element;
 
 /**
  * Tests that {@link Element#removeAttributeNS(String, String)} can be used to 
remove a namespace
  * declaration.
  */
-public class TestRemoveAttributeNSNamespaceDeclaration extends AxiomTestCase {
-    public TestRemoveAttributeNSNamespaceDeclaration(OMMetaFactory 
metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestRemoveAttributeNSNamespaceDeclaration extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNode.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNode.java
index 0c265a8b7..ad90da719 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNode.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveAttributeNode.java
@@ -23,8 +23,7 @@ import static com.google.common.truth.Truth.assertThat;
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Attr;
 import org.w3c.dom.Element;
 
@@ -33,11 +32,7 @@ import org.w3c.dom.Element;
  * same owner document as the element. This test case uses a scenario where 
the element is created
  * using the Axiom API, i.e. where the owner document is created lazily.
  */
-public class TestRemoveAttributeNode extends AxiomTestCase {
-    public TestRemoveAttributeNode(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestRemoveAttributeNode extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveChildIncomplete.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveChildIncomplete.java
index a578806ce..6ed9d91ee 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveChildIncomplete.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestRemoveChildIncomplete.java
@@ -18,9 +18,8 @@
  */
 package org.apache.axiom.ts.omdom.element;
 
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.util.AXIOMUtil;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -28,11 +27,7 @@ import org.w3c.dom.Node;
  * Tests the behavior of {@link Node#removeChild(Node)} on an element that has 
not been built
  * completely.
  */
-public class TestRemoveChildIncomplete extends AxiomTestCase {
-    public TestRemoveChildIncomplete(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestRemoveChildIncomplete extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         Element element =
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildFirstIncomplete.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildFirstIncomplete.java
index b78ff38a4..9dd80d38f 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildFirstIncomplete.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildFirstIncomplete.java
@@ -21,9 +21,8 @@ package org.apache.axiom.ts.omdom.element;
 import java.io.StringReader;
 
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -32,11 +31,7 @@ import org.w3c.dom.NodeList;
  * Tests the behavior of {@link Node#replaceChild(Node, Node)} on an element 
that has not been built
  * completely. This test covers the case where the child being replaced is the 
first child.
  */
-public class TestReplaceChildFirstIncomplete extends AxiomTestCase {
-    public TestReplaceChildFirstIncomplete(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestReplaceChildFirstIncomplete extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildMiddleIncomplete.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildMiddleIncomplete.java
index 18ab46afa..0ed6e461d 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildMiddleIncomplete.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/element/TestReplaceChildMiddleIncomplete.java
@@ -21,9 +21,8 @@ package org.apache.axiom.ts.omdom.element;
 import java.io.StringReader;
 
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -34,11 +33,7 @@ import org.w3c.dom.NodeList;
  * last child. This is a regression test for <a
  * href="https://issues.apache.org/jira/browse/AXIOM-432";>AXIOM-432</a>.
  */
-public class TestReplaceChildMiddleIncomplete extends AxiomTestCase {
-    public TestReplaceChildMiddleIncomplete(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestReplaceChildMiddleIncomplete extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMAttribute.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMAttribute.java
index 8941f06d5..b6c5dc430 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMAttribute.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMAttribute.java
@@ -20,15 +20,10 @@ package org.apache.axiom.ts.omdom.factory;
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Attr;
 
-public class TestCreateOMAttribute extends AxiomTestCase {
-    public TestCreateOMAttribute(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCreateOMAttribute extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASection.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASection.java
index 56b94263f..3b7b97a7d 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASection.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASection.java
@@ -19,21 +19,16 @@
 package org.apache.axiom.ts.omdom.factory;
 
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.CDATASection;
 
 /**
  * Tests that {@link OMFactory#createOMText(String, int)} creates a node that 
implements {@link
  * CDATASection} if the specified type is {@link OMNode#CDATA_SECTION_NODE}.
  */
-public class TestCreateOMTextCDATASection extends AxiomTestCase {
-    public TestCreateOMTextCDATASection(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCreateOMTextCDATASection extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMText text =
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASectionWithParent.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASectionWithParent.java
index 338a0e78e..c38839d8c 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASectionWithParent.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/factory/TestCreateOMTextCDATASectionWithParent.java
@@ -21,21 +21,16 @@ package org.apache.axiom.ts.omdom.factory;
 import org.apache.axiom.om.OMContainer;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.CDATASection;
 
 /**
  * Tests that {@link OMFactory#createOMText(OMContainer, String, int)} creates 
a node that
  * implements {@link CDATASection} if the specified type is {@link 
OMNode#CDATA_SECTION_NODE}.
  */
-public class TestCreateOMTextCDATASectionWithParent extends AxiomTestCase {
-    public TestCreateOMTextCDATASectionWithParent(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCreateOMTextCDATASectionWithParent extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingAfterFromForeignDocument.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingAfterFromForeignDocument.java
index e91c95cb9..dcd5d6658 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingAfterFromForeignDocument.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingAfterFromForeignDocument.java
@@ -21,10 +21,8 @@ package org.apache.axiom.ts.omdom.node;
 import javax.xml.parsers.DocumentBuilder;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Text;
@@ -33,15 +31,10 @@ import org.w3c.dom.Text;
  * Tests that {@link OMNode#insertSiblingAfter(OMNode)} automatically adopts 
(in the sense of DOM)
  * the sibling if it doesn't have the same owner document.
  */
-public class TestInsertSiblingAfterFromForeignDocument extends AxiomTestCase {
-    public TestInsertSiblingAfterFromForeignDocument(OMMetaFactory 
metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestInsertSiblingAfterFromForeignDocument extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
-        DocumentBuilder db =
-                ((DOMMetaFactory) 
metaFactory).newDocumentBuilderFactory().newDocumentBuilder();
+        DocumentBuilder db = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder();
         Document document1 = db.newDocument();
         Element element1 = document1.createElementNS(null, "element1");
         Text text = document1.createTextNode("test");
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingBeforeFromForeignDocument.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingBeforeFromForeignDocument.java
index 0890dfd39..3996e6214 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingBeforeFromForeignDocument.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/node/TestInsertSiblingBeforeFromForeignDocument.java
@@ -21,10 +21,8 @@ package org.apache.axiom.ts.omdom.node;
 import javax.xml.parsers.DocumentBuilder;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.dom.DOMMetaFactory;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Text;
@@ -33,15 +31,10 @@ import org.w3c.dom.Text;
  * Tests that {@link OMNode#insertSiblingBefore(OMNode)} automatically adopts 
(in the sense of DOM)
  * the sibling if it doesn't have the same owner document.
  */
-public class TestInsertSiblingBeforeFromForeignDocument extends AxiomTestCase {
-    public TestInsertSiblingBeforeFromForeignDocument(OMMetaFactory 
metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestInsertSiblingBeforeFromForeignDocument extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
-        DocumentBuilder db =
-                ((DOMMetaFactory) 
metaFactory).newDocumentBuilderFactory().newDocumentBuilder();
+        DocumentBuilder db = 
metaFactory.newDocumentBuilderFactory().newDocumentBuilder();
         Document document1 = db.newDocument();
         Element element1 = document1.createElementNS(null, "element1");
         Text text = document1.createTextNode("test");
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestCloneNodeBinary.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestCloneNodeBinary.java
index 567885178..c3a9787e3 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestCloneNodeBinary.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestCloneNodeBinary.java
@@ -20,16 +20,11 @@ package org.apache.axiom.ts.omdom.text;
 
 import org.apache.axiom.blob.Blob;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.testutils.blob.RandomBlob;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.w3c.dom.Text;
 
-public class TestCloneNodeBinary extends AxiomTestCase {
-    public TestCloneNodeBinary(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestCloneNodeBinary extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();
diff --git 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestGetNodeValueBinary.java
 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestGetNodeValueBinary.java
index bd8c0da9d..e7ce415dc 100644
--- 
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestGetNodeValueBinary.java
+++ 
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/omdom/text/TestGetNodeValueBinary.java
@@ -24,18 +24,13 @@ import java.io.ByteArrayInputStream;
 
 import org.apache.axiom.blob.Blob;
 import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
 import org.apache.axiom.testutils.blob.RandomBlob;
 import org.apache.axiom.testutils.io.IOTestUtils;
-import org.apache.axiom.ts.AxiomTestCase;
+import org.apache.axiom.ts.omdom.OMDOMTestCase;
 import org.apache.commons.codec.binary.Base64;
 import org.w3c.dom.Text;
 
-public class TestGetNodeValueBinary extends AxiomTestCase {
-    public TestGetNodeValueBinary(OMMetaFactory metaFactory) {
-        super(metaFactory);
-    }
-
+public class TestGetNodeValueBinary extends OMDOMTestCase {
     @Override
     protected void runTest() throws Throwable {
         OMFactory factory = metaFactory.getOMFactory();

Reply via email to