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 00cabee8b Migrate WritableBlobTestSuiteBuilder to MatrixTestNode 
framework
00cabee8b is described below

commit 00cabee8b9b2b578d9f17dd870964a16177dc7c1
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Thu Mar 19 23:28:17 2026 +0000

    Migrate WritableBlobTestSuiteBuilder to MatrixTestNode framework
    
    Replace WritableBlobTestSuiteBuilder with a declarative 
WritableBlobTestSuite
    factory using InjectorNode, FanOutNode, ConditionalNode, and MatrixTest.
    
    - WritableBlobTestCase: extends TestCase instead of MatrixTestCase
    - SizeSensitiveWritableBlobTestCase: remove addTestParameter
    - Simple test classes: add @Inject to constructors
    - State-parameterized test classes: add @Inject, remove addTestParameters
    - Size-sensitive test classes: add @Inject and @Named("size")
    - Consumer classes: replace JUnit 3 suite() with JUnit 5 @TestFactory
    - pom.xml: replace junit/junit-vintage-engine with junit-jupiter/guice
    - Delete WritableBlobTestSuiteBuilder
---
 components/blob/pom.xml                            |  8 +-
 .../java/org/apache/axiom/blob/MemoryBlobTest.java | 19 +++--
 .../apache/axiom/blob/OverflowableBlobTest.java    | 20 +++--
 .../org/apache/axiom/blob/TempFileBlobTest.java    | 20 +++--
 .../suite/SizeSensitiveWritableBlobTestCase.java   |  1 -
 .../org/apache/axiom/blob/suite/TestAvailable.java |  3 +
 .../blob/suite/TestGetInputStreamIllegalState.java |  4 +-
 .../suite/TestGetOutputStreamIllegalState.java     |  4 +-
 .../axiom/blob/suite/TestGetSizeIllegalState.java  |  4 +-
 .../org/apache/axiom/blob/suite/TestMarkReset.java |  6 +-
 .../axiom/blob/suite/TestRandomReadWrite.java      |  6 +-
 .../org/apache/axiom/blob/suite/TestReadEOF.java   |  3 +
 .../org/apache/axiom/blob/suite/TestReadFrom.java  |  6 +-
 .../axiom/blob/suite/TestReadFromIllegalState.java |  4 +-
 .../axiom/blob/suite/TestReadFromSupport.java      |  6 +-
 .../axiom/blob/suite/TestReadFromWithError.java    |  3 +
 .../axiom/blob/suite/TestReadZeroLength.java       |  3 +
 .../apache/axiom/blob/suite/TestReleaseTwice.java  |  3 +
 .../axiom/blob/suite/TestResetWithoutMark.java     |  3 +
 .../java/org/apache/axiom/blob/suite/TestSkip.java |  3 +
 .../axiom/blob/suite/TestWriteAfterCommit.java     |  3 +
 .../org/apache/axiom/blob/suite/TestWriteTo.java   |  6 +-
 .../axiom/blob/suite/TestWriteToIllegalState.java  |  4 +-
 .../axiom/blob/suite/TestWriteToWithError.java     |  6 +-
 .../blob/suite/TestWriteToWithReadFromSupport.java |  6 +-
 .../axiom/blob/suite/WritableBlobTestCase.java     |  5 +-
 .../axiom/blob/suite/WritableBlobTestSuite.java    | 90 ++++++++++++++++++++++
 .../blob/suite/WritableBlobTestSuiteBuilder.java   | 84 --------------------
 28 files changed, 207 insertions(+), 126 deletions(-)

diff --git a/components/blob/pom.xml b/components/blob/pom.xml
index 311f466d0..f98f6b1e2 100644
--- a/components/blob/pom.xml
+++ b/components/blob/pom.xml
@@ -41,13 +41,13 @@
             <artifactId>commons-logging</artifactId>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.junit.vintage</groupId>
