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 139f1814d Add helper methods to LabelBinding for common single-label
cases
139f1814d is described below
commit 139f1814d2259a4e784e381531a10740653143a5
Author: Andreas Veithen-Knowles <[email protected]>
AuthorDate: Sun Mar 29 22:00:56 2026 +0100
Add helper methods to LabelBinding for common single-label cases
Add simpleString, simpleBoolean and simpleInt factory methods to
LabelBinding that create a binding for a single label with a value
computed from the fan-out value. Each method has a two-argument form
(label name + function) and a one-argument identity form for when the
fan-out value is already the label value.
Migrate all existing call sites to use the new helpers and update the
matrix-testsuite README accordingly.
---
.../apache/axiom/util/sax/XMLReaderTestSuite.java | 3 +-
.../axiom/util/stax/dialect/DialectTestSuite.java | 52 +++----
.../om/impl/jaxp/StreamSourceToOMResultTest.java | 6 +-
.../axiom/blob/suite/WritableBlobTestSuite.java | 2 +-
.../serializer/SerializerConformanceTest.java | 3 +-
.../stax/pull/output/StAXPivotTransformerTest.java | 6 +-
.../java/org/apache/axiom/ts/om/OMTestSuite.java | 173 ++++++++++-----------
.../org/apache/axiom/ts/omdom/OMDOMTestSuite.java | 7 +-
.../org/apache/axiom/ts/soap/SOAPTestSuite.java | 76 ++++-----
.../apache/axiom/ts/soapdom/SOAPDOMTestSuite.java | 3 +-
.../java/org/apache/axiom/ts/dom/DOMTestSuite.java | 15 +-
testing/matrix-testsuite/README.md | 33 +++-
.../apache/axiom/testutils/suite/LabelBinding.java | 28 ++++
.../org/apache/axiom/ts/saaj/SAAJTestSuite.java | 3 +-
.../axiom/ts/springws/SpringWSTestSuite.java | 6 +-
.../org/apache/axiom/truth/xml/CompareTest.java | 16 +-
16 files changed, 220 insertions(+), 212 deletions(-)
diff --git
a/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
b/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
index 5bd7c5492..f062ddf3b 100644
--- a/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
+++ b/axiom-api/src/test/java/org/apache/axiom/util/sax/XMLReaderTestSuite.java
@@ -20,6 +20,7 @@ package org.apache.axiom.util.sax;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.InjectorNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTestNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.FanOutNode;
@@ -39,7 +40,7 @@ public class XMLReaderTestSuite {
"http://xml.org/sax/features/namespace-prefixes",
"http://xml.org/sax/features/external-general-entities"),
Binding.singleton(Key.get(String.class,
Names.named("feature"))),
- (injector, value, labels) ->
labels.addLabel("feature", value),
+ LabelBinding.simpleString("feature"),
new MatrixTest(TestGetSetFeature.class)));
}
}
diff --git
a/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
b/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
index 382661b55..396b893b0 100644
---
a/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
+++
b/axiom-api/src/test/java/org/apache/axiom/util/stax/dialect/DialectTestSuite.java
@@ -26,6 +26,7 @@ import javax.xml.stream.XMLStreamConstants;
import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.MatrixTestFilters;
import org.apache.axiom.testutils.suite.MatrixTestNode;
@@ -52,15 +53,13 @@ public class DialectTestSuite {
binder.bind(StAXImplementationAdapter.class)
.toInstance(
value.getAdapter(StAXImplementationAdapter.class)),
- (injector, value, labels) ->
- labels.addLabel("implementation",
value.getName()),
+ LabelBinding.simpleString("implementation",
StAXImplementation::getName),
new ParentNode(
new FanOutNode<>(
Multiton.getInstances(StreamType.class),
Binding.singleton(Key.get(StreamType.class)),
- (injector, value, labels) ->
- labels.addLabel(
- "type",
value.getType().getSimpleName()),
+ LabelBinding.simpleString(
+ "type", v ->
v.getType().getSimpleName()),
new MatrixTest(TestClose.class)),
new
MatrixTest(TestCreateXMLEventWriterWithNullEncoding.class),
new
MatrixTest(TestCreateXMLStreamReaderThreadSafety.class),
@@ -106,8 +105,7 @@ public class DialectTestSuite {
.annotatedWith(Names.named("xmlEncodings"))
.toInstance(value.getRight());
},
- (injector, value, labels) ->
-
labels.addLabel("javaEncoding", value.getLeft()),
+
LabelBinding.simpleString("javaEncoding", Pair::getLeft),
new
MatrixTest(TestGetEncodingFromDetection.class)),
new MatrixTest(TestGetEncoding.class),
new
MatrixTest(TestGetEncodingWithCharacterStream.class),
@@ -134,11 +132,9 @@ public class DialectTestSuite {
.annotatedWith(Names.named("expectException"))
.toInstance(value.getRight());
},
- (injector, value, labels) ->
- labels.addLabel(
- "event",
-
XMLEventUtils.getEventTypeString(
-
value.getLeft())),
+ LabelBinding.simpleString(
+ "event",
+ v ->
XMLEventUtils.getEventTypeString(v.getLeft())),
new MatrixTest(
TestGetLocalNameIllegalStateException.class)),
new FanOutNode<>(
@@ -164,11 +160,9 @@ public class DialectTestSuite {
.annotatedWith(Names.named("expectException"))
.toInstance(value.getRight());
},
- (injector, value, labels) ->
- labels.addLabel(
- "event",
-
XMLEventUtils.getEventTypeString(
-
value.getLeft())),
+ LabelBinding.simpleString(
+ "event",
+ v ->
XMLEventUtils.getEventTypeString(v.getLeft())),
new ParentNode(
new MatrixTest(
TestGetNameIllegalStateException.class),
@@ -207,11 +201,9 @@ public class DialectTestSuite {
.annotatedWith(Names.named("expected"))
.toInstance(value.getRight());
},
- (injector, value, labels) ->
- labels.addLabel(
- "event",
-
XMLEventUtils.getEventTypeString(
-
value.getLeft())),
+ LabelBinding.simpleString(
+ "event",
+ v ->
XMLEventUtils.getEventTypeString(v.getLeft())),
new MatrixTest(TestHasName.class)),
new FanOutNode<>(
ImmutableList.of(
@@ -242,11 +234,9 @@ public class DialectTestSuite {
.annotatedWith(Names.named("expected"))
.toInstance(value.getRight());
},
- (injector, value, labels) ->
- labels.addLabel(
- "event",
-
XMLEventUtils.getEventTypeString(
-
value.getLeft())),
+ LabelBinding.simpleString(
+ "event",
+ v ->
XMLEventUtils.getEventTypeString(v.getLeft())),
new MatrixTest(TestHasText.class)),
new
MatrixTest(TestIsCharactersOnCDATASection.class),
new FanOutNode<>(
@@ -272,11 +262,9 @@ public class DialectTestSuite {
.annotatedWith(Names.named("expected"))
.toInstance(value.getRight());
},
- (injector, value, labels) ->
- labels.addLabel(
- "event",
-
XMLEventUtils.getEventTypeString(
-
value.getLeft())),
+ LabelBinding.simpleString(
+ "event",
+ v ->
XMLEventUtils.getEventTypeString(v.getLeft())),
new
MatrixTest(TestIsCharacters.class)),
new MatrixTest(TestIsStandalone.class),
new MatrixTest(TestNextAfterEndDocument.class),
diff --git
a/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
b/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
index 2e65a3a81..25f55d25f 100644
---
a/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
+++
b/axiom-compat/src/test/java/org/apache/axiom/om/impl/jaxp/StreamSourceToOMResultTest.java
@@ -23,6 +23,7 @@ import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.MatrixTestFilters;
import org.apache.axiom.ts.xml.XMLSample;
@@ -44,12 +45,11 @@ public class StreamSourceToOMResultTest {
ImmutableList.of("default", "dom"),
Binding.singleton(
Key.get(String.class,
Names.named("axiomImplementation"))),
- (injector, value, labels) ->
labels.addLabel("axiomImplementation", value),
+ LabelBinding.simpleString("axiomImplementation"),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (injector, value, labels) ->
- labels.addLabel("file",
value.getName()),
+ LabelBinding.simpleString("file",
XMLSample::getName),
new
MatrixTest(StreamSourceToOMResultTestCase.class)))
.toDynamicNodes(excludes);
}
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
index 03a4c4b54..13723481e 100644
---
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
@@ -72,7 +72,7 @@ public class WritableBlobTestSuite {
new FanOutNode<>(
sizes,
Binding.singleton(Key.get(Integer.class,
Names.named("size"))),
- (injector, v, labels) ->
labels.addLabel("size", v),
+ LabelBinding.simpleInt("size"),
new ParentNode(
new MatrixTest(TestMarkReset.class),
new MatrixTest(TestReadFrom.class),
diff --git
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
index 8ca3716ba..12b86c58a 100644
---
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
+++
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/serializer/SerializerConformanceTest.java
@@ -23,6 +23,7 @@ import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.ts.xml.XMLSample;
import org.junit.jupiter.api.DynamicNode;
@@ -36,7 +37,7 @@ public class SerializerConformanceTest {
return new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (injector, value, labels) -> labels.addLabel("sample",
value.getName()),
+ LabelBinding.simpleString("sample",
XMLSample::getName),
new MatrixTest(SerializerConformanceTestCase.class))
.toDynamicNodes();
}
diff --git
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
index 48b989964..eaaa13f57 100644
---
a/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
+++
b/components/core-streams/src/test/java/org/apache/axiom/core/stream/stax/pull/output/StAXPivotTransformerTest.java
@@ -23,6 +23,7 @@ import java.util.stream.Stream;
import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.ts.jaxp.xslt.XSLTImplementation;
import org.apache.axiom.ts.xml.XMLSample;
@@ -40,14 +41,13 @@ public class StAXPivotTransformerTest {
.filter(XSLTImplementation::supportsStAXSource)
.collect(ImmutableList.toImmutableList()),
Binding.singleton(Key.get(XSLTImplementation.class)),
- (injector, value, labels) -> labels.addLabel("xslt",
value.getName()),
+ LabelBinding.simpleString("xslt",
XSLTImplementation::getName),
new FanOutNode<>(
Multiton.getInstances(XMLSample.class).stream()
.filter(s -> !s.hasDTD())
.collect(ImmutableList.toImmutableList()),
Binding.singleton(Key.get(XMLSample.class)),
- (injector, value, labels) ->
- labels.addLabel("sample",
value.getName()),
+ LabelBinding.simpleString("sample",
XMLSample::getName),
new
MatrixTest(StAXPivotTransformerTestCase.class)))
.toDynamicNodes();
}
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
index 19f4127db..9eeebd78c 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/om/OMTestSuite.java
@@ -129,7 +129,7 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(StreamType.class),
Binding.singleton(Key.get(StreamType.class)),
- (inj, v, l) -> l.addLabel("type",
v.getType().getSimpleName()),
+ LabelBinding.simpleString("type", v ->
v.getType().getSimpleName()),
new MatrixTest(
org.apache.axiom.ts.om.builder.TestCloseWithStream.class)),
new
MatrixTest(org.apache.axiom.ts.om.builder.TestCloseWithSystemId.class),
@@ -138,13 +138,14 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (inj, v, l) -> l.addLabel("file", v.getName()),
+ LabelBinding.simpleString("file",
XMLSample::getName),
new ParentNode(
new FanOutNode<>(
getInstances(DOMImplementation.class),
Binding.singleton(Key.get(DOMImplementation.class)),
- (inj, v, l) ->
-
l.addLabel("implementation", v.getName()),
+ LabelBinding.simpleString(
+ "implementation",
+
DOMImplementation::getName),
new FanOutNode<>(
injector ->
Arrays.asList(
@@ -159,10 +160,9 @@ public class OMTestSuite {
.toProvider(
Providers.of(
value)),
- (inj, v, l) ->
- l.addLabel(
-
"expandEntityReferences",
-
String.valueOf(v)),
+
LabelBinding.simpleString(
+
"expandEntityReferences",
+
String::valueOf),
new MatrixTest(
org.apache.axiom.ts.om.builder
.TestCreateOMBuilderFromDOM
@@ -170,8 +170,9 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(SAXImplementation.class),
Binding.singleton(Key.get(SAXImplementation.class)),
- (inj, v, l) ->
-
l.addLabel("implementation", v.getName()),
+ LabelBinding.simpleString(
+ "implementation",
+
SAXImplementation::getName),
new ConditionalNode(
injector -> {
XMLSample file =
@@ -200,10 +201,9 @@ public class OMTestSuite {
Providers
.of(
value)),
- (inj, v, l) ->
-
l.addLabel(
-
"expandEntityReferences",
-
String.valueOf(v)),
+
LabelBinding.simpleString(
+
"expandEntityReferences",
+
String::valueOf),
new MatrixTest(
org.apache.axiom.ts.om
.builder
@@ -215,7 +215,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of("", "p"),
Binding.singleton(Key.get(String.class,
Names.named("prefix"))),
- (inj, v, l) -> l.addLabel("prefix", v),
+ LabelBinding.simpleString("prefix"),
new MatrixTest(
org.apache.axiom.ts.om.builder
.TestCreateOMBuilderFromDOMWithNSUnawareNamespaceDeclaration
@@ -231,12 +231,12 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XOPSample.class),
Binding.singleton(Key.get(XOPSample.class)),
- (inj, v, l) -> l.addLabel("file", v.getName()),
+ LabelBinding.simpleString("file",
XOPSample::getName),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("build"),
new MatrixTest(
org.apache.axiom.ts.om.builder
.TestCreateOMBuilderXOP.class))),
@@ -259,22 +259,21 @@ public class OMTestSuite {
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("useDOMSource"))),
- (inj, v, l) -> l.addLabel("useDOMSource",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("useDOMSource"),
new MatrixTest(
org.apache.axiom.ts.om.builder.TestDetachWithDOM.class)),
new FanOutNode<>(
getInstances(StreamType.class),
Binding.singleton(Key.get(StreamType.class)),
- (inj, v, l) ->
- l.addLabel("streamType",
v.getType().getSimpleName()),
+ LabelBinding.simpleString(
+ "streamType", v ->
v.getType().getSimpleName()),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(
Key.get(
Boolean.class,
Names.named("useStreamSource"))),
- (inj, v, l) ->
- l.addLabel("useStreamSource",
String.valueOf(v)),
+
LabelBinding.simpleBoolean("useStreamSource"),
new MatrixTest(
org.apache.axiom.ts.om.builder.TestDetachWithStream
.class))),
@@ -292,8 +291,8 @@ public class OMTestSuite {
.annotatedWith(
Names.named("discardDocument"))
.toProvider(Providers.of(value)),
- (inj, v, l) ->
- l.addLabel("discardDocument",
String.valueOf(v)),
+ LabelBinding.simpleString(
+ "discardDocument",
String::valueOf),
new MatrixTest(
org.apache.axiom.ts.om.builder
.TestGetDocumentElement.class))),
@@ -364,7 +363,7 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (inj, v, l) -> l.addLabel("file", v.getName()),
+ LabelBinding.simpleString("file", XMLSample::getName),
new FanOutNode<>(
getInstances(OMContainerExtractor.class),
Binding.singleton(Key.get(OMContainerExtractor.class)),
@@ -391,10 +390,7 @@ public class OMTestSuite {
Boolean.class,
Names.named(
"cache"))),
- (inj, v, l) ->
-
l.addLabel(
-
"cache",
-
String.valueOf(v)),
+
LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om
.container
@@ -451,7 +447,7 @@ public class OMTestSuite {
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("includeSelf"))),
- (inj, v, l) ->
l.addLabel("includeSelf", String.valueOf(v)),
+
LabelBinding.simpleBoolean("includeSelf"),
new MatrixTest(
org.apache.axiom.ts.om.container.TestGetDescendants
.class)))));
@@ -467,13 +463,14 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (inj, v, l) -> l.addLabel("file", v.getName()),
+ LabelBinding.simpleString("file", XMLSample::getName),
new
MatrixTest(org.apache.axiom.ts.om.document.TestClone.class)),
new FanOutNode<>(
org.apache.axiom.ts.om.document.TestDigest.PARAMS,
Binding.singleton(
Key.get(org.apache.axiom.ts.om.document.TestDigest.Params.class)),
- (inj, v, l) -> l.addLabel("file", v.file()),
+ LabelBinding.simpleString(
+ "file",
org.apache.axiom.ts.om.document.TestDigest.Params::file),
new
MatrixTest(org.apache.axiom.ts.om.document.TestDigest.class)),
new
MatrixTest(org.apache.axiom.ts.om.document.TestGetOMDocumentElement.class),
new MatrixTest(
@@ -483,7 +480,7 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XSLTImplementation.class),
Binding.singleton(Key.get(XSLTImplementation.class)),
- (inj, v, l) -> l.addLabel("xslt", v.getName()),
+ LabelBinding.simpleString("xslt",
XSLTImplementation::getName),
new ConditionalNode(
injector ->
injector.getInstance(XSLTImplementation.class)
@@ -491,18 +488,18 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (inj, v, l) -> l.addLabel("file",
v.getName()),
+ LabelBinding.simpleString("file",
XMLSample::getName),
new MatrixTest(
org.apache.axiom.ts.om.document.TestGetSAXResult
.class)))),
new FanOutNode<>(
getInstances(SAXImplementation.class),
Binding.singleton(Key.get(SAXImplementation.class)),
- (inj, v, l) -> l.addLabel("parser", v.getName()),
+ LabelBinding.simpleString("parser",
SAXImplementation::getName),
new FanOutNode<>(
getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (inj, v, l) -> l.addLabel("file", v.getName()),
+ LabelBinding.simpleString("file",
XMLSample::getName),
new ConditionalNode(
injector -> {
XMLSample file =
injector.getInstance(XMLSample.class);
@@ -521,15 +518,14 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("complete"))),
- (inj, v, l) -> l.addLabel("complete",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("complete"),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(
Key.get(
Boolean.class,
Names.named("accessDocumentElement"))),
- (inj, v, l) ->
- l.addLabel("accessDocumentElement",
String.valueOf(v)),
+
LabelBinding.simpleBoolean("accessDocumentElement"),
new MatrixTest(
org.apache.axiom.ts.om.document.TestRemoveChildren.class))),
new
MatrixTest(org.apache.axiom.ts.om.document.TestSerializeAndConsume.class),
@@ -551,7 +547,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.document.sr.TestCharacterDataReaderFromParser
.class)),
@@ -560,7 +556,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build", String.valueOf(v)),
+ LabelBinding.simpleBoolean("build"),
new FanOutNode<>(
injector ->
injector.getInstance(
@@ -570,7 +566,7 @@ public class OMTestSuite {
? ImmutableList.of(true)
: ImmutableList.of(true,
false),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.document.sr.TestDTDReaderFromParser
.class))));
@@ -587,7 +583,7 @@ public class OMTestSuite {
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("defaultNamespaceInScope"))),
- (inj, v, l) -> l.addLabel("defaultNamespaceInScope",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("defaultNamespaceInScope"),
new MatrixTest(
org.apache.axiom.ts.om.element.TestAddAttributeGeneratedPrefix
.class)),
@@ -639,7 +635,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build", String.valueOf(v)),
+ LabelBinding.simpleBoolean("build"),
new MatrixTest(
org.apache.axiom.ts.om.element.TestAddChildWithSameParent.class)),
new
MatrixTest(org.apache.axiom.ts.om.element.TestBuildDiscarded.class),
@@ -655,7 +651,7 @@ public class OMTestSuite {
.filter(f -> !f.hasEntityReferences())
.collect(ImmutableList.toImmutableList()),
Binding.singleton(Key.get(XMLSample.class)),
- (inj, v, l) -> l.addLabel("file", v.getName()),
+ LabelBinding.simpleString("file", XMLSample::getName),
new
MatrixTest(org.apache.axiom.ts.om.element.TestCloneOMElement2.class)),
new MatrixTest(
org.apache.axiom.ts.om.element.TestCloneOMElementNamespaceRepairing.class),
@@ -734,7 +730,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("includeSelf"))),
- (inj, v, l) -> l.addLabel("includeSelf",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("includeSelf"),
new
MatrixTest(org.apache.axiom.ts.om.element.TestGetDescendants.class)),
new MatrixTest(
org.apache.axiom.ts.om.element.TestGetDescendantsRemoveSubtree.class),
@@ -749,13 +745,13 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("detached"))),
- (inj, v, l) -> l.addLabel("detached",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("detached"),
new MatrixTest(
org.apache.axiom.ts.om.element.TestGetNamespaceContext.class)),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("useNull"))),
- (inj, v, l) -> l.addLabel("useNull",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("useNull"),
new MatrixTest(
org.apache.axiom.ts.om.element.TestGetNamespaceNormalized.class)),
new MatrixTest(
@@ -787,11 +783,11 @@ public class OMTestSuite {
new FanOutNode<>(
getInstances(XSLTImplementation.class),
Binding.singleton(Key.get(XSLTImplementation.class)),
- (inj, v, l) -> l.addLabel("xslt", v.getName()),
+ LabelBinding.simpleString("xslt",
XSLTImplementation::getName),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.om.element
@@ -816,7 +812,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("compact"))),
- (inj, v, l) -> l.addLabel("compact",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("compact"),
new
MatrixTest(org.apache.axiom.ts.om.element.TestGetTextBinary.class)),
new MatrixTest(
org.apache.axiom.ts.om.element.TestGetTextWithCDATASectionChild.class),
@@ -831,18 +827,18 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element
.TestGetXMLStreamReaderOnNonRootElement.class)),
new FanOutNode<>(
ImmutableList.of(0, 1, 2, 3, 4),
Binding.singleton(Key.get(Integer.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build", v),
+ LabelBinding.simpleInt("build"),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element
.TestGetXMLStreamReaderOnNonRootElementPartiallyBuilt
@@ -852,7 +848,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element
.TestGetXMLStreamReaderWithIncompleteDescendant.class)),
@@ -869,11 +865,11 @@ public class OMTestSuite {
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("preserveNamespaceContext"))),
- (inj, v, l) -> l.addLabel("preserveNamespaceContext",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("preserveNamespaceContext"),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element
.TestGetXMLStreamReaderWithPreserveNamespaceContext
@@ -893,7 +889,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("complete"))),
- (inj, v, l) -> l.addLabel("complete",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("complete"),
new
MatrixTest(org.apache.axiom.ts.om.element.TestRemoveChildren.class)),
new MatrixTest(
org.apache.axiom.ts.om.element.TestResolveQNameWithDefaultNamespace.class),
@@ -962,7 +958,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element.sr.TestCloseAndContinueBuilding
.class)),
@@ -973,13 +969,13 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element.sr.TestCommentEvent.class))),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element.sr.TestGetBlobFromElement.class)),
new
MatrixTest(org.apache.axiom.ts.om.element.sr.TestGetElementText.class),
@@ -990,7 +986,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new FanOutNode<>(
injector ->
injector.getInstance(
@@ -1001,14 +997,14 @@ public class OMTestSuite {
: ImmutableList.of(0,
1, 2, 3, 4, 5),
Binding.singleton(
Key.get(Integer.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build", v),
+ LabelBinding.simpleInt("build"),
new MatrixTest(
org.apache.axiom.ts.om.element.sr
.TestGetElementTextFromParser.class)))),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (inj, v, l) -> l.addLabel("cache", String.valueOf(v)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.om.element.sr.TestGetNamespaceContext.class)),
new
MatrixTest(org.apache.axiom.ts.om.element.sr.TestNextTag.class));
@@ -1058,7 +1054,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("nullContentId"))),
- (inj, v, l) -> l.addLabel("nullContentId",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("nullContentId"),
new MatrixTest(
org.apache.axiom.ts.om.factory.TestCreateOMTextFromBlobProvider
.class)),
@@ -1072,7 +1068,7 @@ public class OMTestSuite {
return new FanOutNode<>(
ImmutableList.copyOf(CreateOMElementVariant.INSTANCES),
Binding.singleton(Key.get(CreateOMElementVariant.class)),
- (inj, v, l) -> l.addLabel("variant", v.getName()),
+ LabelBinding.simpleString("variant",
CreateOMElementVariant::getName),
new ParentNode(
new FanOutNode<>(
injector -> {
@@ -1083,7 +1079,8 @@ public class OMTestSuite {
.collect(ImmutableList.toImmutableList());
},
Binding.singleton(Key.get(CreateOMElementParentSupplier.class)),
- (inj, v, l) -> l.addLabel("parent",
v.getName()),
+ LabelBinding.simpleString(
+ "parent",
CreateOMElementParentSupplier::getName),
new ParentNode(
new ConditionalNode(
injector ->
@@ -1159,17 +1156,17 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("document"))),
- (inj, v, l) -> l.addLabel("document",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("document"),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("build"),
new
MatrixTest(org.apache.axiom.ts.om.node.TestDetach.class))),
new
MatrixTest(org.apache.axiom.ts.om.node.TestDetachAfterBuilderClose.class),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("build"))),
- (inj, v, l) -> l.addLabel("build", String.valueOf(v)),
+ LabelBinding.simpleBoolean("build"),
new
MatrixTest(org.apache.axiom.ts.om.node.TestDetachFirstChild.class)),
new
MatrixTest(org.apache.axiom.ts.om.node.TestGetNextOMSiblingAfterDiscard.class),
new
MatrixTest(org.apache.axiom.ts.om.node.TestInsertSiblingAfter.class),
@@ -1226,7 +1223,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("copyOMDataSources"))),
- (inj, v, l) -> l.addLabel("copyOMDataSources",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("copyOMDataSources"),
new MatrixTest(
org.apache.axiom.ts.om.sourcedelement.TestCloneNonDestructive
.class)),
@@ -1267,7 +1264,7 @@ public class OMTestSuite {
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("serializeParent"))),
- (inj, v, l) -> l.addLabel("serializeParent",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("serializeParent"),
new MatrixTest(
org.apache.axiom.ts.om.sourcedelement
.TestGetSAXSourceWithPushOMDataSource.class))),
@@ -1314,7 +1311,7 @@ public class OMTestSuite {
ImmutableList.of(false, true),
Binding.singleton(
Key.get(Boolean.class,
Names.named("serializeParent"))),
- (inj, v, l) -> l.addLabel("serializeParent",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("serializeParent"),
new MatrixTest(
org.apache.axiom.ts.om.sourcedelement
.TestSerializeOMDataSourceWritingToOutputStream
@@ -1326,7 +1323,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("expand"))),
- (inj, v, l) -> l.addLabel("expand", String.valueOf(v)),
+ LabelBinding.simpleBoolean("expand"),
new MatrixTest(
org.apache.axiom.ts.om.sourcedelement.TestSetLocalName.class)),
new MatrixTest(
@@ -1340,7 +1337,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(0, 1, 2, 3, 4, 5, 6),
Binding.singleton(Key.get(Integer.class,
Names.named("events"))),
- (inj, v, l) -> l.addLabel("events", v),
+ LabelBinding.simpleInt("events"),
new MatrixTest(
org.apache.axiom.ts.om.sourcedelement.sr.TestCloseWithoutCaching
.class)));
@@ -1363,7 +1360,7 @@ public class OMTestSuite {
ImmutableList.of(1, 2),
Binding.singleton(
Key.get(Integer.class,
Names.named("count"))),
- (inj, v, l) -> l.addLabel("count", v),
+ LabelBinding.simpleInt("count"),
new FanOutNode<>(
injector ->
injector.getInstance(
@@ -1376,8 +1373,7 @@ public class OMTestSuite {
Key.get(
Boolean.class,
Names.named("push"))),
- (inj, v, l) ->
- l.addLabel("push",
String.valueOf(v)),
+
LabelBinding.simpleBoolean("push"),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(
@@ -1385,10 +1381,7 @@ public class OMTestSuite {
Boolean.class,
Names.named(
"destructive"))),
- (inj, v, l) ->
- l.addLabel(
-
"destructive",
-
String.valueOf(v)),
+
LabelBinding.simpleBoolean("destructive"),
new FanOutNode<>(
injector ->
injector.getInstance(
@@ -1405,10 +1398,8 @@ public class OMTestSuite {
Boolean.class,
Names.named(
"serializeParent"))),
- (inj, v, l) ->
-
l.addLabel(
-
"serializeParent",
-
String.valueOf(v)),
+
LabelBinding.simpleBoolean(
+
"serializeParent"),
new MatrixTest(
org.apache.axiom.ts.om
.sourcedelement
@@ -1424,7 +1415,7 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("fetch"))),
- (inj, v, l) -> l.addLabel("fetch", String.valueOf(v)),
+ LabelBinding.simpleBoolean("fetch"),
new
MatrixTest(org.apache.axiom.ts.om.text.TestCloneBinary.class)),
new MatrixTest(org.apache.axiom.ts.om.text.TestDigest.class),
new
MatrixTest(org.apache.axiom.ts.om.text.TestGetNamespace.class),
@@ -1437,7 +1428,7 @@ public class OMTestSuite {
(int) OMNode.SPACE_NODE,
(int) OMNode.CDATA_SECTION_NODE),
Binding.singleton(Key.get(Integer.class,
Names.named("type"))),
- (inj, v, l) -> l.addLabel("type",
XMLEventUtils.getEventTypeString(v)),
+ LabelBinding.simpleString("type",
XMLEventUtils::getEventTypeString),
new
MatrixTest(org.apache.axiom.ts.om.text.TestSerialize.class)));
}
@@ -1446,12 +1437,12 @@ public class OMTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("base64"))),
- (inj, v, l) -> l.addLabel("base64", String.valueOf(v)),
+ LabelBinding.simpleBoolean("base64"),
new
MatrixTest(org.apache.axiom.ts.om.xop.TestSerialize.class)),
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("optimize"))),
- (inj, v, l) -> l.addLabel("optimize",
String.valueOf(v)),
+ LabelBinding.simpleBoolean("optimize"),
new
MatrixTest(org.apache.axiom.ts.om.xop.TestSetOptimize.class)),
new
MatrixTest(org.apache.axiom.ts.om.xop.TestSetOptimizePlainOMText.class),
new
MatrixTest(org.apache.axiom.ts.om.xop.XOPRoundtripTest.class));
@@ -1467,7 +1458,7 @@ public class OMTestSuite {
new FanOutNode<>(
xpathMethods,
Binding.singleton(Key.get(String.class,
Names.named("methodName"))),
- (inj, v, l) -> l.addLabel("test", v.substring(4)),
+ LabelBinding.simpleString("test", v -> v.substring(4)),
new
MatrixTest(org.apache.axiom.ts.om.xpath.TestAXIOMXPath.class)),
new
MatrixTest(org.apache.axiom.ts.om.xpath.TestAddNamespaces.class),
new
MatrixTest(org.apache.axiom.ts.om.xpath.TestAddNamespaces2.class),
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
index 978090ceb..43ee228bd 100644
---
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
@@ -22,6 +22,7 @@ import org.apache.axiom.om.dom.DOMMetaFactory;
import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.InjectorNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTestNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.ParentNode;
@@ -50,8 +51,7 @@ public class OMDOMTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("build"))),
- (injector, value, labels) ->
- labels.addLabel("build",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("build"),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.omdom.document
@@ -67,8 +67,7 @@ public class OMDOMTestSuite {
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (injector, value, labels) ->
- labels.addLabel("file",
value.getName()),
+ LabelBinding.simpleString("file",
XMLSample::getName),
new MatrixTest(
org.apache.axiom.ts.omdom.document.TestImportNode.class)),
new MatrixTest(
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
index 9c6c057c5..42a16bd26 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soap/SOAPTestSuite.java
@@ -121,22 +121,20 @@ public class SOAPTestSuite {
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
Binding.singleton(Key.get(SOAPSpec.class)),
- (injector, value, labels) ->
- labels.addLabel("spec",
value.getName()),
+ LabelBinding.simpleString("spec",
SOAPSpec::getName),
specTests()),
// Bad SOAP files (spec-independent)
new FanOutNode<>(
badSOAPFiles,
Binding.singleton(Key.get(String.class,
Names.named("file"))),
- (injector, value, labels) ->
labels.addLabel("file", value),
+ LabelBinding.simpleString("file"),
new MatrixTest(
org.apache.axiom.ts.soap.builder.BadInputTest.class)),
// Good SOAP files (spec-independent)
new FanOutNode<>(
goodSOAPFiles,
Binding.singleton(Key.get(SOAPSample.class)),
- (injector, value, labels) ->
- labels.addLabel("message",
value.getName()),
+ LabelBinding.simpleString("message",
SOAPSample::getName),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.soap.builder.MessageTest.class),
@@ -196,8 +194,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("buildPayload"))),
- (injector, value, labels) ->
- labels.addLabel("buildPayload",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("buildPayload"),
new MatrixTest(
org.apache.axiom.ts.soap.body
.TestGetFirstElementLocalNameWithParser2.class)),
@@ -255,8 +252,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(false, true),
Binding.singleton(Key.get(Boolean.class,
Names.named("header"))),
- (injector, value, labels) ->
- labels.addLabel("header",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("header"),
new MatrixTest(
org.apache.axiom.ts.soap.envelope.TestAddElementAfterBody.class)),
new MatrixTest(
@@ -312,8 +308,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("withParent"))),
- (injector, value, labels) ->
- labels.addLabel("withParent",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("withParent"),
new MatrixTest(
org.apache.axiom.ts.soap.factory.TestCreateSOAPFaultWithException
.class)),
@@ -457,8 +452,7 @@ public class SOAPTestSuite {
binder.bind(Boolean.class)
.annotatedWith(Names.named("processed"))
.toProvider(Providers.of(value)),
- (injector, value, labels) ->
- labels.addLabel("processed",
String.valueOf(value)),
+ LabelBinding.simpleString("processed",
String::valueOf),
new
MatrixTest(org.apache.axiom.ts.soap.headerblock.TestClone.class)),
new MatrixTest(
org.apache.axiom.ts.soap.headerblock
@@ -479,8 +473,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("preserveModel"))),
- (injector, value, labels) ->
- labels.addLabel("preserveModel",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("preserveModel"),
new ParentNode(
new
MatrixTest(org.apache.axiom.ts.soap.message.TestClone.class),
new MatrixTest(
@@ -499,8 +492,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("createDocument"))),
- (injector, value, labels) ->
- labels.addLabel("createDocument",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("createDocument"),
new MatrixTest(
org.apache.axiom.ts.soap.xpath.TestXPathAppliedToSOAPEnvelope
.class)));
@@ -525,10 +517,10 @@ public class SOAPTestSuite {
.getChildTypes()),
Binding.singleton(
Key.get(SOAPElementType.class,
Names.named("childType"))),
- (injector, value, labels) ->
- labels.addLabel(
- "childType",
-
value.getAdapter(SOAPElementTypeAdapter.class)
+ LabelBinding.simpleString(
+ "childType",
+ v ->
+
v.getAdapter(SOAPElementTypeAdapter.class)
.getType()
.getSimpleName()),
new ParentNode(
@@ -561,12 +553,9 @@ public class SOAPTestSuite {
.collect(ImmutableList.toImmutableList());
},
Binding.singleton(Key.get(SOAPElementType.class,
Names.named("type"))),
- (injector, value, labels) ->
- labels.addLabel(
- "type",
- value.getAdapter(SOAPElementTypeAdapter.class)
- .getType()
- .getSimpleName()),
+ LabelBinding.simpleString(
+ "type",
+ v ->
v.getAdapter(SOAPElementTypeAdapter.class).getType().getSimpleName()),
new FanOutNode<>(
injector -> {
SOAPSpec spec =
injector.getInstance(SOAPSpec.class);
@@ -578,10 +567,10 @@ public class SOAPTestSuite {
.collect(ImmutableList.toImmutableList());
},
Binding.singleton(Key.get(SOAPElementType.class,
Names.named("childType"))),
- (injector, value, labels) ->
- labels.addLabel(
- "childType",
-
value.getAdapter(SOAPElementTypeAdapter.class)
+ LabelBinding.simpleString(
+ "childType",
+ v ->
+
v.getAdapter(SOAPElementTypeAdapter.class)
.getType()
.getSimpleName()),
new ParentNode(
@@ -678,11 +667,10 @@ public class SOAPTestSuite {
Key.get(
BooleanLiteral
.class)),
- (injector,
value, labels) ->
-
labels.addLabel(
-
"literal",
-
value
-
.getLexicalRepresentation()),
+
LabelBinding.simpleString(
+
"literal",
+
BooleanLiteral
+
::getLexicalRepresentation),
new MatrixTest(
org.apache.axiom.ts.soap
.headerblock
@@ -704,9 +692,7 @@ public class SOAPTestSuite {
String.class,
Names.named(
"value"))),
- (injector,
value, labels) ->
-
labels.addLabel(
-
"value", value),
+
LabelBinding.simpleString("value"),
new MatrixTest(
org.apache.axiom.ts.soap
.headerblock
@@ -719,11 +705,7 @@ public class SOAPTestSuite {
Boolean.class,
Names.named(
"value"))),
- (injector,
value, labels) ->
-
labels.addLabel(
-
"value",
-
String.valueOf(
-
value)),
+
LabelBinding.simpleBoolean("value"),
new MatrixTest(
org.apache.axiom.ts.soap
.headerblock
@@ -767,8 +749,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("buildSOAPPart"))),
- (injector, value, labels) ->
- labels.addLabel("buildSOAPPart",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("buildSOAPPart"),
new MatrixTest(
org.apache.axiom.ts.soap12.envelope.TestMTOMForwardStreaming
.class)),
@@ -823,8 +804,7 @@ public class SOAPTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("cache"))),
- (injector, value, labels) ->
- labels.addLabel("cache",
String.valueOf(value)),
+ LabelBinding.simpleBoolean("cache"),
new MatrixTest(
org.apache.axiom.ts.soap12.mtom.TestGetXMLStreamReaderMTOMEncoded
.class)));
diff --git
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
index 27ae3df32..0cea29d74 100644
---
a/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
+++
b/testing/axiom-testsuite/src/main/java/org/apache/axiom/ts/soapdom/SOAPDOMTestSuite.java
@@ -24,6 +24,7 @@ import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.FanOutNode;
import org.apache.axiom.testutils.suite.InjectorNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTestNode;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.ParentNode;
@@ -38,7 +39,7 @@ public class SOAPDOMTestSuite {
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
Binding.singleton(Key.get(SOAPSpec.class)),
- (injector, value, labels) -> labels.addLabel("spec",
value.getName()),
+ LabelBinding.simpleString("spec", SOAPSpec::getName),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.soapdom.header
diff --git
a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
index 9769eb673..6ffa45ff1 100644
---
a/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
+++
b/testing/dom-testsuite/src/main/java/org/apache/axiom/ts/dom/DOMTestSuite.java
@@ -308,7 +308,7 @@ public class DOMTestSuite {
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(Key.get(Boolean.class,
Names.named("deep"))),
- (injector, value, labels) ->
labels.addLabel("deep", value),
+ LabelBinding.simpleBoolean("deep"),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.dom.attr.TestCloneNode.class),
@@ -319,8 +319,7 @@ public class DOMTestSuite {
ImmutableList.of(true, false),
Binding.singleton(
Key.get(Boolean.class,
Names.named("newChildHasSiblings"))),
- (injector, value, labels) ->
- labels.addLabel("newChildHasSiblings",
value),
+
LabelBinding.simpleBoolean("newChildHasSiblings"),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.dom.element
@@ -359,8 +358,7 @@ public class DOMTestSuite {
new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class)),
- (injector, value, labels) ->
- labels.addLabel("file",
value.getName()),
+ LabelBinding.simpleString("file",
XMLSample::getName),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.dom.document.TestCloneNode
@@ -368,16 +366,15 @@ public class DOMTestSuite {
new FanOutNode<>(
Multiton.getInstances(DOMImplementation.class),
Binding.singleton(Key.get(DOMImplementation.class)),
- (injector, value, labels) ->
-
labels.addLabel("from", value.getName()),
+ LabelBinding.simpleString(
+ "from",
DOMImplementation::getName),
new MatrixTest(
org.apache.axiom.ts.dom.element
.TestImportNode.class)))),
new FanOutNode<>(
Multiton.getInstances(XSLTImplementation.class),
Binding.singleton(Key.get(XSLTImplementation.class)),
- (injector, value, labels) ->
- labels.addLabel("xslt",
value.getName()),
+ LabelBinding.simpleString("xslt",
XSLTImplementation::getName),
new ParentNode(
new MatrixTest(
org.apache.axiom.ts.dom.document
diff --git a/testing/matrix-testsuite/README.md
b/testing/matrix-testsuite/README.md
index 65263f3a6..2a254f2ad 100644
--- a/testing/matrix-testsuite/README.md
+++ b/testing/matrix-testsuite/README.md
@@ -106,12 +106,37 @@ Holds exactly one child node. When multiple children are
needed, wrap them in a
The `Binding<T>` lambda receives a `Binder` and the current value, and
configures the Guice binding. For the common case of binding the value as a
singleton, use `Binding.singleton(Key.get(MyType.class))`. The
-`LabelBinding<? super T>` lambda registers labels for display and
-filtering (e.g.
-`(labels, value) -> labels.addLabel("name", value.getName())`).
+`LabelBinding<? super T>` registers labels for display and filtering.
+For the common case of a single label derived from the value, use one of the
+`LabelBinding.simpleString` / `simpleBoolean` / `simpleInt` factory methods
+(e.g. `LabelBinding.simpleString("name", MyType::getName)`).
For types implementing `Dimension`, use the predefined
`LabelBinding.DIMENSION` constant.
+### `LabelBinding<T>`
+
+Functional interface that registers labels for a fan-out value. Defines a
single
+method `void addLabels(Injector injector, T value, LabelTarget labels)`.
Provides
+several static factory methods for the common case of a single label:
+
+| Method | Value type | Example |
+|---|---|---|
+| `simpleString(label, fn)` | `String` | `LabelBinding.simpleString("name",
MyType::getName)` |
+| `simpleBoolean(label, fn)` | `boolean` | `LabelBinding.simpleBoolean("flag",
MyType::isEnabled)` |
+| `simpleInt(label, fn)` | `int` | `LabelBinding.simpleInt("size",
MyType::getSize)` |
+
+Each of these also has an identity overload (no function argument) for use when
+the fan-out value is already the label value:
+
+| Method | Fan-out type | Example |
+|---|---|---|
+| `simpleString(label)` | `String` | `LabelBinding.simpleString("feature")` |
+| `simpleBoolean(label)` | `Boolean` | `LabelBinding.simpleBoolean("cache")` |
+| `simpleInt(label)` | `Integer` | `LabelBinding.simpleInt("count")` |
+
+For types implementing `Dimension` (which contribute multiple labels), use
+the predefined `LabelBinding.DIMENSION` constant.
+
### `MatrixTest`
Leaf node. Instantiates a `junit.framework.TestCase` subclass via Guice and
@@ -184,7 +209,7 @@ public class MyTestSuite {
FanOutNode<SomeDimension> dimensions = new FanOutNode<>(
Multiton.getInstances(SomeDimension.class),
Binding.singleton(Key.get(SomeDimension.class)),
- (labels, value) -> labels.addLabel("dimension",
value.getName()),
+ LabelBinding.simpleString("dimension", SomeDimension::getName),
new ParentNode(
new MatrixTest(TestSomeBehavior.class),
new MatrixTest(TestOtherBehavior.class)));
diff --git
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
index 507c61df4..ffa2f6e19 100644
---
a/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
+++
b/testing/matrix-testsuite/src/main/java/org/apache/axiom/testutils/suite/LabelBinding.java
@@ -18,10 +18,38 @@
*/
package org.apache.axiom.testutils.suite;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.function.ToIntFunction;
+
import com.google.inject.Injector;
public interface LabelBinding<T> {
LabelBinding<Dimension> DIMENSION = (injector, value, labels) ->
value.addLabels(labels);
void addLabels(Injector injector, T value, LabelTarget labels);
+
+ static <T> LabelBinding<T> simpleString(String label, Function<T, String>
fn) {
+ return (injector, value, labels) -> labels.addLabel(label,
fn.apply(value));
+ }
+
+ static <T> LabelBinding<T> simpleBoolean(String label, Predicate<T> fn) {
+ return (injector, value, labels) -> labels.addLabel(label,
fn.test(value));
+ }
+
+ static <T> LabelBinding<T> simpleInt(String label, ToIntFunction<T> fn) {
+ return (injector, value, labels) -> labels.addLabel(label,
fn.applyAsInt(value));
+ }
+
+ static LabelBinding<String> simpleString(String label) {
+ return simpleString(label, v -> v);
+ }
+
+ static LabelBinding<Boolean> simpleBoolean(String label) {
+ return simpleBoolean(label, v -> v);
+ }
+
+ static LabelBinding<Integer> simpleInt(String label) {
+ return simpleInt(label, v -> v);
+ }
}
diff --git
a/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
b/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
index 10f03c0c4..66452780f 100644
---
a/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
+++
b/testing/saaj-testsuite/src/main/java/org/apache/axiom/ts/saaj/SAAJTestSuite.java
@@ -24,6 +24,7 @@ import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.InjectorNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.testutils.suite.MatrixTestNode;
import org.apache.axiom.testutils.suite.ParentNode;
import org.apache.axiom.testutils.suite.FanOutNode;
@@ -46,7 +47,7 @@ public class SAAJTestSuite {
new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
Binding.singleton(Key.get(SOAPSpec.class)),
- (injector, value, labels) -> labels.addLabel("spec",
value.getName()),
+ LabelBinding.simpleString("spec", SOAPSpec::getName),
new ParentNode(
new
MatrixTest(TestAddChildElementReification.class),
new
MatrixTest(TestExamineMustUnderstandHeaderElements.class),
diff --git
a/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
b/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
index c07f9f296..c946d6985 100644
---
a/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
+++
b/testing/spring-ws-testsuite/src/main/java/org/apache/axiom/ts/springws/SpringWSTestSuite.java
@@ -58,10 +58,8 @@ public class SpringWSTestSuite {
return new FanOutNode<>(
Multiton.getInstances(SOAPSpec.class),
Binding.singleton(Key.get(SOAPSpec.class)),
- (injector, value, labels) ->
- labels.addLabel(
- "soapVersion",
-
value.getAdapter(SOAPSpecAdapter.class).getSoapVersion()),
+ LabelBinding.simpleString(
+ "soapVersion", v ->
v.getAdapter(SOAPSpecAdapter.class).getSoapVersion()),
new ParentNode(
new InjectorNode(
binder ->
diff --git
a/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
b/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
index 2d91645dd..24f8a2fc9 100644
---
a/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
+++
b/testing/xml-truth/src/test/java/org/apache/axiom/truth/xml/CompareTest.java
@@ -24,6 +24,7 @@ import org.apache.axiom.testing.multiton.Multiton;
import org.apache.axiom.testutils.suite.Binding;
import org.apache.axiom.testutils.suite.MatrixTest;
import org.apache.axiom.testutils.suite.FanOutNode;
+import org.apache.axiom.testutils.suite.LabelBinding;
import org.apache.axiom.ts.xml.XMLSample;
import org.junit.jupiter.api.DynamicNode;
import org.junit.jupiter.api.TestFactory;
@@ -38,21 +39,20 @@ public class CompareTest {
return new FanOutNode<>(
Multiton.getInstances(XMLSample.class),
Binding.singleton(Key.get(XMLSample.class,
Names.named("sample"))),
- (injector, value, labels) -> labels.addLabel("sample",
value.getName()),
+ LabelBinding.simpleString("sample",
XMLSample::getName),
new FanOutNode<>(
Multiton.getInstances(XMLObjectFactory.class),
Binding.singleton(
Key.get(XMLObjectFactory.class,
Names.named("left"))),
- (injector, value, labels) ->
- labels.addLabel("left",
value.getName()),
+ LabelBinding.simpleString("left",
XMLObjectFactory::getName),
new FanOutNode<>(
Multiton.getInstances(XMLObjectFactory.class),
Binding.singleton(
Key.get(
XMLObjectFactory.class,
Names.named("right"))),
- (injector, value, labels) ->
- labels.addLabel("right",
value.getName()),
+ LabelBinding.simpleString(
+ "right",
XMLObjectFactory::getName),
new FanOutNode<>(
ImmutableList.of(true, false),
Binding.singleton(
@@ -60,10 +60,8 @@ public class CompareTest {
Boolean.class,
Names.named(
"expandEntityReferences"))),
- (injector, value, labels) ->
- labels.addLabel(
-
"expandEntityReferences",
-
String.valueOf(value)),
+ LabelBinding.simpleBoolean(
+
"expandEntityReferences"),
new
MatrixTest(CompareTestCase.class)))))
.toDynamicNodes();
}