Skip to content

Commit f049a6e

Browse files
committed
Add integration test for gh-24110
1 parent 7203da7 commit f049a6e

File tree

1 file changed

+39
-1
lines changed

1 file changed

+39
-1
lines changed

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

Lines changed: 39 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,20 @@ public void getMergedAnnotationWithImplicitAliasesInMetaAnnotationOnComposedAnno
488488
assertTrue(isAnnotated(element, name));
489489
}
490490

491+
@Test
492+
public void getMergedAnnotationWithImplicitAliasesWithDefaultsInMetaAnnotationOnComposedAnnotation() {
493+
Class<?> element = ImplicitAliasesWithDefaultsClass.class;
494+
String name = AliasesWithDefaults.class.getName();
495+
AliasesWithDefaults annotation = getMergedAnnotation(element, AliasesWithDefaults.class);
496+
497+
assertNotNull("Should find @AliasesWithDefaults on " + element.getSimpleName(), annotation);
498+
assertEquals("a1", "ImplicitAliasesWithDefaults", annotation.a1());
499+
assertEquals("a2", "ImplicitAliasesWithDefaults", annotation.a2());
500+
501+
// Verify contracts between utility methods:
502+
assertTrue(isAnnotated(element, name));
503+
}
504+
491505
@Test
492506
public void getMergedAnnotationAttributesWithInvalidConventionBasedComposedAnnotation() {
493507
Class<?> element = InvalidConventionBasedComposedContextConfigClass.class;
@@ -958,7 +972,6 @@ static class MetaCycleAnnotatedClass {
958972
String[] xmlConfigFiles() default {};
959973
}
960974

961-
962975
@ContextConfig
963976
@Retention(RetentionPolicy.RUNTIME)
964977
@interface AliasedComposedContextConfig {
@@ -999,6 +1012,27 @@ static class MetaCycleAnnotatedClass {
9991012
@interface ComposedImplicitAliasesContextConfig {
10001013
}
10011014

1015+
@Retention(RetentionPolicy.RUNTIME)
1016+
@interface AliasesWithDefaults {
1017+
1018+
@AliasFor("a2")
1019+
String a1() default "AliasesWithDefaults";
1020+
1021+
@AliasFor("a1")
1022+
String a2() default "AliasesWithDefaults";
1023+
}
1024+
1025+
@Retention(RetentionPolicy.RUNTIME)
1026+
@AliasesWithDefaults
1027+
@interface ImplicitAliasesWithDefaults {
1028+
1029+
@AliasFor(annotation = AliasesWithDefaults.class, attribute = "a1")
1030+
String b1() default "ImplicitAliasesWithDefaults";
1031+
1032+
@AliasFor(annotation = AliasesWithDefaults.class, attribute = "a2")
1033+
String b2() default "ImplicitAliasesWithDefaults";
1034+
}
1035+
10021036
@ImplicitAliasesContextConfig
10031037
@Retention(RetentionPolicy.RUNTIME)
10041038
@interface TransitiveImplicitAliasesContextConfig {
@@ -1296,6 +1330,10 @@ static class ImplicitAliasesContextConfigClass2 {
12961330
static class ImplicitAliasesContextConfigClass3 {
12971331
}
12981332

1333+
@ImplicitAliasesWithDefaults
1334+
static class ImplicitAliasesWithDefaultsClass {
1335+
}
1336+
12991337
@TransitiveImplicitAliasesContextConfig(groovy = "test.groovy")
13001338
static class TransitiveImplicitAliasesContextConfigClass {
13011339
}

0 commit comments

Comments
 (0)