|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2002-2014 the original author or authors. |
|
|
|
|
* Copyright 2002-2018 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -35,10 +35,11 @@ import java.util.TreeMap;
@@ -35,10 +35,11 @@ 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.hamcrest.Matchers.*; |
|
|
|
|
import static org.junit.Assert.*; |
|
|
|
|
import static org.springframework.core.CollectionFactory.*; |
|
|
|
|
|
|
|
|
|
@ -103,7 +104,7 @@ public class CollectionFactoryTests {
@@ -103,7 +104,7 @@ public class CollectionFactoryTests {
|
|
|
|
|
* {@link CollectionFactory#createApproximateMap(Object, int)} |
|
|
|
|
* is not type-safe. |
|
|
|
|
* <p>The reasoning is similar that described in |
|
|
|
|
* {@link #createApproximateCollectionIsNotTypeSafe()}. |
|
|
|
|
* {@link #createApproximateCollectionIsNotTypeSafeForEnumSet}. |
|
|
|
|
*/ |
|
|
|
|
@Test |
|
|
|
|
public void createApproximateMapIsNotTypeSafeForEnumMap() { |
|
|
|
|
@ -165,27 +166,27 @@ public class CollectionFactoryTests {
@@ -165,27 +166,27 @@ public class CollectionFactoryTests {
|
|
|
|
|
@Test |
|
|
|
|
public void createApproximateCollectionFromEmptyHashSet() { |
|
|
|
|
Collection<String> set = createApproximateCollection(new HashSet<String>(), 2); |
|
|
|
|
assertThat(set.size(), is(0)); |
|
|
|
|
assertThat(set, is(empty())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void createApproximateCollectionFromNonEmptyHashSet() { |
|
|
|
|
HashSet<String> hashSet = new HashSet<String>(); |
|
|
|
|
HashSet<String> hashSet = new HashSet<>(); |
|
|
|
|
hashSet.add("foo"); |
|
|
|
|
Collection<String> set = createApproximateCollection(hashSet, 2); |
|
|
|
|
assertThat(set.size(), is(0)); |
|
|
|
|
assertThat(set, is(empty())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void createApproximateCollectionFromEmptyEnumSet() { |
|
|
|
|
Collection<Color> colors = createApproximateCollection(EnumSet.noneOf(Color.class), 2); |
|
|
|
|
assertThat(colors.size(), is(0)); |
|
|
|
|
assertThat(colors, is(empty())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void createApproximateCollectionFromNonEmptyEnumSet() { |
|
|
|
|
Collection<Color> colors = createApproximateCollection(EnumSet.of(Color.BLUE), 2); |
|
|
|
|
assertThat(colors.size(), is(0)); |
|
|
|
|
assertThat(colors, is(empty())); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
@ -196,7 +197,7 @@ public class CollectionFactoryTests {
@@ -196,7 +197,7 @@ public class CollectionFactoryTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void createApproximateMapFromNonEmptyHashMap() { |
|
|
|
|
Map<String, String> hashMap = new HashMap<String, String>(); |
|
|
|
|
Map<String, String> hashMap = new HashMap<>(); |
|
|
|
|
hashMap.put("foo", "bar"); |
|
|
|
|
Map<String, String> map = createApproximateMap(hashMap, 2); |
|
|
|
|
assertThat(map.size(), is(0)); |
|
|
|
|
@ -210,7 +211,7 @@ public class CollectionFactoryTests {
@@ -210,7 +211,7 @@ public class CollectionFactoryTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void createApproximateMapFromNonEmptyEnumMap() { |
|
|
|
|
EnumMap<Color, String> enumMap = new EnumMap<Color, String>(Color.class); |
|
|
|
|
EnumMap<Color, String> enumMap = new EnumMap<>(Color.class); |
|
|
|
|
enumMap.put(Color.BLUE, "blue"); |
|
|
|
|
Map<Color, String> colors = createApproximateMap(enumMap, 2); |
|
|
|
|
assertThat(colors.size(), is(0)); |
|
|
|
|
@ -241,6 +242,12 @@ public class CollectionFactoryTests {
@@ -241,6 +242,12 @@ public class CollectionFactoryTests {
|
|
|
|
|
assertThat(createCollection(EnumSet.class, Color.class, 0), is(instanceOf(EnumSet.class))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test // SPR-17619
|
|
|
|
|
public void createsEnumSetSubclass() { |
|
|
|
|
EnumSet<Color> enumSet = EnumSet.noneOf(Color.class); |
|
|
|
|
assertThat(createCollection(enumSet.getClass(), Color.class, 0), is(instanceOf(enumSet.getClass()))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test(expected = IllegalArgumentException.class) |
|
|
|
|
public void rejectsInvalidElementTypeForEnumSet() { |
|
|
|
|
createCollection(EnumSet.class, Object.class, 0); |
|
|
|
|
@ -296,7 +303,8 @@ public class CollectionFactoryTests {
@@ -296,7 +303,8 @@ public class CollectionFactoryTests {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static enum Color { |
|
|
|
|
enum Color { |
|
|
|
|
RED, BLUE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|