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.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.lang.Class<? extends IAnnotation>>ANNOTATION_MAPprivate static java.lang.Class<?>[]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 Deprecated Methods Modifier and Type Method Description 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(java.lang.reflect.Method m, Parameters.MethodParameters params, IAnnotationFinder finder, XmlSuite xmlSuite, java.lang.Class annotationClass, 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(java.lang.reflect.Method 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)(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),private static java.lang.StringgetDataProviderName(IDataProviderAnnotation dp, java.lang.reflect.Method m)static java.lang.ObjectgetInjectedParameter(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 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)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, java.util.Collection<IDataProviderListener> dataProviderListeners)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 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
-
ANNOTATION_MAP
private static final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>,java.lang.Class<? extends IAnnotation>> ANNOTATION_MAP
-
annotationList
private static java.lang.Class<?>[] 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.- Parameters:
finder- TODO
-
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)
-
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-optionalValues-- Returns:
- FilterOutInJectedTypesResult
-
createParametersForMethod
private static java.lang.Object[] createParametersForMethod(java.lang.reflect.Method 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
-
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),
-
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)
-
createParameters
private static java.lang.Object[] createParameters(java.lang.reflect.Method m, Parameters.MethodParameters params, IAnnotationFinder finder, XmlSuite xmlSuite, java.lang.Class annotationClass, 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)
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)
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 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)
-
-