Class EngineDiscoveryRequestResolution.DefaultContext

java.lang.Object
org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.DefaultContext
All Implemented Interfaces:
SelectorResolver.Context
Enclosing class:
EngineDiscoveryRequestResolution

private class EngineDiscoveryRequestResolution.DefaultContext extends Object implements SelectorResolver.Context
  • Field Details

  • Constructor Details

  • Method Details

    • addToParent

      public <T extends TestDescriptor> Optional<T> addToParent(Function<TestDescriptor,Optional<T>> creator)
      Description copied from interface: SelectorResolver.Context
      Add a TestDescriptor to an unspecified parent, usually the engine descriptor, by applying the supplied Function to the new parent.

      The parent will be the engine descriptor unless another parent has already been determined, i.e. if the selector that is being resolved is the result of expanding a SelectorResolver.Match.

      If the result of applying the Function is present, it will be added as a child of the parent TestDescriptor unless a descriptor with the same unique ID was added earlier.

      Specified by:
      addToParent in interface SelectorResolver.Context
      Type Parameters:
      T - the type of the new TestDescriptor
      Parameters:
      creator - Function that will be called with the new parent to determine the new TestDescriptor to be added; must not return null
      Returns:
      the new TestDescriptor or the previously existing one with the same unique ID; never null but potentially empty
    • addToParent

      public <T extends TestDescriptor> Optional<T> addToParent(Supplier<DiscoverySelector> parentSelectorSupplier, Function<TestDescriptor,Optional<T>> creator)
      Description copied from interface: SelectorResolver.Context
      Add a TestDescriptor to a parent, specified by the DiscoverySelector returned by the supplied Supplier, by applying the supplied Function to the new parent.

      Unless another parent has already been determined, i.e. if the selector that is being resolved is the result of expanding a SelectorResolver.Match, the DiscoverySelector returned by the supplied Supplier will be used to determine the parent. If no parent is found, the supplied Function will not be called. If there are multiple potential parents, an exception will be thrown. Otherwise, the resolved TestDescriptor will be used as the parent and passed to the supplied Function.

      If the result of applying the Function is present, it will be added as a child of the parent TestDescriptor unless a descriptor with the same unique ID was added earlier.

      Specified by:
      addToParent in interface SelectorResolver.Context
      Type Parameters:
      T - the type of the new TestDescriptor
      Parameters:
      creator - Function that will be called with the new parent to determine the new TestDescriptor to be added; must not return null
      Returns:
      the new TestDescriptor or the previously existing one with the same unique ID; never null but potentially empty
    • resolve

      public Optional<TestDescriptor> resolve(DiscoverySelector selector)
      Description copied from interface: SelectorResolver.Context
      Resolve the supplied TestDescriptor, if possible.

      Calling this method has the same effect as returning a partial match from a SelectorResolver: the children of the resulting TestDescriptor will only be resolved if a subsequent resolution finds an exact match that contains a TestDescriptor with the same unique ID.

      Specified by:
      resolve in interface SelectorResolver.Context
      Parameters:
      selector - the selector to resolve
      Returns:
      the resolved TestDescriptor; never null but potentially empty
    • createAndAdd

      private <T extends TestDescriptor> Optional<T> createAndAdd(TestDescriptor parent, Function<TestDescriptor,Optional<T>> creator)