A
ResourceLocksProvider is used to programmatically add shared resources
to a test class or its test methods dynamically at runtime.
Each shared resource is represented by an instance of ResourceLocksProvider.Lock.
Adding shared resources via this API has the same semantics as declaring
them declaratively via @ResourceLock(value, mode), but for
some use cases the programmatic approach may be more flexible and less verbose.
Implementations must provide a no-args constructor.
- Since:
- 5.12
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classLockrepresents a shared resource. -
Method Summary
Modifier and TypeMethodDescriptiondefault Set<ResourceLocksProvider.Lock> provideForClass(Class<?> testClass) Add shared resources for a test class.default Set<ResourceLocksProvider.Lock> provideForMethod(List<Class<?>> enclosingInstanceTypes, Class<?> testClass, Method testMethod) Add shared resources for a test method.default Set<ResourceLocksProvider.Lock> provideForNestedClass(List<Class<?>> enclosingInstanceTypes, Class<?> testClass) Add shared resources for a@Nestedtest class.
-
Method Details
-
provideForClass
Add shared resources for a test class.Invoked in case a test class or its parent class is annotated with
@ResourceLock(providers).- Parameters:
testClass- a test class for which to add shared resources- Returns:
- a set of
ResourceLocksProvider.Lock; may be empty - API Note:
- Adding a shared resource via this method has
the same semantics as annotating a test class with an analogous
@ResourceLock(value, mode)declaration.
-
provideForNestedClass
default Set<ResourceLocksProvider.Lock> provideForNestedClass(List<Class<?>> enclosingInstanceTypes, Class<?> testClass) Add shared resources for a@Nestedtest class.Invoked in case:
- an enclosing test class of any level or its parent class is
annotated with
@ResourceLock(providers = ...). - a nested test class or its parent class is annotated with
@ResourceLock(providers = ...).
- Parameters:
enclosingInstanceTypes- the runtime types of the enclosing instances for the test class, ordered from outermost to innermost, excludingtestClass; nevernulltestClass- a nested test class for which to add shared resources- Returns:
- a set of
ResourceLocksProvider.Lock; may be empty - See Also:
- API Note:
- Adding a shared resource via this method has
the same semantics as annotating a nested test class with an analogous
@ResourceLock(value, mode)declaration. - Implementation Note:
- The classes supplied as
enclosingInstanceTypesmay differ from the classes returned from invocations ofClass.getEnclosingClass()— for example, when a nested test class is inherited from a superclass.
- an enclosing test class of any level or its parent class is
annotated with
-
provideForMethod
default Set<ResourceLocksProvider.Lock> provideForMethod(List<Class<?>> enclosingInstanceTypes, Class<?> testClass, Method testMethod) Add shared resources for a test method.Invoked in case:
- an enclosing test class of any level or its parent class is
annotated with
@ResourceLock(providers). - a test method is annotated with
@ResourceLock(providers).
- Parameters:
enclosingInstanceTypes- the runtime types of the enclosing instances for the test class, ordered from outermost to innermost, excludingtestClass; nevernulltestClass- the test class or@Nestedtest class that contains thetestMethodtestMethod- a test method for which to add shared resources- Returns:
- a set of
ResourceLocksProvider.Lock; may be empty - See Also:
- API Note:
- Adding a shared resource with this method
has the same semantics as annotating a test method
with analogous
@ResourceLock(value, mode). - Implementation Note:
- The classes supplied as
enclosingInstanceTypesmay differ from the classes returned from invocations ofClass.getEnclosingClass()— for example, when a nested test class is inherited from a superclass. Similarly, the class instance supplied astestClassmay differ from the class returned bytestMethod.getDeclaringClass()— for example, when a test method is inherited from a superclass.
- an enclosing test class of any level or its parent class is
annotated with
-