Package org.junit.jupiter.params
Class ParameterizedTestMethodContext
- java.lang.Object
-
- org.junit.jupiter.params.ParameterizedTestMethodContext
-
class ParameterizedTestMethodContext extends java.lang.Object
Encapsulates access to the parameters of a parameterized test method and caches the converters and aggregators used to resolve them.- Since:
- 5.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
ParameterizedTestMethodContext.Aggregator
(package private) static class
ParameterizedTestMethodContext.Converter
(package private) static interface
ParameterizedTestMethodContext.Resolver
(package private) static class
ParameterizedTestMethodContext.ResolverType
-
Field Summary
Fields Modifier and Type Field Description private java.lang.reflect.Parameter[]
parameters
private ParameterizedTestMethodContext.Resolver[]
resolvers
private java.util.List<ParameterizedTestMethodContext.ResolverType>
resolverTypes
-
Constructor Summary
Constructors Constructor Description ParameterizedTestMethodContext(java.lang.reflect.Method testMethod)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) int
getParameterCount()
Get the number of parameters of theMethod
represented by this context.(package private) java.util.Optional<java.lang.String>
getParameterName(int parameterIndex)
Get the name of theParameter
with the supplied index, if it is present and declared before the aggregators.private ParameterizedTestMethodContext.Resolver
getResolver(org.junit.jupiter.api.extension.ParameterContext parameterContext)
(package private) boolean
hasAggregator()
Determine if theMethod
represented by this context declares at least oneParameter
that is an aggregator.(package private) boolean
hasPotentiallyValidSignature()
Determine if theMethod
represented by this context has a potentially valid signature (i.e., formal parameter declarations) with regard to aggregators.(package private) int
indexOfFirstAggregator()
(package private) boolean
isAggregator(int parameterIndex)
Determine if theParameter
with the supplied index is an aggregator (i.e., of typeArgumentsAccessor
or annotated withAggregateWith
).private static boolean
isAggregator(java.lang.reflect.Parameter parameter)
Determine if the suppliedParameter
is an aggregator (i.e., of typeArgumentsAccessor
or annotated withAggregateWith
).private static org.junit.jupiter.api.extension.ParameterResolutionException
parameterResolutionException(java.lang.String message, java.lang.Exception cause, org.junit.jupiter.api.extension.ParameterContext parameterContext)
(package private) java.lang.Object
resolve(org.junit.jupiter.api.extension.ParameterContext parameterContext, java.lang.Object[] arguments, int invocationIndex)
Resolve the parameter for the supplied context using the supplied arguments.
-
-
-
Field Detail
-
parameters
private final java.lang.reflect.Parameter[] parameters
-
resolvers
private final ParameterizedTestMethodContext.Resolver[] resolvers
-
resolverTypes
private final java.util.List<ParameterizedTestMethodContext.ResolverType> resolverTypes
-
-
Method Detail
-
isAggregator
private static boolean isAggregator(java.lang.reflect.Parameter parameter)
Determine if the suppliedParameter
is an aggregator (i.e., of typeArgumentsAccessor
or annotated withAggregateWith
).- Returns:
true
if the parameter is an aggregator
-
hasPotentiallyValidSignature
boolean hasPotentiallyValidSignature()
Determine if theMethod
represented by this context has a potentially valid signature (i.e., formal parameter declarations) with regard to aggregators.This method takes a best-effort approach at enforcing the following policy for parameterized test methods that accept aggregators as arguments.
- zero or more indexed arguments come first.
- zero or more aggregators come next.
- zero or more arguments supplied by other
ParameterResolver
implementations come last.
- Returns:
true
if the method has a potentially valid signature
-
getParameterCount
int getParameterCount()
Get the number of parameters of theMethod
represented by this context.
-
getParameterName
java.util.Optional<java.lang.String> getParameterName(int parameterIndex)
Get the name of theParameter
with the supplied index, if it is present and declared before the aggregators.- Returns:
- an
Optional
containing the name of the parameter
-
hasAggregator
boolean hasAggregator()
Determine if theMethod
represented by this context declares at least oneParameter
that is an aggregator.- Returns:
true
if the method has an aggregator
-
isAggregator
boolean isAggregator(int parameterIndex)
Determine if theParameter
with the supplied index is an aggregator (i.e., of typeArgumentsAccessor
or annotated withAggregateWith
).- Returns:
true
if the parameter is an aggregator
-
indexOfFirstAggregator
int indexOfFirstAggregator()
- Returns:
- the index of the first aggregator, or
-1
if not found
-
resolve
java.lang.Object resolve(org.junit.jupiter.api.extension.ParameterContext parameterContext, java.lang.Object[] arguments, int invocationIndex)
Resolve the parameter for the supplied context using the supplied arguments.
-
getResolver
private ParameterizedTestMethodContext.Resolver getResolver(org.junit.jupiter.api.extension.ParameterContext parameterContext)
-
parameterResolutionException
private static org.junit.jupiter.api.extension.ParameterResolutionException parameterResolutionException(java.lang.String message, java.lang.Exception cause, org.junit.jupiter.api.extension.ParameterContext parameterContext)
-
-