Class TestPlan


  • @API(status=STABLE,
         since="1.0")
    public final class TestPlan
    extends 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.

    Since:
    1.0
    See Also:
    Launcher, TestExecutionListener
    • Method Detail

      • from

        @API(status=INTERNAL,
             since="1.0")
        public static TestPlan from​(Collection<TestDescriptor> engineDescriptors)
        Construct a new TestPlan from the supplied collection of TestDescriptors.

        Each supplied TestDescriptor is expected to be a descriptor for a TestEngine.

        Parameters:
        engineDescriptors - the engine test descriptors from which the test plan should be created; never null
        Returns:
        a new test plan
      • add

        public void add​(TestIdentifier testIdentifier)
        Add the supplied TestIdentifier to this test plan.
        Parameters:
        testIdentifier - the identifier to add; never null
      • getParent

        public Optional<TestIdentifier> getParent​(TestIdentifier child)
        Get the parent of the supplied TestIdentifier.
        Parameters:
        child - the identifier to look up the parent for; never null
        Returns:
        an Optional containing the parent, if present
      • getChildren

        public Set<TestIdentifier> getChildren​(String parentId)
        Get the children of the supplied unique ID.
        Parameters:
        parentId - the unique ID to look up the children for; never null or blank
        Returns:
        an unmodifiable set of the parent's children, potentially empty
        See Also:
        getChildren(TestIdentifier)
      • countTestIdentifiers

        public long countTestIdentifiers​(Predicate<? super TestIdentifier> predicate)
        Count all TestIdentifiers that satisfy the given predicate.
        Parameters:
        predicate - a predicate which returns true for identifiers to be counted; never null
        Returns:
        the number of identifiers that satisfy the supplied predicate
      • getDescendants

        public Set<TestIdentifier> getDescendants​(TestIdentifier parent)
        Get all descendants of the supplied TestIdentifier (i.e., all of its children and their children, recursively).
        Parameters:
        parent - the identifier to look up the descendants for; never null
        Returns:
        an unmodifiable set of the parent's descendants, potentially empty
      • containsTests

        public boolean containsTests()
        Return whether this test plan contains any tests.

        A test plan contains tests, if at least one of the contained engine descriptors contains tests.

        Returns:
        true if this test plan contains tests
        See Also:
        TestDescriptor.containsTests(TestDescriptor)