Class ResourceExtension
java.lang.Object
org.junitpioneer.jupiter.resource.ResourceExtension
- All Implemented Interfaces:
org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.InvocationInterceptor, org.junit.jupiter.api.extension.ParameterResolver
class ResourceExtension
extends Object
implements org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.InvocationInterceptor
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.junit.jupiter.api.extension.InvocationInterceptor
org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final AtomicLongprivate static final org.junit.jupiter.api.extension.ExtensionContext.Namespaceprivate static final Lock -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate <T> Tprivate StringfactoryKey(Shared sharedAnnotation) private ReentrantLockfindLockForShared(Shared shared, org.junit.jupiter.api.extension.ExtensionContext.Store store) findShared(Executable executable) private Methodprivate booleanhasAnnotation(Parameter parameter, Shared sharedAnnotation) voidinterceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) voidinterceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) voidinterceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) voidinterceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) voidinterceptDynamicTest(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.DynamicTestInvocationContext invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) <T> TinterceptTestClassConstructor(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Constructor<T>> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) <T> TinterceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) voidinterceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) voidinterceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private <T> TinvokeWithLocks(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, List<ReentrantLock> locks) private StringkeyOfFactoryKey(Shared sharedAnnotation) private Resource<?> newResource(Object newOrSharedAnnotation, ResourceFactory<?> resourceFactory) private voidputNewLockForShared(Shared shared, org.junit.jupiter.api.extension.ExtensionContext.Store store) private ObjectresolveNew(New newAnnotation, org.junit.jupiter.api.extension.ExtensionContext.Store store) resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private ObjectresolveShared(Shared sharedAnnotation, Parameter[] parameters, org.junit.jupiter.api.extension.ExtensionContext.Store scopedStore, org.junit.jupiter.api.extension.ExtensionContext.Store rootStore) private StringresourceKey(Shared sharedAnnotation) private StringresourceLockKey(Shared sharedAnnotation) private <T> TrunSequentially(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, Executable executable, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private org.junit.jupiter.api.extension.ExtensionContextscopedContext(org.junit.jupiter.api.extension.ExtensionContext extensionContext, Shared.Scope scope) private org.junit.jupiter.api.extension.ExtensionContext.StorescopedStore(org.junit.jupiter.api.extension.ExtensionContext extensionContext, Shared.Scope scope) private StringsharedAnnotationKey(Shared sharedAnnotation) private List<ReentrantLock> sortedLocksForSharedResources(Collection<Shared> sharedAnnotations, org.junit.jupiter.api.extension.ExtensionContext extensionContext) booleansupportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) private MethodtestFactoryMethod(org.junit.jupiter.api.extension.ExtensionContext extensionContext) private StringtestMethodDescription(org.junit.jupiter.api.extension.ExtensionContext extensionContext) private voidthrowIfHasAnnotationWithSameNameButDifferentScope(org.junit.jupiter.api.extension.ExtensionContext.Store rootStore, Shared sharedAnnotation) private voidthrowIfHasAnnotationWithSameNameButDifferentType(org.junit.jupiter.api.extension.ExtensionContext.Store scopedStore, Shared sharedAnnotation) private voidthrowIfMultipleParametersHaveExactAnnotation(Parameter[] parameters, Shared sharedAnnotation) private longMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.junit.jupiter.api.extension.InvocationInterceptor
interceptDynamicTest
-
Field Details
-
NAMESPACE
private static final org.junit.jupiter.api.extension.ExtensionContext.Namespace NAMESPACE -
SHARED_ANNOTATION_RESOLUTION_LOCK
-
KEY_GENERATOR
-
-
Constructor Details
-
ResourceExtension
ResourceExtension()
-
-
Method Details
-
supportsParameter
public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) - Specified by:
supportsParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver
-
resolveParameter
public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException - Specified by:
resolveParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-
checkType
-
resolveNew
-
newResource
-
uniqueKey
private long uniqueKey() -
testMethodDescription
private String testMethodDescription(org.junit.jupiter.api.extension.ExtensionContext extensionContext) -
getMethod
-
interceptTestMethod
public void interceptTestMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptTestFactoryMethod
public <T> T interceptTestFactoryMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestFactoryMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptDynamicTest
public void interceptDynamicTest(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.DynamicTestInvocationContext invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptDynamicTestin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptTestTemplateMethod
public void interceptTestTemplateMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestTemplateMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptTestClassConstructor
public <T> T interceptTestClassConstructor(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Constructor<T>> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptTestClassConstructorin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptBeforeAllMethod
public void interceptBeforeAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptBeforeAllMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptAfterAllMethod
public void interceptAfterAllMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptAfterAllMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptBeforeEachMethod
public void interceptBeforeEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptBeforeEachMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
interceptAfterEachMethod
public void interceptAfterEachMethod(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<Void> invocation, org.junit.jupiter.api.extension.ReflectiveInvocationContext<Method> invocationContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Specified by:
interceptAfterEachMethodin interfaceorg.junit.jupiter.api.extension.InvocationInterceptor- Throws:
Throwable
-
runSequentially
private <T> T runSequentially(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, Executable executable, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws Throwable - Throws:
Throwable
-
testFactoryMethod
-
invokeWithLocks
private <T> T invokeWithLocks(org.junit.jupiter.api.extension.InvocationInterceptor.Invocation<T> invocation, List<ReentrantLock> locks) throws Throwable - Throws:
Throwable
-