@API(value=Experimental) public final class TestPlan extends java.lang.Object
TestPlan describes the tree of tests and containers as discovered
by a Launcher.
Tests and containers are represented by TestIdentifier instances.
The complete set of identifiers comprises a tree-like structure. However,
each identifier only stores the unique ID of its parent. This class provides
a number of helpful methods to retrieve the
parent,
children, and
descendants of an identifier.
While the contained instances of TestIdentifier are immutable,
instances of this class contain mutable state. For example, when a dynamic
test is registered at runtime, it is added to the original test plan and
reported to TestExecutionListener implementations.
Launcher,
TestExecutionListener| Modifier and Type | Method and Description |
|---|---|
void |
add(TestIdentifier testIdentifier)
Add the supplied
TestIdentifier to this test plan. |
long |
countTestIdentifiers(java.util.function.Predicate<? super TestIdentifier> predicate)
Count all
TestIdentifiers that satisfy the
given predicate. |
static TestPlan |
from(java.util.Collection<TestDescriptor> engineDescriptors)
Construct a new
TestPlan from the supplied collection of
TestDescriptors. |
java.util.Set<TestIdentifier> |
getChildren(java.lang.String parentId)
Get the children of the supplied unique ID.
|
java.util.Set<TestIdentifier> |
getChildren(TestIdentifier parent)
Get the children of the supplied
TestIdentifier. |
java.util.Set<TestIdentifier> |
getDescendants(TestIdentifier parent)
Get all descendants of the supplied
TestIdentifier (i.e.,
all of its children and their children, recursively). |
java.util.Optional<TestIdentifier> |
getParent(TestIdentifier child)
Get the parent of the supplied
TestIdentifier. |
java.util.Set<TestIdentifier> |
getRoots()
Get the root
TestIdentifiers for this test plan. |
TestIdentifier |
getTestIdentifier(java.lang.String uniqueId)
Get the
TestIdentifier with the supplied unique ID. |
@API(value=Internal) public static TestPlan from(java.util.Collection<TestDescriptor> engineDescriptors)
TestPlan from the supplied collection of
TestDescriptors.
Each supplied TestDescriptor is expected to be a descriptor
for a TestEngine.
engineDescriptors - the engine test descriptors from which the test
plan should be created; never nullpublic void add(TestIdentifier testIdentifier)
TestIdentifier to this test plan.testIdentifier - the identifier to add; never nullpublic java.util.Set<TestIdentifier> getRoots()
TestIdentifiers for this test plan.public java.util.Optional<TestIdentifier> getParent(TestIdentifier child)
TestIdentifier.child - the identifier to look up the parent for; never nullOptional containing the parent, if presentpublic java.util.Set<TestIdentifier> getChildren(TestIdentifier parent)
TestIdentifier.parent - the identifier to look up the children for; never nullgetChildren(String)public java.util.Set<TestIdentifier> getChildren(java.lang.String parentId)
parentId - the unique ID to look up the children for; never
null or blankgetChildren(TestIdentifier)public TestIdentifier getTestIdentifier(java.lang.String uniqueId) throws PreconditionViolationException
TestIdentifier with the supplied unique ID.uniqueId - the unique ID to look up the identifier for; never
null or blanknullPreconditionViolationException - if no TestIdentifier
with the supplied unique ID is present in this test planpublic long countTestIdentifiers(java.util.function.Predicate<? super TestIdentifier> predicate)
TestIdentifiers that satisfy the
given predicate.predicate - a predicate which returns true for identifiers
to be counted; never nullpublic java.util.Set<TestIdentifier> getDescendants(TestIdentifier parent)
TestIdentifier (i.e.,
all of its children and their children, recursively).parent - the identifier to look up the descendants for; never null