Package org.testng.internal
Class Parameters
- java.lang.Object
-
- org.testng.internal.Parameters
-
public class Parameters extends java.lang.ObjectMethods 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 classParameters.FilterOutInJectedTypesResultStore the result of parameterTypes and optionalValues after filter out injected typesstatic classParameters.MethodParametersA 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>>annotationListprivate static java.util.List<java.lang.Class<?>>INJECTED_TYPESprivate static java.util.Map<java.lang.String,java.util.List<java.lang.Class<?>>>mappingstatic java.lang.StringNULL_VALUE
-
Constructor Summary
Constructors Constructor Description Parameters()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description private static booleanareAllOptionalValuesNull(java.lang.String[] optionalValues)private static booleancanInject(java.lang.String annotation)private static voidcheckParameterTypes(java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.String methodAnnotation, java.lang.String[] parameterNames)static <T> TconvertType(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.FilterOutInJectedTypesResultfilterOutInJectedTypesFromOptionalValues(java.lang.Class<?>[] parameterTypes, java.lang.String[] optionalValues)Remove injected types from parameterTypes and optionalValuesprivate static IDataProviderMethodfindDataProvider(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 IDataProviderMethodfindDataProvider(java.lang.Object instance, ITestClass clazz, ConstructorOrMethod m, IAnnotationFinder finder, ITestContext context)private static IDataProvidablefindDataProviderInfo(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.StringgetDataProviderName(IDataProviderAnnotation dp, java.lang.reflect.Method m)static java.lang.Object[]getParametersFromIndex(java.util.Iterator<java.lang.Object[]> parametersValues, int index)static ParameterHolderhandleParameters(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, DataProviderHolder holder)If the method has parameters, fill them in.static ParameterHolderhandleParameters(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, DataProviderHolder holder, 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 booleanisDataProviderClassEmpty(ITestAnnotation annotation)private static booleanisDataProviderNameEmpty(ITestAnnotation annotation)private static IDataProvidablemerge(ITestAnnotation methodLevel, ITestAnnotation classLevel)private static java.lang.StringprettyFormat(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 booleanvalidParameters(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 ornullif 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)
-
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, DataProviderHolder holder)
If the method has parameters, fill them in. Either by using a @DataProvider if any was provided, or by looking up<parameters>in 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, DataProviderHolder holder, java.lang.String annotationName)
If the method has parameters, fill them in. Either by using a @DataProvider if any was provided, or by looking up<parameters>in 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 TestNGExceptionGets an array of parameter values returned by data provider or the ones that are injected based on parameter type. The method also checks forNoInjectionannotation- 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)
-
-