class JavaElementsResolver
extends java.lang.Object
Any non-private method in this class is forbidden to throw any type of exception other than a "blacklisted exception". All other exceptions must be caught, logged, and swallowed in order to ensure the robustness of our discovery mechanism.
Discovery errors related to Unique IDs that are particular to the Jupiter test engine should be logged at WARNING level; whereas, all other discovery errors should be logged at DEBUG level, since the Jupiter engine has no way of knowing that it is supposed to actually handle those things (e.g., classpath roots, packages, etc. selected by a registered discovery selector).
Modifier and Type | Field and Description |
---|---|
private ClassFilter |
classFilter |
private JupiterConfiguration |
configuration |
private TestDescriptor |
engineDescriptor |
private static IsInnerClass |
isInnerClass |
private static Logger |
logger |
private java.util.Set<ElementResolver> |
resolvers |
Constructor and Description |
---|
JavaElementsResolver(TestDescriptor engineDescriptor,
JupiterConfiguration configuration,
ClassFilter classFilter,
java.util.Set<ElementResolver> resolvers) |
Modifier and Type | Method and Description |
---|---|
private java.util.Optional<TestDescriptor> |
findTestDescriptorByUniqueId(UniqueId uniqueId) |
private void |
handleResolvedDescriptorsForUniqueId(UniqueId uniqueId,
java.util.Deque<TestDescriptor> resolvedDescriptors) |
private void |
logMultipleTestDescriptorsForSingleElement(java.lang.reflect.AnnotatedElement element,
java.util.Set<TestDescriptor> descriptors) |
private void |
orderContainedMethods(ClassTestDescriptor classTestDescriptor,
java.lang.Class<?> testClass) |
private java.util.Set<TestDescriptor> |
resolve(java.lang.reflect.AnnotatedElement element,
TestDescriptor parent) |
private java.util.Deque<TestDescriptor> |
resolveAllSegments(UniqueId uniqueId)
Attempt to resolve all segments for the supplied unique ID.
|
private void |
resolveChildren(TestDescriptor descriptor) |
private void |
resolveClass(java.lang.Class<?> testClass) |
(package private) void |
resolveClass(ClassSelector selector) |
(package private) void |
resolveClasspathRoot(ClasspathRootSelector selector) |
private void |
resolveContainedMethods(TestDescriptor containerDescriptor,
java.lang.Class<?> testClass) |
private void |
resolveContainedNestedClasses(TestDescriptor containerDescriptor,
java.lang.Class<?> clazz) |
private java.util.Set<TestDescriptor> |
resolveContainerWithChildren(java.lang.Class<?> containerClass,
java.util.Set<TestDescriptor> potentialParents) |
private java.util.Set<TestDescriptor> |
resolveContainerWithParents(java.lang.Class<?> testClass) |
private java.util.Set<TestDescriptor> |
resolveForAllParents(java.lang.reflect.AnnotatedElement element,
java.util.Set<TestDescriptor> potentialParents) |
(package private) void |
resolveMethod(MethodSelector selector) |
(package private) void |
resolveModule(ModuleSelector selector) |
(package private) void |
resolvePackage(PackageSelector selector) |
(package private) void |
resolveUniqueId(UniqueIdSelector selector) |
private java.util.Set<TestDescriptor> |
tryToResolveWithResolver(java.lang.reflect.AnnotatedElement element,
TestDescriptor parent,
ElementResolver resolver) |
private static final Logger logger
private static final IsInnerClass isInnerClass
private final TestDescriptor engineDescriptor
private final JupiterConfiguration configuration
private final ClassFilter classFilter
private final java.util.Set<ElementResolver> resolvers
JavaElementsResolver(TestDescriptor engineDescriptor, JupiterConfiguration configuration, ClassFilter classFilter, java.util.Set<ElementResolver> resolvers)
void resolveClasspathRoot(ClasspathRootSelector selector)
void resolveModule(ModuleSelector selector)
void resolvePackage(PackageSelector selector)
void resolveClass(ClassSelector selector)
private void resolveClass(java.lang.Class<?> testClass)
void resolveMethod(MethodSelector selector)
void resolveUniqueId(UniqueIdSelector selector)
private java.util.Set<TestDescriptor> resolveContainerWithParents(java.lang.Class<?> testClass)
private java.util.Deque<TestDescriptor> resolveAllSegments(UniqueId uniqueId)
private void handleResolvedDescriptorsForUniqueId(UniqueId uniqueId, java.util.Deque<TestDescriptor> resolvedDescriptors)
private java.util.Set<TestDescriptor> resolveContainerWithChildren(java.lang.Class<?> containerClass, java.util.Set<TestDescriptor> potentialParents)
private java.util.Set<TestDescriptor> resolveForAllParents(java.lang.reflect.AnnotatedElement element, java.util.Set<TestDescriptor> potentialParents)
private void resolveChildren(TestDescriptor descriptor)
private void orderContainedMethods(ClassTestDescriptor classTestDescriptor, java.lang.Class<?> testClass)
private void resolveContainedNestedClasses(TestDescriptor containerDescriptor, java.lang.Class<?> clazz)
private void resolveContainedMethods(TestDescriptor containerDescriptor, java.lang.Class<?> testClass)
private java.util.Set<TestDescriptor> resolve(java.lang.reflect.AnnotatedElement element, TestDescriptor parent)
private java.util.Set<TestDescriptor> tryToResolveWithResolver(java.lang.reflect.AnnotatedElement element, TestDescriptor parent, ElementResolver resolver)
private java.util.Optional<TestDescriptor> findTestDescriptorByUniqueId(UniqueId uniqueId)
private void logMultipleTestDescriptorsForSingleElement(java.lang.reflect.AnnotatedElement element, java.util.Set<TestDescriptor> descriptors)