|
18 | 18 |
|
19 | 19 | import java.lang.annotation.Retention;
|
20 | 20 | import java.lang.annotation.RetentionPolicy;
|
| 21 | +import java.util.Arrays; |
| 22 | +import java.util.List; |
21 | 23 |
|
22 | 24 | import org.junit.Rule;
|
23 | 25 | import org.junit.Test;
|
24 | 26 | import org.junit.rules.ExpectedException;
|
25 | 27 |
|
| 28 | +import org.springframework.core.annotation.AnnotationUtilsTests.ImplicitAliasesContextConfig; |
| 29 | + |
26 | 30 | import static org.hamcrest.CoreMatchers.*;
|
27 | 31 | import static org.junit.Assert.*;
|
28 | 32 |
|
@@ -154,6 +158,69 @@ public void getEnumWithTypeMismatch() {
|
154 | 158 | attributes.getEnum("color");
|
155 | 159 | }
|
156 | 160 |
|
| 161 | + @Test |
| 162 | + public void getAliasedStringWithImplicitAliases() { |
| 163 | + String value = "metaverse"; |
| 164 | + List<String> aliases = Arrays.asList("value", "location1", "location2", "location3", "xmlFile", "groovyScript"); |
| 165 | + |
| 166 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 167 | + attributes.put("value", value); |
| 168 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 169 | + aliases.stream().forEach(alias -> assertEquals(value, attributes.getString(alias))); |
| 170 | + |
| 171 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 172 | + attributes.put("location1", value); |
| 173 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 174 | + aliases.stream().forEach(alias -> assertEquals(value, attributes.getString(alias))); |
| 175 | + |
| 176 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 177 | + attributes.put("value", value); |
| 178 | + attributes.put("location1", value); |
| 179 | + attributes.put("xmlFile", value); |
| 180 | + attributes.put("groovyScript", value); |
| 181 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 182 | + aliases.stream().forEach(alias -> assertEquals(value, attributes.getString(alias))); |
| 183 | + } |
| 184 | + |
| 185 | + @Test |
| 186 | + public void getAliasedStringArrayWithImplicitAliases() { |
| 187 | + String[] value = new String[] {"test.xml"}; |
| 188 | + List<String> aliases = Arrays.asList("value", "location1", "location2", "location3", "xmlFile", "groovyScript"); |
| 189 | + |
| 190 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 191 | + attributes.put("location1", value); |
| 192 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 193 | + aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias))); |
| 194 | + |
| 195 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 196 | + attributes.put("value", value); |
| 197 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 198 | + aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias))); |
| 199 | + |
| 200 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 201 | + attributes.put("location1", value); |
| 202 | + attributes.put("value", value); |
| 203 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 204 | + aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias))); |
| 205 | + |
| 206 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 207 | + attributes.put("location1", value); |
| 208 | + AnnotationUtils.registerDefaultValues(attributes); |
| 209 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 210 | + aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias))); |
| 211 | + |
| 212 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 213 | + attributes.put("value", value); |
| 214 | + AnnotationUtils.registerDefaultValues(attributes); |
| 215 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 216 | + aliases.stream().forEach(alias -> assertArrayEquals(value, attributes.getStringArray(alias))); |
| 217 | + |
| 218 | + attributes = new AnnotationAttributes(ImplicitAliasesContextConfig.class); |
| 219 | + AnnotationUtils.registerDefaultValues(attributes); |
| 220 | + AnnotationUtils.postProcessAnnotationAttributes(null, attributes, false); |
| 221 | + aliases.stream().forEach(alias -> assertArrayEquals(new String[] {""}, attributes.getStringArray(alias))); |
| 222 | + } |
| 223 | + |
157 | 224 |
|
158 | 225 | enum Color {
|
159 | 226 |
|
|
0 commit comments