@Test(dataProvider = "notTestContexts") public void testNegativeCaseIsOrImplementsInterface(final Class<?> clazz) { Assert.assertFalse(ReflectionRecipes.isOrImplementsInterface(ITestContext.class, clazz)); }
@Test(dataProvider = "testContexts") public void testIsOrImplementsInterface(final Class<?> clazz) { Assert.assertTrue(ReflectionRecipes.isOrImplementsInterface(ITestContext.class, clazz)); }
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 IWeaveXml instantiateIfRequired() { if (instance != null) { return instance; } instance = attemptDefaultImplementationInstantiation(); if (instance != null) { return instance; } Class<?> clazz = ClassHelper.forName(getClassName()); boolean isValid = ReflectionRecipes.isOrImplementsInterface(IWeaveXml.class, clazz); if (!isValid) { String msg = "In order for " + getClassName() + " to be used by TestNG for generating suite/test xmls, " + getClassName() + " needs to implement " + IWeaveXml.class.getName(); throw new TestNGException(msg); } instance = (IWeaveXml) ClassHelper.newInstance(clazz); return instance; }
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 IWeaveXml instantiateIfRequired() { if (instance != null) { return instance; } instance = attemptDefaultImplementationInstantiation(); if (instance != null) { return instance; } Class<?> clazz = ClassHelper.forName(getClassName()); boolean isValid = ReflectionRecipes.isOrImplementsInterface(IWeaveXml.class, clazz); if (!isValid) { String msg = "In order for " + getClassName() + " to be used by TestNG for generating suite/test xmls, " + getClassName() + " needs to implement " + IWeaveXml.class.getName(); throw new TestNGException(msg); } instance = (IWeaveXml) ClassHelper.newInstance(clazz); return instance; }