提交 5ea8c267 编写于 作者: J Juergen Hoeller

Reinstated tests for implicit aliases

Issue: SPR-14437
上级 1670b4e1
......@@ -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")
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册