Skip to content

Commit 5e1d6e4

Browse files
committed
Introduced failing, @ignored test for SPR-13554
Issue: SPR-13554
1 parent 1e4f674 commit 5e1d6e4

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import java.util.List;
2828
import java.util.Set;
2929

30+
import org.junit.Ignore;
3031
import org.junit.Rule;
3132
import org.junit.Test;
3233
import org.junit.rules.ExpectedException;
@@ -294,6 +295,29 @@ public void getMergedAnnotationAttributesWithConventionBasedComposedAnnotation()
294295
assertTrue(isAnnotated(element, name));
295296
}
296297

298+
@Ignore("Disabled until SPR-13554 is addressed")
299+
@Test
300+
public void getMergedAnnotationAttributesWithHalfConventionBasedAndHalfAliasedComposedAnnotation() {
301+
for (Class<?> clazz : asList(HalfConventionBasedAndHalfAliasedComposedContextConfigClassV1.class,
302+
HalfConventionBasedAndHalfAliasedComposedContextConfigClassV2.class)) {
303+
getMergedAnnotationAttributesWithHalfConventionBasedAndHalfAliasedComposedAnnotation(clazz);
304+
}
305+
}
306+
307+
private void getMergedAnnotationAttributesWithHalfConventionBasedAndHalfAliasedComposedAnnotation(Class<?> clazz) {
308+
String[] expected = new String[] { "explicitDeclaration" };
309+
String name = ContextConfig.class.getName();
310+
String simpleName = clazz.getSimpleName();
311+
AnnotationAttributes attributes = getMergedAnnotationAttributes(clazz, name);
312+
313+
assertNotNull("Should find @ContextConfig on " + simpleName, attributes);
314+
assertArrayEquals("locations for class [" + clazz.getSimpleName() + "]", expected, attributes.getStringArray("locations"));
315+
assertArrayEquals("value for class [" + clazz.getSimpleName() + "]", expected, attributes.getStringArray("value"));
316+
317+
// Verify contracts between utility methods:
318+
assertTrue(isAnnotated(clazz, name));
319+
}
320+
297321
@Test
298322
public void getMergedAnnotationAttributesWithAliasedComposedAnnotation() {
299323
Class<?> element = AliasedComposedContextConfigClass.class;
@@ -772,6 +796,17 @@ static class MetaCycleAnnotatedClass {
772796
String[] locations();
773797
}
774798

799+
@ContextConfig
800+
@Retention(RetentionPolicy.RUNTIME)
801+
@interface HalfConventionBasedAndHalfAliasedComposedContextConfig {
802+
803+
String[] locations() default {};
804+
805+
@AliasFor(annotation = ContextConfig.class, attribute = "locations")
806+
String[] xmlConfigFiles() default {};
807+
}
808+
809+
775810
@ContextConfig
776811
@Retention(RetentionPolicy.RUNTIME)
777812
@interface AliasedComposedContextConfig {
@@ -1040,6 +1075,14 @@ static class ConventionBasedComposedContextConfigClass {
10401075
static class InvalidConventionBasedComposedContextConfigClass {
10411076
}
10421077

1078+
@HalfConventionBasedAndHalfAliasedComposedContextConfig(xmlConfigFiles = "explicitDeclaration")
1079+
static class HalfConventionBasedAndHalfAliasedComposedContextConfigClassV1 {
1080+
}
1081+
1082+
@HalfConventionBasedAndHalfAliasedComposedContextConfig(locations = "explicitDeclaration")
1083+
static class HalfConventionBasedAndHalfAliasedComposedContextConfigClassV2 {
1084+
}
1085+
10431086
@AliasedComposedContextConfig(xmlConfigFiles = "test.xml")
10441087
static class AliasedComposedContextConfigClass {
10451088
}

0 commit comments

Comments
 (0)