Browse Source

Add integration test for gh-24110

pull/27217/head
Sam Brannen 6 years ago
parent
commit
f049a6ec16
  1. 40
      spring-core/src/test/java/org/springframework/core/annotation/AnnotatedElementUtilsTests.java

40
spring-core/src/test/java/org/springframework/core/annotation/AnnotatedElementUtilsTests.java

@ -488,6 +488,20 @@ public class AnnotatedElementUtilsTests {
assertTrue(isAnnotated(element, name)); assertTrue(isAnnotated(element, name));
} }
@Test
public void getMergedAnnotationWithImplicitAliasesWithDefaultsInMetaAnnotationOnComposedAnnotation() {
Class<?> element = ImplicitAliasesWithDefaultsClass.class;
String name = AliasesWithDefaults.class.getName();
AliasesWithDefaults annotation = getMergedAnnotation(element, AliasesWithDefaults.class);
assertNotNull("Should find @AliasesWithDefaults on " + element.getSimpleName(), annotation);
assertEquals("a1", "ImplicitAliasesWithDefaults", annotation.a1());
assertEquals("a2", "ImplicitAliasesWithDefaults", annotation.a2());
// Verify contracts between utility methods:
assertTrue(isAnnotated(element, name));
}
@Test @Test
public void getMergedAnnotationAttributesWithInvalidConventionBasedComposedAnnotation() { public void getMergedAnnotationAttributesWithInvalidConventionBasedComposedAnnotation() {
Class<?> element = InvalidConventionBasedComposedContextConfigClass.class; Class<?> element = InvalidConventionBasedComposedContextConfigClass.class;
@ -958,7 +972,6 @@ public class AnnotatedElementUtilsTests {
String[] xmlConfigFiles() default {}; String[] xmlConfigFiles() default {};
} }
@ContextConfig @ContextConfig
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@interface AliasedComposedContextConfig { @interface AliasedComposedContextConfig {
@ -999,6 +1012,27 @@ public class AnnotatedElementUtilsTests {
@interface ComposedImplicitAliasesContextConfig { @interface ComposedImplicitAliasesContextConfig {
} }
@Retention(RetentionPolicy.RUNTIME)
@interface AliasesWithDefaults {
@AliasFor("a2")
String a1() default "AliasesWithDefaults";
@AliasFor("a1")
String a2() default "AliasesWithDefaults";
}
@Retention(RetentionPolicy.RUNTIME)
@AliasesWithDefaults
@interface ImplicitAliasesWithDefaults {
@AliasFor(annotation = AliasesWithDefaults.class, attribute = "a1")
String b1() default "ImplicitAliasesWithDefaults";
@AliasFor(annotation = AliasesWithDefaults.class, attribute = "a2")
String b2() default "ImplicitAliasesWithDefaults";
}
@ImplicitAliasesContextConfig @ImplicitAliasesContextConfig
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@interface TransitiveImplicitAliasesContextConfig { @interface TransitiveImplicitAliasesContextConfig {
@ -1296,6 +1330,10 @@ public class AnnotatedElementUtilsTests {
static class ImplicitAliasesContextConfigClass3 { static class ImplicitAliasesContextConfigClass3 {
} }
@ImplicitAliasesWithDefaults
static class ImplicitAliasesWithDefaultsClass {
}
@TransitiveImplicitAliasesContextConfig(groovy = "test.groovy") @TransitiveImplicitAliasesContextConfig(groovy = "test.groovy")
static class TransitiveImplicitAliasesContextConfigClass { static class TransitiveImplicitAliasesContextConfigClass {
} }

Loading…
Cancel
Save