-            <artifactId>junit-vintage-engine</artifactId>
+            <groupId>com.google.inject</groupId>
+            <artifactId>guice</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java 
b/components/blob/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java
index f6cdfda32..13d1e38e8 100644
--- a/components/blob/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java
+++ b/components/blob/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java
@@ -18,14 +18,19 @@
  */
 package org.apache.axiom.blob;
 
-import org.apache.axiom.blob.suite.WritableBlobTestSuiteBuilder;
+import java.util.stream.Stream;
 
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.apache.axiom.blob.suite.WritableBlobTestSuite;
+import org.junit.jupiter.api.DynamicNode;
+import org.junit.jupiter.api.TestFactory;
 
-public class MemoryBlobTest extends TestCase {
-    public static TestSuite suite() {
-        return new WritableBlobTestSuiteBuilder(MemoryBlob.FACTORY, new int[] 
{10000}, true, false)
-                .build();
+import com.google.common.collect.ImmutableList;
+
+public class MemoryBlobTest {
+    @TestFactory
+    public Stream<DynamicNode> tests() {
+        return WritableBlobTestSuite.create(
+                        MemoryBlob.FACTORY, ImmutableList.of(10000), true, 
false)
+                .toDynamicNodes();
     }
 }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java 
b/components/blob/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java
index 448f4924e..6ca76cc7e 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java
@@ -18,18 +18,22 @@
  */
 package org.apache.axiom.blob;
 
-import org.apache.axiom.blob.suite.WritableBlobTestSuiteBuilder;
+import java.util.stream.Stream;
 
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.apache.axiom.blob.suite.WritableBlobTestSuite;
+import org.junit.jupiter.api.DynamicNode;
+import org.junit.jupiter.api.TestFactory;
 
-public class OverflowableBlobTest extends TestCase {
-    public static TestSuite suite() {
-        return new WritableBlobTestSuiteBuilder(
+import com.google.common.collect.ImmutableList;
+
+public class OverflowableBlobTest {
+    @TestFactory
+    public Stream<DynamicNode> tests() {
+        return WritableBlobTestSuite.create(
                         () -> Blobs.createOverflowableBlob(16 * 1024, "test", 
".dat", null),
-                        new int[] {10000, 16 * 1024, 100000},
+                        ImmutableList.of(10000, 16 * 1024, 100000),
                         true,
                         false)
-                .build();
+                .toDynamicNodes();
     }
 }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java 
b/components/blob/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java
index 61cfda5d6..83e2cd1d5 100644
--- a/components/blob/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java
+++ b/components/blob/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java
@@ -18,18 +18,22 @@
  */
 package org.apache.axiom.blob;
 
-import org.apache.axiom.blob.suite.WritableBlobTestSuiteBuilder;
+import java.util.stream.Stream;
 
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
+import org.apache.axiom.blob.suite.WritableBlobTestSuite;
+import org.junit.jupiter.api.DynamicNode;
+import org.junit.jupiter.api.TestFactory;
 
-public class TempFileBlobTest extends TestCase {
-    public static TestSuite suite() {
-        return new WritableBlobTestSuiteBuilder(
+import com.google.common.collect.ImmutableList;
+
+public class TempFileBlobTest {
+    @TestFactory
+    public Stream<DynamicNode> tests() {
+        return WritableBlobTestSuite.create(
                         new TempFileBlobFactory("test", ".dat", null),
-                        new int[] {10000},
+                        ImmutableList.of(10000),
                         false,
                         true)
-                .build();
+                .toDynamicNodes();
     }
 }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
index cc08ee818..850a4275e 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
@@ -27,6 +27,5 @@ public abstract class SizeSensitiveWritableBlobTestCase 
extends WritableBlobTest
             WritableBlobFactory<?> factory, State initialState, int size) {
         super(factory, initialState);
         this.size = size;
-        addTestParameter("size", size);
     }
 }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java
index 58977a7ad..6c75f5530 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java
@@ -27,7 +27,10 @@ import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+
 public class TestAvailable extends WritableBlobTestCase {
+    @Inject
     public TestAvailable(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
index 40dc42578..083c39fd9 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
@@ -23,10 +23,12 @@ import static 
org.assertj.core.api.Assertions.assertThatThrownBy;
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 
+import com.google.inject.Inject;
+
 public class TestGetInputStreamIllegalState extends WritableBlobTestCase {
+    @Inject
     public TestGetInputStreamIllegalState(WritableBlobFactory<?> factory, 
State state) {
         super(factory, state);
-        state.addTestParameters(this);
     }
 
     @Override
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
index 1e1fc7da1..656645705 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
@@ -23,10 +23,12 @@ import static 
org.assertj.core.api.Assertions.assertThatThrownBy;
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 
+import com.google.inject.Inject;
+
 public class TestGetOutputStreamIllegalState extends WritableBlobTestCase {
+    @Inject
     public TestGetOutputStreamIllegalState(WritableBlobFactory<?> factory, 
State state) {
         super(factory, state);
-        state.addTestParameters(this);
     }
 
     @Override
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
index f2e0d7759..3d112b747 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
@@ -23,10 +23,12 @@ import static 
org.assertj.core.api.Assertions.assertThatThrownBy;
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 
+import com.google.inject.Inject;
+
 public class TestGetSizeIllegalState extends WritableBlobTestCase {
+    @Inject
     public TestGetSizeIllegalState(WritableBlobFactory<?> factory, State 
state) {
         super(factory, state);
-        state.addTestParameters(this);
     }
 
     @Override
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
index a68a34117..98c81bffc 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
@@ -28,8 +28,12 @@ import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.IOUtils;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestMarkReset extends SizeSensitiveWritableBlobTestCase {
-    public TestMarkReset(WritableBlobFactory<?> factory, int size) {
+    @Inject
+    public TestMarkReset(WritableBlobFactory<?> factory, @Named("size") int 
size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
index 292227858..0f858ac5b 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
@@ -27,8 +27,12 @@ import java.util.Random;
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestRandomReadWrite extends SizeSensitiveWritableBlobTestCase {
-    public TestRandomReadWrite(WritableBlobFactory<?> factory, int size) {
+    @Inject
+    public TestRandomReadWrite(WritableBlobFactory<?> factory, @Named("size") 
int size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java
index 1a28ddc34..2e638af2a 100644
--- a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java
+++ b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java
@@ -27,7 +27,10 @@ import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+
 public class TestReadEOF extends WritableBlobTestCase {
+    @Inject
     public TestReadEOF(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
index 5d6e4c766..f93fc92f1 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
@@ -29,8 +29,12 @@ import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.axiom.testutils.io.InstrumentedInputStream;
 import org.apache.commons.io.IOUtils;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestReadFrom extends SizeSensitiveWritableBlobTestCase {
-    public TestReadFrom(WritableBlobFactory<?> factory, int size) {
+    @Inject
+    public TestReadFrom(WritableBlobFactory<?> factory, @Named("size") int 
size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
index 6d6cfb0af..29b5f4e56 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
@@ -24,10 +24,12 @@ import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+
 public class TestReadFromIllegalState extends WritableBlobTestCase {
+    @Inject
     public TestReadFromIllegalState(WritableBlobFactory<?> factory, State 
state) {
         super(factory, state);
-        state.addTestParameters(this);
     }
 
     @Override
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
index 104fd1dc5..99eef7ecd 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
@@ -31,8 +31,12 @@ import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.axiom.ext.io.ReadFromSupport;
 import org.apache.commons.io.IOUtils;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestReadFromSupport extends SizeSensitiveWritableBlobTestCase {
-    public TestReadFromSupport(WritableBlobFactory<?> factory, int size) {
+    @Inject
+    public TestReadFromSupport(WritableBlobFactory<?> factory, @Named("size") 
int size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
index 2893629ca..787a6a52c 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
@@ -27,7 +27,10 @@ import org.apache.axiom.ext.io.StreamCopyException;
 import org.apache.axiom.testutils.io.ExceptionInputStream;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+
 public class TestReadFromWithError extends WritableBlobTestCase {
+    @Inject
     public TestReadFromWithError(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
index 4c296511a..644f35bb2 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
@@ -27,7 +27,10 @@ import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+
 public class TestReadZeroLength extends WritableBlobTestCase {
+    @Inject
     public TestReadZeroLength(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
index 7ca26ff07..f39ad92d6 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
@@ -21,7 +21,10 @@ package org.apache.axiom.blob.suite;
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 
+import com.google.inject.Inject;
+
 public class TestReleaseTwice extends WritableBlobTestCase {
+    @Inject
     public TestReleaseTwice(WritableBlobFactory<?> factory) {
         super(factory, State.RELEASED);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
index b6261a267..3bfbeaa48 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
@@ -28,7 +28,10 @@ import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.IOUtils;
 
+import com.google.inject.Inject;
+
 public class TestResetWithoutMark extends WritableBlobTestCase {
+    @Inject
     public TestResetWithoutMark(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestSkip.java 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestSkip.java
index 2fa2fd621..e9ee4bf4c 100644
--- a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestSkip.java
+++ b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestSkip.java
@@ -27,7 +27,10 @@ import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.IOUtils;
 
+import com.google.inject.Inject;
+
 public class TestSkip extends WritableBlobTestCase {
+    @Inject
     public TestSkip(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
index 17693271c..97784a954 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
@@ -26,7 +26,10 @@ import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.axiom.ext.io.ReadFromSupport;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+
 public class TestWriteAfterCommit extends WritableBlobTestCase {
+    @Inject
     public TestWriteAfterCommit(WritableBlobFactory<?> factory) {
         super(factory, State.NEW);
     }
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
index 52f6dee0b..e71ed6643 100644
--- a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
+++ b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
@@ -28,8 +28,12 @@ import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.axiom.testutils.io.InstrumentedOutputStream;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestWriteTo extends SizeSensitiveWritableBlobTestCase {
-    public TestWriteTo(WritableBlobFactory<?> factory, int size) {
+    @Inject
+    public TestWriteTo(WritableBlobFactory<?> factory, @Named("size") int 
size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
index 4187c2e55..cf90094ae 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
@@ -24,10 +24,12 @@ import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 import org.apache.commons.io.output.NullOutputStream;
 
+import com.google.inject.Inject;
+
 public class TestWriteToIllegalState extends WritableBlobTestCase {
+    @Inject
     public TestWriteToIllegalState(WritableBlobFactory<?> factory, State 
state) {
         super(factory, state);
-        state.addTestParameters(this);
     }
 
     @Override
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
index 62d4026d3..937a21cf7 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
@@ -27,8 +27,12 @@ import org.apache.axiom.ext.io.StreamCopyException;
 import org.apache.axiom.testutils.io.ExceptionOutputStream;
 import org.apache.commons.io.input.NullInputStream;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestWriteToWithError extends SizeSensitiveWritableBlobTestCase {
-    public TestWriteToWithError(WritableBlobFactory<?> factory, int size) {
+    @Inject
+    public TestWriteToWithError(WritableBlobFactory<?> factory, @Named("size") 
int size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
index 022bca77f..d4525111e 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
@@ -26,8 +26,12 @@ import java.util.Random;
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
 
+import com.google.inject.Inject;
+import com.google.inject.name.Named;
+
 public class TestWriteToWithReadFromSupport extends 
SizeSensitiveWritableBlobTestCase {
-    public TestWriteToWithReadFromSupport(WritableBlobFactory<?> factory, int 
size) {
+    @Inject
+    public TestWriteToWithReadFromSupport(WritableBlobFactory<?> factory, 
@Named("size") int size) {
         super(factory, State.NEW, size);
     }
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
index 304f59c9a..cb0f9cf93 100644
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
@@ -20,9 +20,10 @@ package org.apache.axiom.blob.suite;
 
 import org.apache.axiom.blob.WritableBlob;
 import org.apache.axiom.blob.WritableBlobFactory;
-import org.apache.axiom.testutils.suite.MatrixTestCase;
 
-public abstract class WritableBlobTestCase extends MatrixTestCase {
+import junit.framework.TestCase;
+
+public abstract class WritableBlobTestCase extends TestCase {
     private final WritableBlobFactory<?> factory;
     private final State initialState;
 
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
new file mode 100644
index 000000000..f2352d2ee
--- /dev/null
+++ 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuite.java
@@ -0,0 +1,90 @@
+/*
+ * 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.blob.suite;
+
+import org.apache.axiom.blob.WritableBlobFactory;
+import org.apache.axiom.testutils.suite.ConditionalNode;
+import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.InjectorNode;
+import org.apache.axiom.testutils.suite.MatrixTest;
+import org.apache.axiom.testutils.suite.ParameterBinding;
+import org.apache.axiom.testutils.suite.ParentNode;
+
+import com.google.common.collect.ImmutableList;
+import com.google.inject.TypeLiteral;
+import com.google.inject.name.Names;
+
+public class WritableBlobTestSuite {
+    public static InjectorNode create(
+            WritableBlobFactory<?> factory,
+            ImmutableList<Integer> sizes,
+            boolean outputStreamHasReadFromSupport,
+            boolean writeToUsesReadFromSupport) {
+
+        return new InjectorNode(
+                binder ->
+                        binder.bind(new TypeLiteral<WritableBlobFactory<?>>() 
{})
+                                .toInstance(factory),
+                new ParentNode(
+                        new MatrixTest(TestAvailable.class),
+                        new MatrixTest(TestReadEOF.class),
+                        new MatrixTest(TestReadFromWithError.class),
+                        new MatrixTest(TestReadZeroLength.class),
+                        new MatrixTest(TestReleaseTwice.class),
+                        new MatrixTest(TestResetWithoutMark.class),
+                        new MatrixTest(TestSkip.class),
+                        new MatrixTest(TestWriteAfterCommit.class),
+                        new FanOutNode<>(
+                                ImmutableList.of(State.NEW, State.UNCOMMITTED, 
State.RELEASED),
+                                (binder, v) -> 
binder.bind(State.class).toInstance(v),
+                                ParameterBinding.DIMENSION,
+                                new ParentNode(
+                                        new 
MatrixTest(TestGetInputStreamIllegalState.class),
+                                        new 
MatrixTest(TestGetSizeIllegalState.class),
+                                        new 
MatrixTest(TestWriteToIllegalState.class))),
+                        new FanOutNode<>(
+                                ImmutableList.of(
+                                        State.UNCOMMITTED, State.COMMITTED, 
State.RELEASED),
+                                (binder, v) -> 
binder.bind(State.class).toInstance(v),
+                                ParameterBinding.DIMENSION,
+                                new ParentNode(
+                                        new 
MatrixTest(TestGetOutputStreamIllegalState.class),
+                                        new 
MatrixTest(TestReadFromIllegalState.class))),
+                        new FanOutNode<>(
+                                sizes,
+                                (binder, v) ->
+                                        binder.bindConstant()
+                                                
.annotatedWith(Names.named("size"))
+                                                .to(v),
+                                (params, v) -> params.addTestParameter("size", 
v),
+                                new ParentNode(
+                                        new MatrixTest(TestMarkReset.class),
+                                        new MatrixTest(TestReadFrom.class),
+                                        new 
MatrixTest(TestRandomReadWrite.class),
+                                        new MatrixTest(TestWriteTo.class),
+                                        new 
MatrixTest(TestWriteToWithError.class),
+                                        new ConditionalNode(
+                                                injector -> 
outputStreamHasReadFromSupport,
+                                                new 
MatrixTest(TestReadFromSupport.class)),
+                                        new ConditionalNode(
+                                                injector -> 
writeToUsesReadFromSupport,
+                                                new MatrixTest(
+                                                        
TestWriteToWithReadFromSupport.class))))));
+    }
+}
diff --git 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java
 
b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java
deleted file mode 100644
index 5c47c1357..000000000
--- 
a/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java
+++ /dev/null
@@ -1,84 +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.blob.suite;
-
-import org.apache.axiom.blob.WritableBlobFactory;
-import org.apache.axiom.testutils.suite.MatrixTestSuiteBuilder;
-
-public class WritableBlobTestSuiteBuilder extends MatrixTestSuiteBuilder {
-    private final WritableBlobFactory<?> factory;
-    private final int[] sizes;
-    private final boolean outputStreamHasReadFromSupport;
-    private final boolean writeToUsesReadFromSupport;
-
-    public WritableBlobTestSuiteBuilder(
-            WritableBlobFactory<?> factory,
-            int[] sizes,
-            boolean outputStreamHasReadFromSupport,
-            boolean writeToUsesReadFromSupport) {
-        this.factory = factory;
-        this.sizes = sizes;
-        this.outputStreamHasReadFromSupport = outputStreamHasReadFromSupport;
-        this.writeToUsesReadFromSupport = writeToUsesReadFromSupport;
-    }
-
-    @Override
-    protected void addTests() {
-        addTest(new TestAvailable(factory));
-        addTest(new TestGetInputStreamIllegalState(factory, State.NEW));
-        addTest(new TestGetInputStreamIllegalState(factory, 
State.UNCOMMITTED));
-        addTest(new TestGetInputStreamIllegalState(factory, State.RELEASED));
-        addTest(new TestGetOutputStreamIllegalState(factory, 
State.UNCOMMITTED));
-        addTest(new TestGetOutputStreamIllegalState(factory, State.COMMITTED));
-        addTest(new TestGetOutputStreamIllegalState(factory, State.RELEASED));
-        addTest(new TestGetSizeIllegalState(factory, State.NEW));
-        addTest(new TestGetSizeIllegalState(factory, State.UNCOMMITTED));
-        addTest(new TestGetSizeIllegalState(factory, State.RELEASED));
-        addTest(new TestReadEOF(factory));
-        addTest(new TestReadFromIllegalState(factory, State.UNCOMMITTED));
-        addTest(new TestReadFromIllegalState(factory, State.COMMITTED));
-        addTest(new TestReadFromIllegalState(factory, State.RELEASED));
-        addTest(new TestReadFromWithError(factory));
-        addTest(new TestReadZeroLength(factory));
-        addTest(new TestReleaseTwice(factory));
-        addTest(new TestResetWithoutMark(factory));
-        addTest(new TestSkip(factory));
-        addTest(new TestWriteAfterCommit(factory));
-        addTest(new TestWriteToIllegalState(factory, State.NEW));
-        addTest(new TestWriteToIllegalState(factory, State.UNCOMMITTED));
-        addTest(new TestWriteToIllegalState(factory, State.RELEASED));
-        for (int size : sizes) {
-            addTests(size);
-        }
-    }
-
-    private void addTests(int size) {
-        addTest(new TestMarkReset(factory, size));
-        addTest(new TestReadFrom(factory, size));
-        if (outputStreamHasReadFromSupport) {
-            addTest(new TestReadFromSupport(factory, size));
-        }
-        addTest(new TestRandomReadWrite(factory, size));
-        addTest(new TestWriteTo(factory, size));
-        if (writeToUsesReadFromSupport) {
-            addTest(new TestWriteToWithReadFromSupport(factory, size));
-        }
-        addTest(new TestWriteToWithError(factory, size));
-    }
-}


Reply via email to