Reorganize tests in AnnotationUtilsTests for greater clarity
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2014 the original author or authors.
|
||||
* Copyright 2002-2015 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -85,25 +85,37 @@ public class AnnotationUtilsTests {
|
||||
assertNull(m.getAnnotation(Order.class));
|
||||
assertNull(getAnnotation(m, Order.class));
|
||||
assertNotNull(findAnnotation(m, Order.class));
|
||||
// TODO: actually found on OpenJDK 8 b99! assertNull(m.getAnnotation(Transactional.class));
|
||||
assertNull(m.getAnnotation(Transactional.class));
|
||||
assertNotNull(getAnnotation(m, Transactional.class));
|
||||
assertNotNull(findAnnotation(m, Transactional.class));
|
||||
}
|
||||
|
||||
// TODO consider whether we want this to handle annotations on interfaces
|
||||
// public void findMethodAnnotationFromInterfaceImplementedByRoot()
|
||||
// throws Exception {
|
||||
// Method m = Leaf.class.getMethod("fromInterfaceImplementedByRoot",
|
||||
// (Class[]) null);
|
||||
// Order o = findAnnotation(Order.class, m, Leaf.class);
|
||||
// assertNotNull(o);
|
||||
// }
|
||||
@Test
|
||||
public void findMethodAnnotationFromInterface() throws Exception {
|
||||
Method method = ImplementsInterfaceWithAnnotatedMethod.class.getMethod("foo");
|
||||
Order order = findAnnotation(method, Order.class);
|
||||
assertNotNull(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findMethodAnnotationFromInterfaceOnSuper() throws Exception {
|
||||
Method method = SubOfImplementsInterfaceWithAnnotatedMethod.class.getMethod("foo");
|
||||
Order order = findAnnotation(method, Order.class);
|
||||
assertNotNull(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findMethodAnnotationFromInterfaceWhenSuperDoesNotImplementMethod() throws Exception {
|
||||
Method method = SubOfAbstractImplementsInterfaceWithAnnotatedMethod.class.getMethod("foo");
|
||||
Order order = findAnnotation(method, Order.class);
|
||||
assertNotNull(order);
|
||||
}
|
||||
|
||||
/**
|
||||
* @since 4.1.2
|
||||
*/
|
||||
@Test
|
||||
public void findAnnotationFavorsLocalMetaAnnotationsOverInterfaces() {
|
||||
public void findClassAnnotationFavorsLocalMetaAnnotationsOverInterfaces() {
|
||||
Component component = AnnotationUtils.findAnnotation(
|
||||
ClassWithLocalMetaAnnotationAndMetaAnnotatedInterface.class, Component.class);
|
||||
assertNotNull(component);
|
||||
@@ -114,7 +126,7 @@ public class AnnotationUtilsTests {
|
||||
* @since 4.0.3
|
||||
*/
|
||||
@Test
|
||||
public void findAnnotationFavorsInheritedAnnotationsOverMoreLocallyDeclaredComposedAnnotations() {
|
||||
public void findClassAnnotationFavorsInheritedAnnotationsOverMoreLocallyDeclaredComposedAnnotations() {
|
||||
Transactional transactional = AnnotationUtils.findAnnotation(
|
||||
SubSubClassWithInheritedAnnotation.class, Transactional.class);
|
||||
assertNotNull(transactional);
|
||||
@@ -125,7 +137,7 @@ public class AnnotationUtilsTests {
|
||||
* @since 4.0.3
|
||||
*/
|
||||
@Test
|
||||
public void findAnnotationFavorsInheritedComposedAnnotationsOverMoreLocallyDeclaredComposedAnnotations() {
|
||||
public void findClassAnnotationFavorsInheritedComposedAnnotationsOverMoreLocallyDeclaredComposedAnnotations() {
|
||||
Component component = AnnotationUtils.findAnnotation(
|
||||
SubSubClassWithInheritedMetaAnnotation.class, Component.class);
|
||||
assertNotNull(component);
|
||||
@@ -133,34 +145,34 @@ public class AnnotationUtilsTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationOnMetaMetaAnnotatedClass() {
|
||||
public void findClassAnnotationOnMetaMetaAnnotatedClass() {
|
||||
Component component = AnnotationUtils.findAnnotation(MetaMetaAnnotatedClass.class, Component.class);
|
||||
assertNotNull("Should find meta-annotation on composed annotation on class", component);
|
||||
assertEquals("meta2", component.value());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationOnMetaMetaMetaAnnotatedClass() {
|
||||
public void findClassAnnotationOnMetaMetaMetaAnnotatedClass() {
|
||||
Component component = AnnotationUtils.findAnnotation(MetaMetaMetaAnnotatedClass.class, Component.class);
|
||||
assertNotNull("Should find meta-annotation on meta-annotation on composed annotation on class", component);
|
||||
assertEquals("meta2", component.value());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationOnAnnotatedClassWithMissingTargetMetaAnnotation() {
|
||||
public void findClassAnnotationOnAnnotatedClassWithMissingTargetMetaAnnotation() {
|
||||
// TransactionalClass is NOT annotated or meta-annotated with @Component
|
||||
Component component = AnnotationUtils.findAnnotation(TransactionalClass.class, Component.class);
|
||||
assertNull("Should not find @Component on TransactionalClass", component);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationOnMetaCycleAnnotatedClassWithMissingTargetMetaAnnotation() {
|
||||
public void findClassAnnotationOnMetaCycleAnnotatedClassWithMissingTargetMetaAnnotation() {
|
||||
Component component = AnnotationUtils.findAnnotation(MetaCycleAnnotatedClass.class, Component.class);
|
||||
assertNull("Should not find @Component on MetaCycleAnnotatedClass", component);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFindAnnotationDeclaringClass() throws Exception {
|
||||
public void findAnnotationDeclaringClassForAllScenarios() throws Exception {
|
||||
// no class-level annotation
|
||||
assertNull(findAnnotationDeclaringClass(Transactional.class, NonAnnotatedInterface.class));
|
||||
assertNull(findAnnotationDeclaringClass(Transactional.class, NonAnnotatedClass.class));
|
||||
@@ -250,7 +262,7 @@ public class AnnotationUtilsTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAnnotationDeclaredLocally() throws Exception {
|
||||
public void isAnnotationDeclaredLocallyForAllScenarios() throws Exception {
|
||||
// no class-level annotation
|
||||
assertFalse(isAnnotationDeclaredLocally(Transactional.class, NonAnnotatedInterface.class));
|
||||
assertFalse(isAnnotationDeclaredLocally(Transactional.class, NonAnnotatedClass.class));
|
||||
@@ -269,7 +281,7 @@ public class AnnotationUtilsTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsAnnotationInherited() throws Exception {
|
||||
public void isAnnotationInheritedForAllScenarios() throws Exception {
|
||||
// no class-level annotation
|
||||
assertFalse(isAnnotationInherited(Transactional.class, NonAnnotatedInterface.class));
|
||||
assertFalse(isAnnotationInherited(Transactional.class, NonAnnotatedClass.class));
|
||||
@@ -336,27 +348,6 @@ public class AnnotationUtilsTests {
|
||||
assertEquals(Ordered.LOWEST_PRECEDENCE, AnnotationUtils.getDefaultValue(Order.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationFromInterface() throws Exception {
|
||||
Method method = ImplementsInterfaceWithAnnotatedMethod.class.getMethod("foo");
|
||||
Order order = findAnnotation(method, Order.class);
|
||||
assertNotNull(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationFromInterfaceOnSuper() throws Exception {
|
||||
Method method = SubOfImplementsInterfaceWithAnnotatedMethod.class.getMethod("foo");
|
||||
Order order = findAnnotation(method, Order.class);
|
||||
assertNotNull(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findAnnotationFromInterfaceWhenSuperDoesNotImplementMethod() throws Exception {
|
||||
Method method = SubOfAbstractImplementsInterfaceWithAnnotatedMethod.class.getMethod("foo");
|
||||
Order order = findAnnotation(method, Order.class);
|
||||
assertNotNull(order);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void findRepeatableAnnotationOnComposedAnnotation() {
|
||||
Repeatable repeatable = findAnnotation(MyRepeatableMeta.class, Repeatable.class);
|
||||
|
||||
Reference in New Issue
Block a user