/** * Extracts class instances from parameters. * * @param parameters an array of parameters. * @return parameter types. */ public static Class<?>[] classesFromParameters(final Parameter[] parameters) { final Class<?>[] classes = new Class<?>[parameters.length]; int i = 0; for (final Parameter parameter : parameters) { classes[i] = parameter.getType(); i++; } return classes; }
/** * Extracts class instances from parameters. * * @param parameters an array of parameters. * @return parameter types. */ public static Class<?>[] classesFromParameters(final Parameter[] parameters) { final Class<?>[] classes = new Class<?>[parameters.length]; int i = 0; for (final Parameter parameter : parameters) { classes[i] = parameter.getType(); i++; } return classes; }
private static boolean canInject(final Parameter parameter, final InjectableParameter injectableParameter) { boolean canInject = false; if (parameter != null ) { final boolean inject = !parameter.isAnnotationPresent(NoInjection.class); switch (injectableParameter) { case CURRENT_TEST_METHOD: final boolean isMethod = isOrExtends(Method.class, parameter.getType()); canInject = inject && isMethod; break; case ITEST_CONTEXT: canInject = inject && isOrImplementsInterface(ITestContext.class, parameter.getType()); break; case ITEST_RESULT: canInject = inject && isOrImplementsInterface(ITestResult.class, parameter.getType()); break; case XML_TEST: canInject = inject && isOrExtends(XmlTest.class, parameter.getType()); break; default: canInject = false; break; } } return canInject; }
private static boolean canInject( final Parameter parameter, final InjectableParameter injectableParameter) { boolean canInject = false; if (parameter != null) { final boolean inject = !parameter.isAnnotationPresent(NoInjection.class); switch (injectableParameter) { case CURRENT_TEST_METHOD: final boolean isMethod = isOrExtends(Method.class, parameter.getType()); canInject = inject && isMethod; break; case ITEST_CONTEXT: canInject = inject && isOrImplementsInterface(ITestContext.class, parameter.getType()); break; case ITEST_RESULT: canInject = inject && isOrImplementsInterface(ITestResult.class, parameter.getType()); break; case XML_TEST: canInject = inject && isOrExtends(XmlTest.class, parameter.getType()); break; default: canInject = false; break; } } return canInject; }
@Test(dataProvider = "methodInputParameters") public void testFilters(final Parameter[] parameters) { System.out.println("In: " + Arrays.asList(parameters)); final Parameter[] parameters1 = ReflectionRecipes.filter(parameters, InjectableParameter.Assistant.ALL_INJECTS); System.out.println("Out: " + Arrays.asList(parameters1)); Assert.assertEquals(parameters1.length, 2); Assert.assertEquals(parameters1[0].getType(), int.class); Assert.assertEquals(parameters1[1].getType(), Boolean.class); }