parent
1670b4e154
commit
5ea8c2670e
|
|
@ -18,11 +18,15 @@ package org.springframework.core.annotation;
|
|||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.rules.ExpectedException;
|
||||
|
||||
import org.springframework.core.annotation.AnnotationUtilsTests.ImplicitAliasesContextConfig;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
|
|
@ -154,6 +158,69 @@ public class AnnotationAttributesTests {
|
|||
attributes.getEnum("color");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAliasedStringWithImplicitAliases() {
|
||||
String value = "metaverse";
|
||||
List<String> aliases = Arrays.asList("value", "location1", "location2", "location3", "xmlFile", "groovyScript");
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("value", value);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertEquals(value, attributes.getString(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("location1", value);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertEquals(value, attributes.getString(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("value", value);
|
||||
attributes.put("location1", value);
|
||||
attributes.put("xmlFile", value);
|
||||
attributes.put("groovyScript", value);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertEquals(value, attributes.getString(alias)));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAliasedStringArrayWithImplicitAliases() {
|
||||
String[] value = new String[] {"test.xml"};
|
||||
List<String> aliases = Arrays.asList("value", "location1", "location2", "location3", "xmlFile", "groovyScript");
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("location1", value);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("value", value);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("location1", value);
|
||||
attributes.put("value", value);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("location1", value);
|
||||
AnnotationUtils.registerDefaultValues(attributes);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
attributes.put("value", value);
|
||||
AnnotationUtils.registerDefaultValues(attributes);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias)));
|
||||
|
||||
attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class);
|
||||
AnnotationUtils.registerDefaultValues(attributes);
|
||||
AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false);
|
||||
aliases.stream().forEach(alias -> assertArrayEquals(new String[] {""}, attributes.getStringArray(alias)));
|
||||
}
|
||||
|
||||
|
||||
enum Color {
|
||||
|
||||
|
|
|
|||
|
|
@ -2121,12 +2121,12 @@ public class AnnotationUtilsTests {
|
|||
|
||||
@ContextConfig
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@interface ImplicitAliasesContextConfig {
|
||||
public @interface ImplicitAliasesContextConfig {
|
||||
|
||||
@AliasFor(annotation = ContextConfig.class, attribute = "location")
|
||||
String xmlFile() default "";
|
||||
|
||||
@AliasFor(annotation = ContextConfig.class, value = "location")
|
||||
@AliasFor(annotation = ContextConfig.class, attribute = "location")
|
||||
String groovyScript() default "";
|
||||
|
||||
@AliasFor(annotation = ContextConfig.class, attribute = "location")
|
||||
|
|
|
|||
Loading…
Reference in New Issue