/** * @return An array of parameters suitable to invoke this method, possibly * picked from the property file */ private static Object[] createParametersForMethod(Method method, Class<?>[] parameterTypes, String[] optionalValues, String methodAnnotation, String[] parameterNames, MethodParameters params, XmlSuite xmlSuite) { if (parameterTypes.length == 0) { return new Object[0]; } checkParameterTypes(method.getName(), parameterTypes, methodAnnotation, parameterNames); List<Object> vResult = Lists.newArrayList(); List<Object> consParams = createParams(method.getName(), "method", methodAnnotation, parameterTypes, optionalValues, parameterNames, params, xmlSuite); if (canInject(methodAnnotation)) { Parameter[] paramsArray = ReflectionRecipes.getMethodParameters(method); Object[] inject = ReflectionRecipes.inject(paramsArray, InjectableParameter.Assistant.ALL_INJECTS, consParams.toArray(new Object[consParams.size()]), params.currentTestMethod, params.context, params.testResult); if (inject != null) { vResult.addAll(Arrays.asList(inject)); } } else { vResult.addAll(consParams); } return vResult.toArray(new Object[vResult.size()]); }
private static Object[] createParametersForConstructor(Constructor constructor, Class<?>[] parameterTypes, String[] optionalValues, String methodAnnotation, String[] parameterNames, MethodParameters params, XmlSuite xmlSuite) { if (parameterTypes.length == 0) { return new Object[0]; } checkParameterTypes(constructor.getName(), parameterTypes, methodAnnotation, parameterNames); List<Object> vResult = Lists.newArrayList(); if (canInject(methodAnnotation)) { Parameter[] paramsArray = ReflectionRecipes.getConstructorParameters(constructor); Object[] inject = ReflectionRecipes.inject(paramsArray, InjectableParameter.Assistant.ALL_INJECTS, new Object[0], constructor, params.context, params.testResult); if (inject != null) { vResult.addAll(Arrays.asList(inject)); } } List<Object> consParams = createParams(constructor.getName(), "constructor", methodAnnotation, parameterTypes, optionalValues, parameterNames, params, xmlSuite); vResult.addAll(consParams); return vResult.toArray(new Object[vResult.size()]); }
@Test(dataProvider = "methodInputParamArgsPair") public void testInject(final Parameter[] parameters, final Object[] args) { System.out.println("In: " + Arrays.asList(parameters)); System.out.println("args: " + Arrays.asList(args)); final Object[] injectedArgs = ReflectionRecipes.inject( parameters, InjectableParameter.Assistant.ALL_INJECTS, args, (Method)null, null, null ); System.out.println("injectedArgs: " + Arrays.asList(injectedArgs)); Assert.assertEquals(injectedArgs.length, parameters.length); }
Parameter[] paramsArray = ReflectionRecipes.getConstructorParameters(constructor); Object[] inject = ReflectionRecipes.inject( paramsArray, InjectableParameter.Assistant.ALL_INJECTS,
Parameter[] paramsArray = extractParameters(method); Object[] inject = ReflectionRecipes.inject( paramsArray, InjectableParameter.Assistant.ALL_INJECTS,
/** * {@inheritDoc} */ @Override public Object[] getConformingArguments() { if (getConforms() == null) { conforms(); } if (getConformingParameters() == null) { throw new MethodMatcherException(this.getClass().getSimpleName() + " mismatch", getContext().getMethod(), getContext().getArguments()); } return ReflectionRecipes.inject( getContext().getMethodParameter(), InjectableParameter.Assistant.ALL_INJECTS, matchingArguments(getConformingParameters(), getContext().getArguments()), getContext().getMethod(), getContext().getTestContext(), getContext().getTestResult() ); }
/** {@inheritDoc} */ @Override public Object[] getConformingArguments() { if (getConforms() == null) { conforms(); } if (getConformingParameters() == null) { throw new MethodMatcherException( this.getClass().getSimpleName() + " mismatch", getContext().getMethod(), getContext().getArguments()); } return ReflectionRecipes.inject( getContext().getMethodParameter(), InjectableParameter.Assistant.ALL_INJECTS, matchingArguments(getConformingParameters(), getContext().getArguments()), getContext().getMethod(), getContext().getTestContext(), getContext().getTestResult()); }