public static <E extends Enum<?> & Feature<?>> void assertGoodFeatureEnum( Class<E> featureEnumClass) { final Class<?>[] classes = featureEnumClass.getDeclaredClasses(); for (Class<?> containedClass : classes) { if (containedClass.getSimpleName().equals("Require")) { if (containedClass.isAnnotation()) { assertGoodTesterAnnotation(asAnnotation(containedClass)); } else { fail( rootLocaleFormat( "Feature enum %s contains a class named " + "'Require' but it is not an annotation.", featureEnumClass)); } return; } } fail( rootLocaleFormat( "Feature enum %s should contain an " + "annotation named 'Require'.", featureEnumClass)); }
private static void assertGoodTesterAnnotation(Class<? extends Annotation> annotationClass) { assertNotNull( rootLocaleFormat("%s must be annotated with @TesterAnnotation.", annotationClass), annotationClass.getAnnotation(TesterAnnotation.class)); final Retention retentionPolicy = annotationClass.getAnnotation(Retention.class); assertNotNull( rootLocaleFormat("%s must have a @Retention annotation.", annotationClass), retentionPolicy); assertEquals( rootLocaleFormat("%s must have RUNTIME RetentionPolicy.", annotationClass), RetentionPolicy.RUNTIME, retentionPolicy.value()); assertNotNull( rootLocaleFormat("%s must be inherited.", annotationClass), annotationClass.getAnnotation(Inherited.class)); method = annotationClass.getMethod(propertyName); } catch (NoSuchMethodException e) { fail( rootLocaleFormat("%s must have a property named '%s'.", annotationClass, propertyName)); assertTrue( rootLocaleFormat("%s.%s() must return an array.", annotationClass, propertyName), returnType.isArray()); assertSame( rootLocaleFormat( "%s.%s() must return an array of %s.", annotationClass, propertyName, annotationClass.getDeclaringClass()),
public void testFeatureEnums() throws Exception { assertGoodFeatureEnum(CollectionFeature.class); assertGoodFeatureEnum(ListFeature.class); assertGoodFeatureEnum(SetFeature.class); assertGoodFeatureEnum(CollectionSize.class); assertGoodFeatureEnum(MapFeature.class); }
public static <E extends Enum<?> & Feature<?>> void assertGoodFeatureEnum( Class<E> featureEnumClass) { final Class<?>[] classes = featureEnumClass.getDeclaredClasses(); for (Class<?> containedClass : classes) { if (containedClass.getSimpleName().equals("Require")) { if (containedClass.isAnnotation()) { assertGoodTesterAnnotation(asAnnotation(containedClass)); } else { fail(String.format("Feature enum %s contains a class named " + "'Require' but it is not an annotation.", featureEnumClass)); } return; } } fail(String.format("Feature enum %s should contain an " + "annotation named 'Require'.", featureEnumClass)); }
@SuppressWarnings("unchecked") private static Class<? extends Annotation> asAnnotation(Class<?> clazz) { if (clazz.isAnnotation()) { return (Class<? extends Annotation>) clazz; } else { throw new IllegalArgumentException(rootLocaleFormat("%s is not an annotation.", clazz)); } }
@SuppressWarnings("unchecked") private static Class<? extends Annotation> asAnnotation(Class<?> clazz) { if (clazz.isAnnotation()) { return (Class<? extends Annotation>) clazz; } else { throw new IllegalArgumentException(rootLocaleFormat("%s is not an annotation.", clazz)); } }
private static void assertGoodTesterAnnotation(Class<? extends Annotation> annotationClass) { assertNotNull( rootLocaleFormat("%s must be annotated with @TesterAnnotation.", annotationClass), annotationClass.getAnnotation(TesterAnnotation.class)); final Retention retentionPolicy = annotationClass.getAnnotation(Retention.class); assertNotNull( rootLocaleFormat("%s must have a @Retention annotation.", annotationClass), retentionPolicy); assertEquals( rootLocaleFormat("%s must have RUNTIME RetentionPolicy.", annotationClass), RetentionPolicy.RUNTIME, retentionPolicy.value()); assertNotNull( rootLocaleFormat("%s must be inherited.", annotationClass), annotationClass.getAnnotation(Inherited.class)); method = annotationClass.getMethod(propertyName); } catch (NoSuchMethodException e) { fail( rootLocaleFormat("%s must have a property named '%s'.", annotationClass, propertyName)); assertTrue( rootLocaleFormat("%s.%s() must return an array.", annotationClass, propertyName), returnType.isArray()); assertSame( rootLocaleFormat( "%s.%s() must return an array of %s.", annotationClass, propertyName, annotationClass.getDeclaringClass()),
public static <E extends Enum<?> & Feature<?>> void assertGoodFeatureEnum( Class<E> featureEnumClass) { final Class<?>[] classes = featureEnumClass.getDeclaredClasses(); for (Class<?> containedClass : classes) { if (containedClass.getSimpleName().equals("Require")) { if (containedClass.isAnnotation()) { assertGoodTesterAnnotation(asAnnotation(containedClass)); } else { fail( rootLocaleFormat( "Feature enum %s contains a class named " + "'Require' but it is not an annotation.", featureEnumClass)); } return; } } fail( rootLocaleFormat( "Feature enum %s should contain an " + "annotation named 'Require'.", featureEnumClass)); }
public void testTestFeatureEnums() throws Exception { // Haha! Let's test our own test rig! FeatureEnumTest.assertGoodFeatureEnum(FeatureUtilTest.ExampleBaseFeature.class); FeatureEnumTest.assertGoodFeatureEnum(FeatureUtilTest.ExampleDerivedFeature.class); }
private static void assertGoodTesterAnnotation( Class<? extends Annotation> annotationClass) { assertNotNull( String.format("%s must be annotated with @TesterAnnotation.", annotationClass), final Retention retentionPolicy = annotationClass.getAnnotation(Retention.class); assertNotNull( String.format("%s must have a @Retention annotation.", annotationClass), retentionPolicy); assertEquals( String.format("%s must have RUNTIME RetentionPolicy.", annotationClass), RetentionPolicy.RUNTIME, retentionPolicy.value()); assertNotNull( String.format("%s must be inherited.", annotationClass), annotationClass.getAnnotation(Inherited.class)); method = annotationClass.getMethod(propertyName); } catch (NoSuchMethodException e) { fail(String.format("%s must have a property named '%s'.", annotationClass, propertyName)); assertTrue(String.format("%s.%s() must return an array.", annotationClass, propertyName), returnType.isArray()); assertSame(String.format("%s.%s() must return an array of %s.", annotationClass, propertyName, annotationClass.getDeclaringClass()), annotationClass.getDeclaringClass(), returnType.getComponentType());
public void testFeatureEnums() throws Exception { assertGoodFeatureEnum(CollectionFeature.class); assertGoodFeatureEnum(ListFeature.class); assertGoodFeatureEnum(SetFeature.class); assertGoodFeatureEnum(CollectionSize.class); assertGoodFeatureEnum(MapFeature.class); }
public void testTestFeatureEnums() throws Exception { // Haha! Let's test our own test rig! FeatureEnumTest.assertGoodFeatureEnum(FeatureUtilTest.ExampleBaseFeature.class); FeatureEnumTest.assertGoodFeatureEnum(FeatureUtilTest.ExampleDerivedFeature.class); }
public void testTestFeatureEnums() throws Exception { // Haha! Let's test our own test rig! FeatureEnumTest.assertGoodFeatureEnum( FeatureUtilTest.ExampleBaseFeature.class); FeatureEnumTest.assertGoodFeatureEnum( FeatureUtilTest.ExampleDerivedFeature.class); }
public void testFeatureEnums() throws Exception { assertGoodFeatureEnum(CollectionFeature.class); assertGoodFeatureEnum(ListFeature.class); assertGoodFeatureEnum(SetFeature.class); assertGoodFeatureEnum(CollectionSize.class); assertGoodFeatureEnum(MapFeature.class); } }