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