Package org.testng.internal
Class Parameters
- java.lang.Object
-
- org.testng.internal.Parameters
-
public class Parameters extends java.lang.Object
Methods that bind parameters declared in testng.xml to actual values used to invoke methods.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
Parameters.FilterOutInJectedTypesResult
Store the result of parameterTypes and optionalValues after filter out injected typesstatic class
Parameters.MethodParameters
A parameter passing helper class.
-
Field Summary
Fields Modifier and Type Field Description private static java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>>
annotationList
private static java.util.List<java.lang.Class<?>>
INJECTED_TYPES
private static java.util.Map<java.lang.String,java.util.List<java.lang.Class<?>>>
mapping
static java.lang.String
NULL_VALUE
-
Constructor Summary
Constructors Constructor Description Parameters()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private static boolean
areAllOptionalValuesNull(java.lang.String[] optionalValues)
private static boolean
canInject(java.lang.String annotation)
private static void
checkParameterTypes(java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.String methodAnnotation, java.lang.String[] parameterNames)
static <T> T
convertType(java.lang.Class<T> type, java.lang.String value, java.lang.String paramName)
static java.lang.Object[]
createConfigurationParameters(java.lang.reflect.Method m, java.util.Map<java.lang.String,java.lang.String> params, java.lang.Object[] parameterValues, ITestNGMethod currentTestMethod, IAnnotationFinder finder, XmlSuite xmlSuite, ITestContext ctx, ITestResult testResult)
Creates the parameters needed for the specified @ConfigurationMethod
.static java.lang.Object[]
createInstantiationParameters(java.lang.reflect.Constructor ctor, java.lang.String methodAnnotation, IAnnotationFinder finder, java.lang.String[] parameterNames, java.util.Map<java.lang.String,java.lang.String> params, XmlSuite xmlSuite)
Creates the parameters needed for constructing a test class instance.private static java.lang.Object[]
createParameters(ConstructorOrMethod m, Parameters.MethodParameters params, IAnnotationFinder finder, XmlSuite xmlSuite, java.lang.String atName)
private static java.lang.Object[]
createParametersForConstructor(java.lang.reflect.Constructor constructor, java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues, java.lang.String methodAnnotation, java.lang.String[] parameterNames, Parameters.MethodParameters params, XmlSuite xmlSuite)
private static java.lang.Object[]
createParametersForMethod(ConstructorOrMethod method, java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues, java.lang.String methodAnnotation, java.lang.String[] parameterNames, Parameters.MethodParameters params, XmlSuite xmlSuite)
private static java.util.List<java.lang.Object>
createParams(java.lang.String name, java.lang.String prefix, java.lang.String methodAnnotation, java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues, java.lang.String[] parameterNames, Parameters.MethodParameters params, XmlSuite xmlSuite)
private static java.lang.String[]
extractOptionalValues(IAnnotationFinder finder, ConstructorOrMethod consMethod)
private static Parameter[]
extractParameters(ConstructorOrMethod method)
(package private) static Parameters.FilterOutInJectedTypesResult
filterOutInJectedTypesFromOptionalValues(java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues)
Remove injected types from parameterTypes and optionalValuesprivate static IDataProviderMethod
findDataProvider(java.lang.Object instance, ITestClass clazz, IAnnotationFinder finder, java.lang.String name, java.lang.Class<?> dataProviderClass, ITestContext context)
Find a method that has a @DataProvider(name=name)private static IDataProviderMethod
findDataProvider(java.lang.Object instance, ITestClass clazz, ConstructorOrMethod m, IAnnotationFinder finder, ITestContext context)
private static IDataProvidable
findDataProviderInfo(ITestClass clazz, ConstructorOrMethod m, IAnnotationFinder finder)
Find the data provider info (data provider name and class) on either @Test(dataProvider),@Factory(dataProvider)
on a method or @Factory(dataProvider) on a constructor.private static java.lang.String
getDataProviderName(IDataProviderAnnotation dp, java.lang.reflect.Method m)
static java.lang.Object
getInjectedParameter(java.lang.Class<?> c, java.lang.reflect.Method method, ITestContext context, ITestResult testResult)
Deprecated.- This method stands deprecated as of TestNG v6.11.static java.lang.Object[]
getParametersFromIndex(java.util.Iterator<java.lang.Object[]> parametersValues, int index)
static ParameterHolder
handleParameters(ITestNGMethod testMethod, java.util.Map<java.lang.String,java.lang.String> allParameterNames, java.lang.Object instance, Parameters.MethodParameters methodParams, XmlSuite xmlSuite, IAnnotationFinder annotationFinder, java.lang.Object fedInstance, java.util.Collection<IDataProviderListener> dataProviderListeners)
If the method has parameters, fill them in.static ParameterHolder
handleParameters(ITestNGMethod testMethod, java.util.Map<java.lang.String,java.lang.String> allParameterNames, java.lang.Object instance, Parameters.MethodParameters methodParams, XmlSuite xmlSuite, IAnnotationFinder annotationFinder, java.lang.Object fedInstance, java.util.Collection<IDataProviderListener> dataProviderListeners, java.lang.String annotationName)
If the method has parameters, fill them in.static java.lang.Object[]
injectParameters(java.lang.Object[] parameterValues, java.lang.reflect.Method method, ITestContext context)
Gets an array of parameter values returned by data provider or the ones that are injected based on parameter type.private static boolean
isDataProviderClassEmpty(ITestAnnotation annotation)
private static boolean
isDataProviderNameEmpty(ITestAnnotation annotation)
private static IDataProvidable
merge(ITestAnnotation methodLevel, ITestAnnotation classLevel)
private static java.lang.String
prettyFormat(java.util.List<java.lang.Class<?>> classes)
private static java.lang.Class<? extends java.lang.annotation.Annotation>
retrieveConfigAnnotation(java.lang.reflect.Method m)
private static boolean
validParameters(java.lang.String methodAnnotation, java.lang.Class[] parameterTypes)
-
-
-
Field Detail
-
NULL_VALUE
public static final java.lang.String NULL_VALUE
- See Also:
- Constant Field Values
-
annotationList
private static java.util.List<java.lang.Class<? extends java.lang.annotation.Annotation>> annotationList
-
mapping
private static java.util.Map<java.lang.String,java.util.List<java.lang.Class<?>>> mapping
-
INJECTED_TYPES
private static final java.util.List<java.lang.Class<?>> INJECTED_TYPES
-
-
Method Detail
-
createInstantiationParameters
public static java.lang.Object[] createInstantiationParameters(java.lang.reflect.Constructor ctor, java.lang.String methodAnnotation, IAnnotationFinder finder, java.lang.String[] parameterNames, java.util.Map<java.lang.String,java.lang.String> params, XmlSuite xmlSuite)
Creates the parameters needed for constructing a test class instance.
-
createConfigurationParameters
public static java.lang.Object[] createConfigurationParameters(java.lang.reflect.Method m, java.util.Map<java.lang.String,java.lang.String> params, java.lang.Object[] parameterValues, @Nullable ITestNGMethod currentTestMethod, IAnnotationFinder finder, XmlSuite xmlSuite, ITestContext ctx, ITestResult testResult)
Creates the parameters needed for the specified @ConfigurationMethod
.- Parameters:
m
- the configuraton methodcurrentTestMethod
- the current @Test method ornull
if no @Test is available (this is not only in case the configuration method is a @Before/@AfterMethodfinder
- the annotation finder
-
retrieveConfigAnnotation
private static java.lang.Class<? extends java.lang.annotation.Annotation> retrieveConfigAnnotation(java.lang.reflect.Method m)
-
getInjectedParameter
@Deprecated public static java.lang.Object getInjectedParameter(java.lang.Class<?> c, java.lang.reflect.Method method, ITestContext context, ITestResult testResult)
Deprecated.- This method stands deprecated as of TestNG v6.11. There are no alternatives.
-
createParametersForConstructor
private static java.lang.Object[] createParametersForConstructor(java.lang.reflect.Constructor constructor, java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues, java.lang.String methodAnnotation, java.lang.String[] parameterNames, Parameters.MethodParameters params, XmlSuite xmlSuite)
-
createParams
private static java.util.List<java.lang.Object> createParams(java.lang.String name, java.lang.String prefix, java.lang.String methodAnnotation, java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues, java.lang.String[] parameterNames, Parameters.MethodParameters params, XmlSuite xmlSuite)
-
filterOutInJectedTypesFromOptionalValues
static Parameters.FilterOutInJectedTypesResult filterOutInJectedTypesFromOptionalValues(java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues)
Remove injected types from parameterTypes and optionalValues- Parameters:
parameterTypes
- - The parameter types to be usedoptionalValues
- - The optional values to be considered.- Returns:
- FilterOutInJectedTypesResult
-
areAllOptionalValuesNull
private static boolean areAllOptionalValuesNull(java.lang.String[] optionalValues)
-
createParametersForMethod
private static java.lang.Object[] createParametersForMethod(ConstructorOrMethod method, java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues, java.lang.String methodAnnotation, java.lang.String[] parameterNames, Parameters.MethodParameters params, XmlSuite xmlSuite)
- Returns:
- An array of parameters suitable to invoke this method, possibly picked from the property file
-
extractParameters
private static Parameter[] extractParameters(ConstructorOrMethod method)
-
canInject
private static boolean canInject(java.lang.String annotation)
-
checkParameterTypes
private static void checkParameterTypes(java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.String methodAnnotation, java.lang.String[] parameterNames)
-
validParameters
private static boolean validParameters(java.lang.String methodAnnotation, java.lang.Class[] parameterTypes)
-
prettyFormat
private static java.lang.String prettyFormat(java.util.List<java.lang.Class<?>> classes)
-
convertType
public static <T> T convertType(java.lang.Class<T> type, java.lang.String value, java.lang.String paramName)
-
findDataProvider
private static IDataProviderMethod findDataProvider(java.lang.Object instance, ITestClass clazz, ConstructorOrMethod m, IAnnotationFinder finder, ITestContext context)
-
findDataProviderInfo
private static IDataProvidable findDataProviderInfo(ITestClass clazz, ConstructorOrMethod m, IAnnotationFinder finder)
Find the data provider info (data provider name and class) on either @Test(dataProvider),@Factory(dataProvider)
on a method or @Factory(dataProvider) on a constructor.
-
merge
private static IDataProvidable merge(ITestAnnotation methodLevel, ITestAnnotation classLevel)
-
isDataProviderClassEmpty
private static boolean isDataProviderClassEmpty(ITestAnnotation annotation)
-
isDataProviderNameEmpty
private static boolean isDataProviderNameEmpty(ITestAnnotation annotation)
-
findDataProvider
private static IDataProviderMethod findDataProvider(java.lang.Object instance, ITestClass clazz, IAnnotationFinder finder, java.lang.String name, java.lang.Class<?> dataProviderClass, ITestContext context)
Find a method that has a @DataProvider(name=name)
-
getDataProviderName
private static java.lang.String getDataProviderName(IDataProviderAnnotation dp, java.lang.reflect.Method m)
-
extractOptionalValues
private static java.lang.String[] extractOptionalValues(IAnnotationFinder finder, ConstructorOrMethod consMethod)
-
createParameters
private static java.lang.Object[] createParameters(ConstructorOrMethod m, Parameters.MethodParameters params, IAnnotationFinder finder, XmlSuite xmlSuite, java.lang.String atName)
-
handleParameters
public static ParameterHolder handleParameters(ITestNGMethod testMethod, java.util.Map<java.lang.String,java.lang.String> allParameterNames, java.lang.Object instance, Parameters.MethodParameters methodParams, XmlSuite xmlSuite, IAnnotationFinder annotationFinder, java.lang.Object fedInstance, java.util.Collection<IDataProviderListener> dataProviderListeners)
If the method has parameters, fill them in. Either by using a @DataProvider if any was provided, or by looking upin testng.xml - Returns:
- An Iterator over the values for each parameter of this method.
-
handleParameters
public static ParameterHolder handleParameters(ITestNGMethod testMethod, java.util.Map<java.lang.String,java.lang.String> allParameterNames, java.lang.Object instance, Parameters.MethodParameters methodParams, XmlSuite xmlSuite, IAnnotationFinder annotationFinder, java.lang.Object fedInstance, java.util.Collection<IDataProviderListener> dataProviderListeners, java.lang.String annotationName)
If the method has parameters, fill them in. Either by using a @DataProvider if any was provided, or by looking upin testng.xml - Returns:
- An Iterator over the values for each parameter of this method.
-
injectParameters
public static java.lang.Object[] injectParameters(java.lang.Object[] parameterValues, java.lang.reflect.Method method, ITestContext context) throws TestNGException
Gets an array of parameter values returned by data provider or the ones that are injected based on parameter type. The method also checks forNoInjection
annotation- Parameters:
parameterValues
- parameter values from a data providermethod
- method to be invokedcontext
- test context- Throws:
TestNGException
-
getParametersFromIndex
public static java.lang.Object[] getParametersFromIndex(java.util.Iterator<java.lang.Object[]> parametersValues, int index)
-
-