Package org.junit.jupiter.params
Class ResolverFacade
- java.lang.Object
-
- org.junit.jupiter.params.ResolverFacade
-
class ResolverFacade extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classResolverFacade.Aggregatorprivate static classResolverFacade.Converterprivate static classResolverFacade.DefaultArgumentSetLifecycleMethodParameterResolverprivate static classResolverFacade.DefaultParameterDeclarationsprivate static classResolverFacade.ExecutableParameterDeclarationprivate static classResolverFacade.FieldParameterDeclaration(package private) static classResolverFacade.RequiredParameterCountprivate static classResolverFacade.ResolvableParameterDeclarationprivate static interfaceResolverFacade.Resolver
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<? extends ResolverFacade.ResolvableParameterDeclaration>aggregatorParametersprivate ResolverFacade.DefaultParameterDeclarationsindexedParameterDeclarationsprivate intparameterIndexOffsetprivate ResolverFacade.RequiredParameterCountrequiredParameterCountprivate java.util.Map<ParameterDeclaration,ResolverFacade.Resolver>resolvers
-
Constructor Summary
Constructors Modifier Constructor Description privateResolverFacade(java.lang.reflect.AnnotatedElement sourceElement, java.util.NavigableMap<java.lang.Integer,? extends ResolverFacade.ResolvableParameterDeclaration> indexedParameters, java.util.Set<? extends ResolverFacade.ResolvableParameterDeclaration> aggregatorParameters, int parameterIndexOffset, ResolverFacade.RequiredParameterCount requiredParameterCount)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static <T> TconfigurationErrorOrSuccess(java.util.List<java.lang.String> errors, java.util.function.Supplier<T> successfulResult)(package private) static ResolverFacadecreate(java.lang.Class<?> clazz, java.util.List<java.lang.reflect.Field> fields)(package private) static ResolverFacadecreate(java.lang.reflect.Constructor<?> constructor, ParameterizedClass annotation)private static ResolverFacadecreate(java.lang.reflect.Executable executable, java.lang.annotation.Annotation annotation, int indexOffset)Create a newResolverFacadefor the suppliedExecutable.(package private) static ResolverFacadecreate(java.lang.reflect.Method method, java.lang.annotation.Annotation annotation)private static ResolverFacade.AggregatorcreateAggregator(ParameterDeclaration declaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext)private static ResolverFacade.ConvertercreateConverter(ParameterDeclaration declaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext)(package private) ArgumentSetLifecycleMethod.ParameterResolvercreateLifecycleMethodParameterResolver(java.lang.reflect.Method method, java.lang.annotation.Annotation annotation)(package private) intdetermineConsumedArgumentCount(EvaluatedArgumentSet arguments)Determine the number of arguments that are considered consumed by the parameter declarations in this resolver.(package private) intdetermineConsumedArgumentLength(int totalLength)Determine the length of the arguments array that is considered consumed by the parameter declarations in this resolver.private java.util.Optional<? extends ResolverFacade.ResolvableParameterDeclaration>findDeclaration(int parameterIndex)private java.util.stream.Stream<ParameterDeclaration>getAllParameterDeclarations()(package private) ParameterDeclarationsgetIndexedParameterDeclarations()(package private) java.util.Optional<java.lang.String>getParameterName(int parameterIndex)Get the name of the parameter with the supplied index, if it is present and declared before the aggregators.(package private) ResolverFacade.RequiredParameterCountgetRequiredParameterCount()private ResolverFacade.ResolvergetResolver(org.junit.jupiter.api.extension.ExtensionContext extensionContext, ResolverFacade.ResolvableParameterDeclaration declaration)(package private) booleanisSupportedParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, EvaluatedArgumentSet arguments)private static java.lang.StringparameterName(ParameterDeclaration actualDeclaration)private static org.junit.jupiter.api.extension.ParameterResolutionExceptionparameterResolutionException(java.lang.String message, java.lang.Exception cause, int index)(package private) java.lang.Objectresolve(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, ResolutionCache resolutionCache)Resolve the parameter for the supplied context using the supplied arguments.private java.lang.Objectresolve(ResolverFacade.ResolvableParameterDeclaration parameterDeclaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, java.util.Optional<org.junit.jupiter.api.extension.ParameterContext> parameterContext)(package private) voidresolveAndInjectFields(java.lang.Object testInstance, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, ResolutionCache resolutionCache)private voidsetField(java.lang.Object testInstance, ResolverFacade.FieldParameterDeclaration declaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, ResolutionCache resolutionCache)private inttoLogicalIndex(org.junit.jupiter.api.extension.ParameterContext parameterContext)private static voidvalidateAggregatorParameters(java.util.Set<ResolverFacade.FieldParameterDeclaration> aggregatorParameters, java.util.List<java.lang.String> errors)private static java.util.NavigableMap<java.lang.Integer,ResolverFacade.FieldParameterDeclaration>validateFieldDeclarations(java.util.NavigableMap<java.lang.Integer,java.util.List<ResolverFacade.FieldParameterDeclaration>> indexedParameters, java.util.Set<ResolverFacade.FieldParameterDeclaration> aggregatorParameters)private static voidvalidateIndexedParameterDeclarations(int index, java.util.List<ResolverFacade.FieldParameterDeclaration> declarations, java.util.List<java.lang.String> errors)private static voidvalidateIndexedParameters(java.util.NavigableMap<java.lang.Integer,java.util.List<ResolverFacade.FieldParameterDeclaration>> indexedParameters, java.util.List<java.lang.String> errors)private static java.util.List<java.lang.String>validateLifecycleMethodParameters(java.lang.reflect.Method method, java.lang.annotation.Annotation annotation, ResolverFacade originalResolverFacade, ResolverFacade lifecycleMethodResolverFacade, java.util.Map<ParameterDeclaration,ResolverFacade.ResolvableParameterDeclaration> parameterDeclarationMapping)
-
-
-
Field Detail
-
parameterIndexOffset
private final int parameterIndexOffset
-
resolvers
private final java.util.Map<ParameterDeclaration,ResolverFacade.Resolver> resolvers
-
indexedParameterDeclarations
private final ResolverFacade.DefaultParameterDeclarations indexedParameterDeclarations
-
aggregatorParameters
private final java.util.Set<? extends ResolverFacade.ResolvableParameterDeclaration> aggregatorParameters
-
requiredParameterCount
private final ResolverFacade.RequiredParameterCount requiredParameterCount
-
-
Constructor Detail
-
ResolverFacade
private ResolverFacade(java.lang.reflect.AnnotatedElement sourceElement, java.util.NavigableMap<java.lang.Integer,? extends ResolverFacade.ResolvableParameterDeclaration> indexedParameters, java.util.Set<? extends ResolverFacade.ResolvableParameterDeclaration> aggregatorParameters, int parameterIndexOffset, ResolverFacade.RequiredParameterCount requiredParameterCount)
-
-
Method Detail
-
create
static ResolverFacade create(java.lang.Class<?> clazz, java.util.List<java.lang.reflect.Field> fields)
-
create
static ResolverFacade create(java.lang.reflect.Constructor<?> constructor, ParameterizedClass annotation)
-
create
static ResolverFacade create(java.lang.reflect.Method method, java.lang.annotation.Annotation annotation)
-
create
private static ResolverFacade create(java.lang.reflect.Executable executable, java.lang.annotation.Annotation annotation, int indexOffset)
Create a newResolverFacadefor the suppliedExecutable.This method takes a best-effort approach at enforcing the following policy for parameterized class constructors and 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
ParameterResolverimplementations come last.
-
getIndexedParameterDeclarations
ParameterDeclarations getIndexedParameterDeclarations()
-
getRequiredParameterCount
ResolverFacade.RequiredParameterCount getRequiredParameterCount()
-
isSupportedParameter
boolean isSupportedParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, EvaluatedArgumentSet arguments)
-
getParameterName
java.util.Optional<java.lang.String> getParameterName(int parameterIndex)
Get the name of the parameter with the supplied index, if it is present and declared before the aggregators.- Returns:
- an
Optionalcontaining the name of the parameter
-
determineConsumedArgumentLength
int determineConsumedArgumentLength(int totalLength)
Determine the length of the arguments array that is considered consumed by the parameter declarations in this resolver.If an aggregator is present, all arguments are considered consumed. Otherwise, the consumed argument length is the minimum of the total length and the number of indexed parameter declarations.
-
determineConsumedArgumentCount
int determineConsumedArgumentCount(EvaluatedArgumentSet arguments)
Determine the number of arguments that are considered consumed by the parameter declarations in this resolver.If an aggregator is present, all arguments are considered consumed. Otherwise, the consumed argument count, is the number of indexes that correspond to indexed parameter declarations.
-
createLifecycleMethodParameterResolver
ArgumentSetLifecycleMethod.ParameterResolver createLifecycleMethodParameterResolver(java.lang.reflect.Method method, java.lang.annotation.Annotation annotation)
-
resolve
java.lang.Object resolve(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, ResolutionCache resolutionCache)Resolve the parameter for the supplied context using the supplied arguments.
-
findDeclaration
private java.util.Optional<? extends ResolverFacade.ResolvableParameterDeclaration> findDeclaration(int parameterIndex)
-
resolveAndInjectFields
void resolveAndInjectFields(java.lang.Object testInstance, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, ResolutionCache resolutionCache)
-
getAllParameterDeclarations
private java.util.stream.Stream<ParameterDeclaration> getAllParameterDeclarations()
-
setField
private void setField(java.lang.Object testInstance, ResolverFacade.FieldParameterDeclaration declaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, ResolutionCache resolutionCache)
-
resolve
private java.lang.Object resolve(ResolverFacade.ResolvableParameterDeclaration parameterDeclaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext, EvaluatedArgumentSet arguments, int invocationIndex, java.util.Optional<org.junit.jupiter.api.extension.ParameterContext> parameterContext)
-
getResolver
private ResolverFacade.Resolver getResolver(org.junit.jupiter.api.extension.ExtensionContext extensionContext, ResolverFacade.ResolvableParameterDeclaration declaration)
-
toLogicalIndex
private int toLogicalIndex(org.junit.jupiter.api.extension.ParameterContext parameterContext)
-
validateFieldDeclarations
private static java.util.NavigableMap<java.lang.Integer,ResolverFacade.FieldParameterDeclaration> validateFieldDeclarations(java.util.NavigableMap<java.lang.Integer,java.util.List<ResolverFacade.FieldParameterDeclaration>> indexedParameters, java.util.Set<ResolverFacade.FieldParameterDeclaration> aggregatorParameters)
-
validateLifecycleMethodParameters
private static java.util.List<java.lang.String> validateLifecycleMethodParameters(java.lang.reflect.Method method, java.lang.annotation.Annotation annotation, ResolverFacade originalResolverFacade, ResolverFacade lifecycleMethodResolverFacade, java.util.Map<ParameterDeclaration,ResolverFacade.ResolvableParameterDeclaration> parameterDeclarationMapping)
-
parameterName
private static java.lang.String parameterName(ParameterDeclaration actualDeclaration)
-
configurationErrorOrSuccess
private static <T> T configurationErrorOrSuccess(java.util.List<java.lang.String> errors, java.util.function.Supplier<T> successfulResult)
-
validateIndexedParameters
private static void validateIndexedParameters(java.util.NavigableMap<java.lang.Integer,java.util.List<ResolverFacade.FieldParameterDeclaration>> indexedParameters, java.util.List<java.lang.String> errors)
-
validateIndexedParameterDeclarations
private static void validateIndexedParameterDeclarations(int index, java.util.List<ResolverFacade.FieldParameterDeclaration> declarations, java.util.List<java.lang.String> errors)
-
validateAggregatorParameters
private static void validateAggregatorParameters(java.util.Set<ResolverFacade.FieldParameterDeclaration> aggregatorParameters, java.util.List<java.lang.String> errors)
-
createConverter
private static ResolverFacade.Converter createConverter(ParameterDeclaration declaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
createAggregator
private static ResolverFacade.Aggregator createAggregator(ParameterDeclaration declaration, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
parameterResolutionException
private static org.junit.jupiter.api.extension.ParameterResolutionException parameterResolutionException(java.lang.String message, java.lang.Exception cause, int index)
-
-