From 9eb35185831b32c3a3a6d6c16adace69f8f81b09 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 6 May 2015 14:06:56 +0200 Subject: [PATCH] Introduce tests for AnnotatedElementUtils.isAnnotated() Issue: SPR-11514 --- .../AnnotatedElementUtilsTests.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/spring-core/src/test/java/org/springframework/core/annotation/AnnotatedElementUtilsTests.java b/spring-core/src/test/java/org/springframework/core/annotation/AnnotatedElementUtilsTests.java index 89c04d351e..7596a0ecaa 100644 --- a/spring-core/src/test/java/org/springframework/core/annotation/AnnotatedElementUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/core/annotation/AnnotatedElementUtilsTests.java @@ -89,6 +89,35 @@ public class AnnotatedElementUtilsTests { assertFalse(hasMetaAnnotationTypes(ComposedTransactionalComponentClass.class, ComposedTransactionalComponent.class.getName())); } + @Test + public void isAnnotatedOnNonAnnotatedClass() { + assertFalse(isAnnotated(NonAnnotatedClass.class, Transactional.class.getName())); + } + + @Test + public void isAnnotatedOnClassWithMetaDepth0() { + assertTrue(isAnnotated(TransactionalComponentClass.class, TransactionalComponent.class.getName())); + } + + @Test + public void isAnnotatedOnSubclassWithMetaDepth0() { + assertFalse("isAnnotated() does not search the class hierarchy.", + isAnnotated(SubTransactionalComponentClass.class, TransactionalComponent.class.getName())); + } + + @Test + public void isAnnotatedOnClassWithMetaDepth1() { + assertTrue(isAnnotated(TransactionalComponentClass.class, Transactional.class.getName())); + assertTrue(isAnnotated(TransactionalComponentClass.class, Component.class.getName())); + } + + @Test + public void isAnnotatedOnClassWithMetaDepth2() { + assertTrue(isAnnotated(ComposedTransactionalComponentClass.class, Transactional.class.getName())); + assertTrue(isAnnotated(ComposedTransactionalComponentClass.class, Component.class.getName())); + assertTrue(isAnnotated(ComposedTransactionalComponentClass.class, ComposedTransactionalComponent.class.getName())); + } + @Test public void getAllAnnotationAttributesOnClassWithLocalAnnotation() { MultiValueMap attributes = getAllAnnotationAttributes(TxConfig.class, @@ -410,6 +439,9 @@ public class AnnotatedElementUtilsTests { static class TransactionalComponentClass { } + static class SubTransactionalComponentClass extends TransactionalComponentClass { + } + @ComposedTransactionalComponent static class ComposedTransactionalComponentClass { }