Class SelectorResolver.Match

java.lang.Object
org.junit.platform.engine.support.discovery.SelectorResolver.Match
Enclosing interface:
SelectorResolver

@API(status=EXPERIMENTAL, since="1.5") public static class SelectorResolver.Match extends Object
An exact or partial match for resolving a DiscoverySelector into a TestDescriptor.

A match is exact if the DiscoverySelector directly represents the resulting TestDescriptor, e.g. if a ClassSelector was resolved into the TestDescriptor that represents the test class. It is partial if the matching TestDescriptor does not directly correspond to the resolved DiscoverySelector, e.g. when resolving a UniqueIdSelector that represents a dynamic child of the resolved TestDescriptor.

In addition to the TestDescriptor, a match may contain a Supplier of DiscoverySelectors that may be used to discover the children of the TestDescriptor. The algorithm implemented by EngineDiscoveryRequestResolver expands all exact matches immediately, i.e. it resolves all of their children. Partial matches will only be expanded in case a subsequent resolution finds an exact match that contains a TestDescriptor with the same unique ID.

Since:
1.5
See Also:
SelectorResolver, SelectorResolver.Resolution.match(Match), SelectorResolver.Resolution.matches(Set)
  • Method Details

    • exact

      public static SelectorResolver.Match exact(TestDescriptor testDescriptor)
      Factory for creating an exact match without any children.
      Parameters:
      testDescriptor - the resolved TestDescriptor; never null
      Returns:
      a match that contains the supplied TestDescriptor; never null
    • exact

      public static SelectorResolver.Match exact(TestDescriptor testDescriptor, Supplier<Set<? extends DiscoverySelector>> childSelectorsSupplier)
      Factory for creating an exact match with potential children.
      Parameters:
      testDescriptor - the resolved TestDescriptor; never null
      childSelectorsSupplier - a Supplier of children selectors that will be resolved when this match is expanded; never null
      Returns:
      a match that contains the supplied TestDescriptor; never null
    • partial

      public static SelectorResolver.Match partial(TestDescriptor testDescriptor)
      Factory for creating a partial match without any children.
      Parameters:
      testDescriptor - the resolved TestDescriptor; never null
      Returns:
      a match that contains the supplied TestDescriptor; never null
    • partial

      public static SelectorResolver.Match partial(TestDescriptor testDescriptor, Supplier<Set<? extends DiscoverySelector>> childSelectorsSupplier)
      Factory for creating a partial match with potential children.
      Parameters:
      testDescriptor - the resolved TestDescriptor; never null
      childSelectorsSupplier - a Supplier of children selectors that will be resolved when this match is expanded; never null
      Returns:
      a match that contains the supplied TestDescriptor; never null
    • isExact

      public boolean isExact()
      Whether this match is exact.
      Returns:
      true if this match is exact; false if it's partial
    • getTestDescriptor

      public TestDescriptor getTestDescriptor()
      Get the contained TestDescriptor.
      Returns:
      the contained TestDescriptor; never null
    • expand

      public Set<? extends DiscoverySelector> expand()
      Expand this match in order to resolve the children of the contained TestDescriptor.
      Returns:
      the set of DiscoverySelectors that represent the children of the contained TestDescriptor; never null