diff --git a/spring-test/src/test/java/org/springframework/test/context/ContextLoaderUtilsActiveProfilesTests.java b/spring-test/src/test/java/org/springframework/test/context/ContextLoaderUtilsActiveProfilesTests.java index 24af76b6f6..af81a22d16 100644 --- a/spring-test/src/test/java/org/springframework/test/context/ContextLoaderUtilsActiveProfilesTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/ContextLoaderUtilsActiveProfilesTests.java @@ -21,7 +21,8 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import java.util.Arrays; -import java.util.List; +import java.util.HashSet; +import java.util.Set; import org.junit.Test; @@ -38,77 +39,58 @@ import static org.springframework.test.context.ContextLoaderUtils.*; */ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoaderUtilsTests { + private void assertResolvedProfiles(Class testClass, String... expected) { + assertNotNull(testClass); + assertNotNull(expected); + String[] actual = resolveActiveProfiles(testClass); + Set expectedSet = new HashSet(Arrays.asList(expected)); + Set actualSet = new HashSet(Arrays.asList(actual)); + assertEquals(expectedSet, actualSet); + } + @Test public void resolveActiveProfilesWithoutAnnotation() { - String[] profiles = resolveActiveProfiles(Enigma.class); - assertArrayEquals(EMPTY_STRING_ARRAY, profiles); + assertArrayEquals(EMPTY_STRING_ARRAY, resolveActiveProfiles(Enigma.class)); } @Test public void resolveActiveProfilesWithNoProfilesDeclared() { - String[] profiles = resolveActiveProfiles(BareAnnotations.class); - assertArrayEquals(EMPTY_STRING_ARRAY, profiles); + assertArrayEquals(EMPTY_STRING_ARRAY, resolveActiveProfiles(BareAnnotations.class)); } @Test public void resolveActiveProfilesWithEmptyProfiles() { - String[] profiles = resolveActiveProfiles(EmptyProfiles.class); - assertArrayEquals(EMPTY_STRING_ARRAY, profiles); + assertArrayEquals(EMPTY_STRING_ARRAY, resolveActiveProfiles(EmptyProfiles.class)); } @Test public void resolveActiveProfilesWithDuplicatedProfiles() { - String[] profiles = resolveActiveProfiles(DuplicatedProfiles.class); - assertNotNull(profiles); - assertEquals(3, profiles.length); - - List list = Arrays.asList(profiles); - assertTrue(list.contains("foo")); - assertTrue(list.contains("bar")); - assertTrue(list.contains("baz")); + assertResolvedProfiles(DuplicatedProfiles.class, "foo", "bar", "baz"); } @Test public void resolveActiveProfilesWithLocalAnnotation() { - String[] profiles = resolveActiveProfiles(LocationsFoo.class); - assertNotNull(profiles); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(LocationsFoo.class, "foo"); } @Test public void resolveActiveProfilesWithInheritedAnnotationAndLocations() { - String[] profiles = resolveActiveProfiles(InheritedLocationsFoo.class); - assertNotNull(profiles); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(InheritedLocationsFoo.class, "foo"); } @Test public void resolveActiveProfilesWithInheritedAnnotationAndClasses() { - String[] profiles = resolveActiveProfiles(InheritedClassesFoo.class); - assertNotNull(profiles); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(InheritedClassesFoo.class, "foo"); } @Test public void resolveActiveProfilesWithLocalAndInheritedAnnotations() { - String[] profiles = resolveActiveProfiles(LocationsBar.class); - assertNotNull(profiles); - assertEquals(2, profiles.length); - - List list = Arrays.asList(profiles); - assertTrue(list.contains("foo")); - assertTrue(list.contains("bar")); + assertResolvedProfiles(LocationsBar.class, "foo", "bar"); } @Test public void resolveActiveProfilesWithOverriddenAnnotation() { - String[] profiles = resolveActiveProfiles(Animals.class); - assertNotNull(profiles); - assertEquals(2, profiles.length); - - List list = Arrays.asList(profiles); - assertTrue(list.contains("dog")); - assertTrue(list.contains("cat")); + assertResolvedProfiles(Animals.class, "dog", "cat"); } /** @@ -116,9 +98,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithMetaAnnotation() { - String[] profiles = resolveActiveProfiles(MetaLocationsFoo.class); - assertNotNull(profiles); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(MetaLocationsFoo.class, "foo"); } /** @@ -126,9 +106,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithMetaAnnotationAndOverrides() { - String[] profiles = resolveActiveProfiles(MetaLocationsFooWithOverrides.class); - assertNotNull(profiles); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(MetaLocationsFooWithOverrides.class, "foo"); } /** @@ -136,9 +114,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithMetaAnnotationAndOverriddenAttributes() { - String[] profiles = resolveActiveProfiles(MetaLocationsFooWithOverriddenAttributes.class); - assertNotNull(profiles); - assertArrayEquals(new String[] { "foo1", "foo2" }, profiles); + assertResolvedProfiles(MetaLocationsFooWithOverriddenAttributes.class, "foo1", "foo2"); } /** @@ -146,13 +122,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithLocalAndInheritedMetaAnnotations() { - String[] profiles = resolveActiveProfiles(MetaLocationsBar.class); - assertNotNull(profiles); - assertEquals(2, profiles.length); - - List list = Arrays.asList(profiles); - assertTrue(list.contains("foo")); - assertTrue(list.contains("bar")); + assertResolvedProfiles(MetaLocationsBar.class, "foo", "bar"); } /** @@ -160,13 +130,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithOverriddenMetaAnnotation() { - String[] profiles = resolveActiveProfiles(MetaAnimals.class); - assertNotNull(profiles); - assertEquals(2, profiles.length); - - List list = Arrays.asList(profiles); - assertTrue(list.contains("dog")); - assertTrue(list.contains("cat")); + assertResolvedProfiles(MetaAnimals.class, "dog", "cat"); } /** @@ -174,10 +138,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithResolver() { - String[] profiles = resolveActiveProfiles(FooActiveProfilesResolverTestCase.class); - assertNotNull(profiles); - assertEquals(1, profiles.length); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(FooActiveProfilesResolverTestCase.class, "foo"); } /** @@ -185,10 +146,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithInheritedResolver() { - String[] profiles = resolveActiveProfiles(InheritedFooActiveProfilesResolverTestCase.class); - assertNotNull(profiles); - assertEquals(1, profiles.length); - assertArrayEquals(new String[] { "foo" }, profiles); + assertResolvedProfiles(InheritedFooActiveProfilesResolverTestCase.class, "foo"); } /** @@ -196,12 +154,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithMergedInheritedResolver() { - String[] profiles = resolveActiveProfiles(MergedInheritedFooActiveProfilesResolverTestCase.class); - assertNotNull(profiles); - assertEquals(2, profiles.length); - List list = Arrays.asList(profiles); - assertTrue(list.contains("foo")); - assertTrue(list.contains("bar")); + assertResolvedProfiles(MergedInheritedFooActiveProfilesResolverTestCase.class, "foo", "bar"); } /** @@ -209,10 +162,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader */ @Test public void resolveActiveProfilesWithOverridenInheritedResolver() { - String[] profiles = resolveActiveProfiles(OverridenInheritedFooActiveProfilesResolverTestCase.class); - assertNotNull(profiles); - assertEquals(1, profiles.length); - assertArrayEquals(new String[] { "bar" }, profiles); + assertResolvedProfiles(OverridenInheritedFooActiveProfilesResolverTestCase.class, "bar"); } /** @@ -279,6 +229,7 @@ public class ContextLoaderUtilsActiveProfilesTests extends AbstractContextLoader @ActiveProfiles @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) + // TODO Write test with @MetaProfilesWithOverrides. private static @interface MetaProfilesWithOverrides { String[] profiles() default { "dog", "cat" };