Class EngineDiscoveryRequestResolver<T extends TestDescriptor>
- java.lang.Object
-
- org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver<T>
-
- Type Parameters:
T- the type of the engine's descriptor
@API(status=STABLE, since="1.10") public class EngineDiscoveryRequestResolver<T extends TestDescriptor> extends java.lang.ObjectConfigurable test discovery implementation based onSelectorResolverandTestDescriptor.Visitorthat can be reused by differentTestEngines.This resolver takes care of notifying registered
EngineDiscoveryListenersabout the results of processedDiscoverySelectors.- Since:
- 1.5
- See Also:
builder(),resolve(EngineDiscoveryRequest, TestDescriptor)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classEngineDiscoveryRequestResolver.Builder<T extends TestDescriptor>Builder forEngineDiscoveryRequestResolver.private static classEngineDiscoveryRequestResolver.DefaultInitializationContext<T extends TestDescriptor>static interfaceEngineDiscoveryRequestResolver.InitializationContext<T extends TestDescriptor>The initialization context for creating resolvers and visitors that depend on theEngineDiscoveryRequestto be resolved or the engine descriptor that will be used to collect the results.
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,SelectorResolver>>resolverCreatorsprivate java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,TestDescriptor.Visitor>>visitorCreators
-
Constructor Summary
Constructors Modifier Constructor Description privateEngineDiscoveryRequestResolver(java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,SelectorResolver>> resolverCreators, java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,TestDescriptor.Visitor>> visitorCreators)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T extends TestDescriptor>
EngineDiscoveryRequestResolver.Builder<T>builder()Create a newEngineDiscoveryRequestResolver.Builderfor creating aEngineDiscoveryRequestResolver.private <R> java.util.List<R>instantiate(java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,R>> creators, EngineDiscoveryRequestResolver.InitializationContext<T> context)voidresolve(EngineDiscoveryRequest request, T engineDescriptor)Resolve the suppliedEngineDiscoveryRequestand collect the results into the suppliedTestDescriptorwhile forwarding encountered discovery issues to theEngineDiscoveryRequest'sEngineDiscoveryListener.voidresolve(EngineDiscoveryRequest request, T engineDescriptor, DiscoveryIssueReporter issueReporter)Resolve the suppliedEngineDiscoveryRequestand collect the results into the suppliedTestDescriptorusing the suppliedDiscoveryIssueReporterto report issues encountered during resolution.
-
-
-
Field Detail
-
resolverCreators
private final java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T extends TestDescriptor>,SelectorResolver>> resolverCreators
-
visitorCreators
private final java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T extends TestDescriptor>,TestDescriptor.Visitor>> visitorCreators
-
-
Constructor Detail
-
EngineDiscoveryRequestResolver
private EngineDiscoveryRequestResolver(java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,SelectorResolver>> resolverCreators, java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,TestDescriptor.Visitor>> visitorCreators)
-
-
Method Detail
-
resolve
public void resolve(EngineDiscoveryRequest request, T engineDescriptor)
Resolve the suppliedEngineDiscoveryRequestand collect the results into the suppliedTestDescriptorwhile forwarding encountered discovery issues to theEngineDiscoveryRequest'sEngineDiscoveryListener.The algorithm works as follows:
- Enqueue all selectors in the supplied request to be resolved.
-
While there are selectors to be resolved, get the next one.
Otherwise, the resolution is finished.
-
Iterate over all registered resolvers in the order they were registered in and find the
first one that returns a resolution
other than
unresolved(). - If such a resolution exists, enqueue its selectors.
- For each exact match in the resolution, expand its children and enqueue them as well.
-
Iterate over all registered resolvers in the order they were registered in and find the
first one that returns a resolution
other than
- Iterate over all registered visitors and let the engine test descriptor accept them.
- Parameters:
request- the request to be resolved; nevernullengineDescriptor- the engine'sTestDescriptorto be used for adding direct children- See Also:
SelectorResolver,TestDescriptor.Visitor
-
resolve
@API(status=MAINTAINED, since="1.13.3") public void resolve(EngineDiscoveryRequest request, T engineDescriptor, DiscoveryIssueReporter issueReporter)Resolve the suppliedEngineDiscoveryRequestand collect the results into the suppliedTestDescriptorusing the suppliedDiscoveryIssueReporterto report issues encountered during resolution.The algorithm works as described in
resolve(EngineDiscoveryRequest, TestDescriptor).- Parameters:
request- the request to be resolved; nevernullengineDescriptor- the engine'sTestDescriptorto be used for adding direct childrenissueReporter- theDiscoveryIssueReporterto report issues encountered during resolution- Since:
- 1.13
- See Also:
resolve(EngineDiscoveryRequest, TestDescriptor),SelectorResolver,TestDescriptor.Visitor
-
instantiate
private <R> java.util.List<R> instantiate(java.util.List<java.util.function.Function<EngineDiscoveryRequestResolver.InitializationContext<T>,R>> creators, EngineDiscoveryRequestResolver.InitializationContext<T> context)
-
builder
public static <T extends TestDescriptor> EngineDiscoveryRequestResolver.Builder<T> builder()
Create a newEngineDiscoveryRequestResolver.Builderfor creating aEngineDiscoveryRequestResolver.- Type Parameters:
T- the type of the engine's descriptor- Returns:
- a new builder; never
null
-
-