diff --git a/spring-core/src/test/java/org/springframework/core/CollectionFactoryTests.java b/spring-core/src/test/java/org/springframework/core/CollectionFactoryTests.java index fa474fa974..a67da64f6c 100644 --- a/spring-core/src/test/java/org/springframework/core/CollectionFactoryTests.java +++ b/spring-core/src/test/java/org/springframework/core/CollectionFactoryTests.java @@ -5,7 +5,7 @@ * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * - * http://www.apache.org/licenses/LICENSE-2.0 + * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, @@ -17,15 +17,26 @@ package org.springframework.core; import java.util.ArrayList; +import java.util.Collection; import java.util.EnumMap; import java.util.EnumSet; +import java.util.HashMap; import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; import java.util.List; +import java.util.Map; +import java.util.NavigableMap; +import java.util.NavigableSet; import java.util.Set; +import java.util.SortedMap; import java.util.SortedSet; +import java.util.TreeMap; import java.util.TreeSet; import org.junit.Test; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; @@ -41,10 +52,23 @@ import static org.springframework.core.CollectionFactory.*; public class CollectionFactoryTests { @Test - public void createsSimpleCollectionsCorrectly() { - assertThat(createCollection(List.class, Object.class, 0), is(instanceOf(ArrayList.class))); - assertThat(createCollection(Set.class, Object.class, 0), is(instanceOf(HashSet.class))); - assertThat(createCollection(SortedSet.class, Object.class, 0), is(instanceOf(TreeSet.class))); + public void createsCollectionsCorrectly() { + // interfaces + assertThat(createCollection(List.class, 0), is(instanceOf(ArrayList.class))); + assertThat(createCollection(Set.class, 0), is(instanceOf(LinkedHashSet.class))); + assertThat(createCollection(Collection.class, 0), is(instanceOf(LinkedHashSet.class))); + assertThat(createCollection(SortedSet.class, 0), is(instanceOf(TreeSet.class))); + assertThat(createCollection(NavigableSet.class, 0), is(instanceOf(TreeSet.class))); + + assertThat(createCollection(List.class, String.class, 0), is(instanceOf(ArrayList.class))); + assertThat(createCollection(Set.class, String.class, 0), is(instanceOf(LinkedHashSet.class))); + assertThat(createCollection(Collection.class, String.class, 0), is(instanceOf(LinkedHashSet.class))); + assertThat(createCollection(SortedSet.class, String.class, 0), is(instanceOf(TreeSet.class))); + assertThat(createCollection(NavigableSet.class, String.class, 0), is(instanceOf(TreeSet.class))); + + // concrete types + assertThat(createCollection(HashSet.class, 0), is(instanceOf(HashSet.class))); + assertThat(createCollection(HashSet.class, String.class, 0), is(instanceOf(HashSet.class))); } @Test @@ -67,6 +91,25 @@ public class CollectionFactoryTests { createCollection(null, Object.class, 0); } + @Test + public void createsMapsCorrectly() { + // interfaces + assertThat(createMap(Map.class, 0), is(instanceOf(LinkedHashMap.class))); + assertThat(createMap(SortedMap.class, 0), is(instanceOf(TreeMap.class))); + assertThat(createMap(NavigableMap.class, 0), is(instanceOf(TreeMap.class))); + assertThat(createMap(MultiValueMap.class, 0), is(instanceOf(LinkedMultiValueMap.class))); + + assertThat(createMap(Map.class, String.class, 0), is(instanceOf(LinkedHashMap.class))); + assertThat(createMap(SortedMap.class, String.class, 0), is(instanceOf(TreeMap.class))); + assertThat(createMap(NavigableMap.class, String.class, 0), is(instanceOf(TreeMap.class))); + assertThat(createMap(MultiValueMap.class, String.class, 0), is(instanceOf(LinkedMultiValueMap.class))); + + // concrete types + assertThat(createMap(HashMap.class, 0), is(instanceOf(HashMap.class))); + + assertThat(createMap(HashMap.class, String.class, 0), is(instanceOf(HashMap.class))); + } + @Test public void createsEnumMap() { assertThat(createMap(EnumMap.class, Color.class, 0), is(instanceOf(EnumMap.class)));