aboutsummaryrefslogtreecommitdiff
path: root/guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java')
-rw-r--r--guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java1142
1 files changed, 483 insertions, 659 deletions
diff --git a/guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java b/guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java
index 1de9e6972..9eb466cd4 100644
--- a/guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java
+++ b/guava-tests/test/com/google/common/collect/ImmutableSortedMapTest.java
@@ -22,12 +22,10 @@ import static com.google.common.truth.Truth.assertThat;
import com.google.common.annotations.GwtCompatible;
import com.google.common.annotations.GwtIncompatible;
import com.google.common.base.Equivalence;
-import com.google.common.base.Joiner;
import com.google.common.collect.ImmutableSortedMap.Builder;
import com.google.common.collect.testing.ListTestSuiteBuilder;
import com.google.common.collect.testing.MapTestSuiteBuilder;
import com.google.common.collect.testing.NavigableMapTestSuiteBuilder;
-import com.google.common.collect.testing.SortedMapInterfaceTest;
import com.google.common.collect.testing.features.CollectionFeature;
import com.google.common.collect.testing.features.CollectionSize;
import com.google.common.collect.testing.features.MapFeature;
@@ -53,6 +51,7 @@ import java.util.stream.Stream;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.checkerframework.checker.nullness.qual.Nullable;
/**
* Tests for {@link ImmutableSortedMap}.
@@ -125,736 +124,561 @@ public class ImmutableSortedMapTest extends TestCase {
return suite;
}
- public abstract static class AbstractMapTests<K, V> extends SortedMapInterfaceTest<K, V> {
- public AbstractMapTests() {
- super(false, false, false, false, false);
- }
-
- @Override
- protected SortedMap<K, V> makeEmptyMap() {
- throw new UnsupportedOperationException();
- }
-
- private static final Joiner joiner = Joiner.on(", ");
+ // Creation tests
- @Override
- protected void assertMoreInvariants(Map<K, V> map) {
- // TODO: can these be moved to MapInterfaceTest?
- for (Entry<K, V> entry : map.entrySet()) {
- assertEquals(entry.getKey() + "=" + entry.getValue(), entry.toString());
- }
-
- assertEquals("{" + joiner.join(map.entrySet()) + "}", map.toString());
- assertEquals("[" + joiner.join(map.entrySet()) + "]", map.entrySet().toString());
- assertEquals("[" + joiner.join(map.keySet()) + "]", map.keySet().toString());
- assertEquals("[" + joiner.join(map.values()) + "]", map.values().toString());
-
- assertEquals(Sets.newHashSet(map.entrySet()), map.entrySet());
- assertEquals(Sets.newHashSet(map.keySet()), map.keySet());
- }
+ public void testEmptyBuilder() {
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>naturalOrder().build();
+ assertEquals(Collections.<String, Integer>emptyMap(), map);
}
- public static class MapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makeEmptyMap() {
- return ImmutableSortedMap.of();
- }
-
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("one", 1, "two", 2, "three", 3);
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "minus one";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return -1;
- }
+ public void testSingletonBuilder() {
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>naturalOrder().put("one", 1).build();
+ assertMapEquals(map, "one", 1);
}
- public static class SingletonMapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("one", 1);
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "minus one";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return -1;
- }
+ public void testBuilder() {
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>naturalOrder()
+ .put("one", 1)
+ .put("two", 2)
+ .put("three", 3)
+ .put("four", 4)
+ .put("five", 5)
+ .build();
+ assertMapEquals(map, "five", 5, "four", 4, "one", 1, "three", 3, "two", 2);
}
- @GwtIncompatible // SerializableTester
- public static class ReserializedMapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return SerializableTester.reserialize(ImmutableSortedMap.of("one", 1, "two", 2, "three", 3));
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "minus one";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return -1;
+ @SuppressWarnings("DoNotCall")
+ public void testBuilder_orderEntriesByValueFails() {
+ ImmutableSortedMap.Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ try {
+ builder.orderEntriesByValue(Ordering.natural());
+ fail("Expected UnsupportedOperationException");
+ } catch (UnsupportedOperationException expected) {
}
}
- public static class HeadMapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("a", 1, "b", 2, "c", 3, "d", 4, "e", 5).headMap("d");
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "d";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return 4;
- }
+ public void testBuilder_withImmutableEntry() {
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>naturalOrder()
+ .put(Maps.immutableEntry("one", 1))
+ .build();
+ assertMapEquals(map, "one", 1);
}
- public static class HeadMapInclusiveTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("a", 1, "b", 2, "c", 3, "d", 4, "e", 5).headMap("c", true);
+ public void testBuilder_withImmutableEntryAndNullContents() {
+ Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ try {
+ builder.put(Maps.immutableEntry("one", (Integer) null));
+ fail();
+ } catch (NullPointerException expected) {
}
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "d";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return 4;
+ try {
+ builder.put(Maps.immutableEntry((String) null, 1));
+ fail();
+ } catch (NullPointerException expected) {
}
}
- public static class TailMapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("a", 1, "b", 2, "c", 3, "d", 4, "e", 5).tailMap("b");
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "a";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return 1;
- }
+ private static class StringHolder {
+ String string;
}
- public static class TailExclusiveMapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("a", 1, "b", 2, "c", 3, "d", 4, "e", 5).tailMap("a", false);
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "a";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return 1;
- }
+ public void testBuilder_withMutableEntry() {
+ ImmutableSortedMap.Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ final StringHolder holder = new StringHolder();
+ holder.string = "one";
+ Entry<String, Integer> entry =
+ new AbstractMapEntry<String, Integer>() {
+ @Override
+ public String getKey() {
+ return holder.string;
+ }
+
+ @Override
+ public Integer getValue() {
+ return 1;
+ }
+ };
+
+ builder.put(entry);
+ holder.string = "two";
+ assertMapEquals(builder.build(), "one", 1);
}
- public static class SubMapTests extends AbstractMapTests<String, Integer> {
- @Override
- protected SortedMap<String, Integer> makePopulatedMap() {
- return ImmutableSortedMap.of("a", 1, "b", 2, "c", 3, "d", 4, "e", 5).subMap("b", "d");
- }
-
- @Override
- protected String getKeyNotInPopulatedMap() {
- return "a";
- }
-
- @Override
- protected Integer getValueNotInPopulatedMap() {
- return 4;
- }
+ public void testBuilderPutAllWithEmptyMap() {
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>naturalOrder()
+ .putAll(Collections.<String, Integer>emptyMap())
+ .build();
+ assertEquals(Collections.<String, Integer>emptyMap(), map);
}
- public static class CreationTests extends TestCase {
- public void testEmptyBuilder() {
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>naturalOrder().build();
- assertEquals(Collections.<String, Integer>emptyMap(), map);
- }
-
- public void testSingletonBuilder() {
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>naturalOrder().put("one", 1).build();
- assertMapEquals(map, "one", 1);
- }
-
- public void testBuilder() {
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>naturalOrder()
- .put("one", 1)
- .put("two", 2)
- .put("three", 3)
- .put("four", 4)
- .put("five", 5)
- .build();
- assertMapEquals(map, "five", 5, "four", 4, "one", 1, "three", 3, "two", 2);
- }
-
- @SuppressWarnings("DoNotCall")
- public void testBuilder_orderEntriesByValueFails() {
- ImmutableSortedMap.Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- try {
- builder.orderEntriesByValue(Ordering.natural());
- fail("Expected UnsupportedOperationException");
- } catch (UnsupportedOperationException expected) {
- }
- }
+ public void testBuilderPutAll() {
+ Map<String, Integer> toPut = new LinkedHashMap<>();
+ toPut.put("one", 1);
+ toPut.put("two", 2);
+ toPut.put("three", 3);
+ Map<String, Integer> moreToPut = new LinkedHashMap<>();
+ moreToPut.put("four", 4);
+ moreToPut.put("five", 5);
+
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>naturalOrder().putAll(toPut).putAll(moreToPut).build();
+ assertMapEquals(map, "five", 5, "four", 4, "one", 1, "three", 3, "two", 2);
+ }
- public void testBuilder_withImmutableEntry() {
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>naturalOrder()
- .put(Maps.immutableEntry("one", 1))
- .build();
- assertMapEquals(map, "one", 1);
- }
+ public void testBuilderReuse() {
+ Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ ImmutableSortedMap<String, Integer> mapOne = builder.put("one", 1).put("two", 2).build();
+ ImmutableSortedMap<String, Integer> mapTwo = builder.put("three", 3).put("four", 4).build();
- public void testBuilder_withImmutableEntryAndNullContents() {
- Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- try {
- builder.put(Maps.immutableEntry("one", (Integer) null));
- fail();
- } catch (NullPointerException expected) {
- }
- try {
- builder.put(Maps.immutableEntry((String) null, 1));
- fail();
- } catch (NullPointerException expected) {
- }
- }
+ assertMapEquals(mapOne, "one", 1, "two", 2);
+ assertMapEquals(mapTwo, "four", 4, "one", 1, "three", 3, "two", 2);
+ }
- private static class StringHolder {
- String string;
+ public void testBuilderPutNullKey() {
+ Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ try {
+ builder.put(null, 1);
+ fail();
+ } catch (NullPointerException expected) {
}
+ }
- public void testBuilder_withMutableEntry() {
- ImmutableSortedMap.Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- final StringHolder holder = new StringHolder();
- holder.string = "one";
- Entry<String, Integer> entry =
- new AbstractMapEntry<String, Integer>() {
- @Override
- public String getKey() {
- return holder.string;
- }
-
- @Override
- public Integer getValue() {
- return 1;
- }
- };
-
- builder.put(entry);
- holder.string = "two";
- assertMapEquals(builder.build(), "one", 1);
+ public void testBuilderPutNullValue() {
+ Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ try {
+ builder.put("one", null);
+ fail();
+ } catch (NullPointerException expected) {
}
+ }
- public void testBuilderPutAllWithEmptyMap() {
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>naturalOrder()
- .putAll(Collections.<String, Integer>emptyMap())
- .build();
- assertEquals(Collections.<String, Integer>emptyMap(), map);
+ public void testBuilderPutNullKeyViaPutAll() {
+ Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ try {
+ builder.putAll(Collections.<String, Integer>singletonMap(null, 1));
+ fail();
+ } catch (NullPointerException expected) {
}
+ }
- public void testBuilderPutAll() {
- Map<String, Integer> toPut = new LinkedHashMap<>();
- toPut.put("one", 1);
- toPut.put("two", 2);
- toPut.put("three", 3);
- Map<String, Integer> moreToPut = new LinkedHashMap<>();
- moreToPut.put("four", 4);
- moreToPut.put("five", 5);
-
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>naturalOrder()
- .putAll(toPut)
- .putAll(moreToPut)
- .build();
- assertMapEquals(map, "five", 5, "four", 4, "one", 1, "three", 3, "two", 2);
+ public void testBuilderPutNullValueViaPutAll() {
+ Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
+ try {
+ builder.putAll(Collections.<String, Integer>singletonMap("one", null));
+ fail();
+ } catch (NullPointerException expected) {
}
+ }
- public void testBuilderReuse() {
- Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- ImmutableSortedMap<String, Integer> mapOne = builder.put("one", 1).put("two", 2).build();
- ImmutableSortedMap<String, Integer> mapTwo = builder.put("three", 3).put("four", 4).build();
+ public void testPuttingTheSameKeyTwiceThrowsOnBuild() {
+ Builder<String, Integer> builder =
+ ImmutableSortedMap.<String, Integer>naturalOrder()
+ .put("one", 1)
+ .put("one", 2); // throwing on this line would be even better
- assertMapEquals(mapOne, "one", 1, "two", 2);
- assertMapEquals(mapTwo, "four", 4, "one", 1, "three", 3, "two", 2);
+ try {
+ builder.build();
+ fail();
+ } catch (IllegalArgumentException expected) {
}
+ }
- public void testBuilderPutNullKey() {
- Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- try {
- builder.put(null, 1);
- fail();
- } catch (NullPointerException expected) {
- }
- }
+ public void testOf() {
+ assertMapEquals(ImmutableSortedMap.of("one", 1), "one", 1);
+ assertMapEquals(ImmutableSortedMap.of("one", 1, "two", 2), "one", 1, "two", 2);
+ assertMapEquals(
+ ImmutableSortedMap.of("one", 1, "two", 2, "three", 3), "one", 1, "three", 3, "two", 2);
+ assertMapEquals(
+ ImmutableSortedMap.of("one", 1, "two", 2, "three", 3, "four", 4),
+ "four",
+ 4,
+ "one",
+ 1,
+ "three",
+ 3,
+ "two",
+ 2);
+ assertMapEquals(
+ ImmutableSortedMap.of("one", 1, "two", 2, "three", 3, "four", 4, "five", 5),
+ "five",
+ 5,
+ "four",
+ 4,
+ "one",
+ 1,
+ "three",
+ 3,
+ "two",
+ 2);
+ assertMapEquals(
+ ImmutableSortedMap.of(
+ "one", 1,
+ "two", 2,
+ "three", 3,
+ "four", 4,
+ "five", 5,
+ "six", 6),
+ "five",
+ 5,
+ "four",
+ 4,
+ "one",
+ 1,
+ "six",
+ 6,
+ "three",
+ 3,
+ "two",
+ 2);
+ assertMapEquals(
+ ImmutableSortedMap.of(
+ "one", 1,
+ "two", 2,
+ "three", 3,
+ "four", 4,
+ "five", 5,
+ "six", 6,
+ "seven", 7),
+ "five",
+ 5,
+ "four",
+ 4,
+ "one",
+ 1,
+ "seven",
+ 7,
+ "six",
+ 6,
+ "three",
+ 3,
+ "two",
+ 2);
+ assertMapEquals(
+ ImmutableSortedMap.of(
+ "one", 1,
+ "two", 2,
+ "three", 3,
+ "four", 4,
+ "five", 5,
+ "six", 6,
+ "seven", 7,
+ "eight", 8),
+ "eight",
+ 8,
+ "five",
+ 5,
+ "four",
+ 4,
+ "one",
+ 1,
+ "seven",
+ 7,
+ "six",
+ 6,
+ "three",
+ 3,
+ "two",
+ 2);
+ assertMapEquals(
+ ImmutableSortedMap.of(
+ "one", 1,
+ "two", 2,
+ "three", 3,
+ "four", 4,
+ "five", 5,
+ "six", 6,
+ "seven", 7,
+ "eight", 8,
+ "nine", 9),
+ "eight",
+ 8,
+ "five",
+ 5,
+ "four",
+ 4,
+ "nine",
+ 9,
+ "one",
+ 1,
+ "seven",
+ 7,
+ "six",
+ 6,
+ "three",
+ 3,
+ "two",
+ 2);
+ assertMapEquals(
+ ImmutableSortedMap.of(
+ "one", 1,
+ "two", 2,
+ "three", 3,
+ "four", 4,
+ "five", 5,
+ "six", 6,
+ "seven", 7,
+ "eight", 8,
+ "nine", 9,
+ "ten", 10),
+ "eight",
+ 8,
+ "five",
+ 5,
+ "four",
+ 4,
+ "nine",
+ 9,
+ "one",
+ 1,
+ "seven",
+ 7,
+ "six",
+ 6,
+ "ten",
+ 10,
+ "three",
+ 3,
+ "two",
+ 2);
+ }
- public void testBuilderPutNullValue() {
- Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- try {
- builder.put("one", null);
- fail();
- } catch (NullPointerException expected) {
- }
+ public void testOfNullKey() {
+ Integer n = null;
+ try {
+ ImmutableSortedMap.of(n, 1);
+ fail();
+ } catch (NullPointerException expected) {
}
- public void testBuilderPutNullKeyViaPutAll() {
- Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- try {
- builder.putAll(Collections.<String, Integer>singletonMap(null, 1));
- fail();
- } catch (NullPointerException expected) {
- }
+ try {
+ ImmutableSortedMap.of("one", 1, null, 2);
+ fail();
+ } catch (NullPointerException expected) {
}
+ }
- public void testBuilderPutNullValueViaPutAll() {
- Builder<String, Integer> builder = ImmutableSortedMap.naturalOrder();
- try {
- builder.putAll(Collections.<String, Integer>singletonMap("one", null));
- fail();
- } catch (NullPointerException expected) {
- }
+ public void testOfNullValue() {
+ try {
+ ImmutableSortedMap.of("one", null);
+ fail();
+ } catch (NullPointerException expected) {
}
- public void testPuttingTheSameKeyTwiceThrowsOnBuild() {
- Builder<String, Integer> builder =
- ImmutableSortedMap.<String, Integer>naturalOrder()
- .put("one", 1)
- .put("one", 2); // throwing on this line would be even better
-
- try {
- builder.build();
- fail();
- } catch (IllegalArgumentException expected) {
- }
+ try {
+ ImmutableSortedMap.of("one", 1, "two", null);
+ fail();
+ } catch (NullPointerException expected) {
}
+ }
- public void testOf() {
- assertMapEquals(ImmutableSortedMap.of("one", 1), "one", 1);
- assertMapEquals(ImmutableSortedMap.of("one", 1, "two", 2), "one", 1, "two", 2);
- assertMapEquals(
- ImmutableSortedMap.of("one", 1, "two", 2, "three", 3), "one", 1, "three", 3, "two", 2);
- assertMapEquals(
- ImmutableSortedMap.of("one", 1, "two", 2, "three", 3, "four", 4),
- "four",
- 4,
- "one",
- 1,
- "three",
- 3,
- "two",
- 2);
- assertMapEquals(
- ImmutableSortedMap.of("one", 1, "two", 2, "three", 3, "four", 4, "five", 5),
- "five",
- 5,
- "four",
- 4,
- "one",
- 1,
- "three",
- 3,
- "two",
- 2);
- assertMapEquals(
- ImmutableSortedMap.of(
- "one", 1,
- "two", 2,
- "three", 3,
- "four", 4,
- "five", 5,
- "six", 6),
- "five",
- 5,
- "four",
- 4,
- "one",
- 1,
- "six",
- 6,
- "three",
- 3,
- "two",
- 2);
- assertMapEquals(
- ImmutableSortedMap.of(
- "one", 1,
- "two", 2,
- "three", 3,
- "four", 4,
- "five", 5,
- "six", 6,
- "seven", 7),
- "five",
- 5,
- "four",
- 4,
- "one",
- 1,
- "seven",
- 7,
- "six",
- 6,
- "three",
- 3,
- "two",
- 2);
- assertMapEquals(
- ImmutableSortedMap.of(
- "one", 1,
- "two", 2,
- "three", 3,
- "four", 4,
- "five", 5,
- "six", 6,
- "seven", 7,
- "eight", 8),
- "eight",
- 8,
- "five",
- 5,
- "four",
- 4,
- "one",
- 1,
- "seven",
- 7,
- "six",
- 6,
- "three",
- 3,
- "two",
- 2);
- assertMapEquals(
- ImmutableSortedMap.of(
- "one", 1,
- "two", 2,
- "three", 3,
- "four", 4,
- "five", 5,
- "six", 6,
- "seven", 7,
- "eight", 8,
- "nine", 9),
- "eight",
- 8,
- "five",
- 5,
- "four",
- 4,
- "nine",
- 9,
- "one",
- 1,
- "seven",
- 7,
- "six",
- 6,
- "three",
- 3,
- "two",
- 2);
- assertMapEquals(
- ImmutableSortedMap.of(
- "one", 1,
- "two", 2,
- "three", 3,
- "four", 4,
- "five", 5,
- "six", 6,
- "seven", 7,
- "eight", 8,
- "nine", 9,
- "ten", 10),
- "eight",
- 8,
- "five",
- 5,
- "four",
- 4,
- "nine",
- 9,
- "one",
- 1,
- "seven",
- 7,
- "six",
- 6,
- "ten",
- 10,
- "three",
- 3,
- "two",
- 2);
+ public void testOfWithDuplicateKey() {
+ try {
+ ImmutableSortedMap.of("one", 1, "one", 1);
+ fail();
+ } catch (IllegalArgumentException expected) {
}
+ }
- public void testOfNullKey() {
- Integer n = null;
- try {
- ImmutableSortedMap.of(n, 1);
- fail();
- } catch (NullPointerException expected) {
- }
+ public void testCopyOfEmptyMap() {
+ ImmutableSortedMap<String, Integer> copy =
+ ImmutableSortedMap.copyOf(Collections.<String, Integer>emptyMap());
+ assertEquals(Collections.<String, Integer>emptyMap(), copy);
+ assertSame(copy, ImmutableSortedMap.copyOf(copy));
+ assertSame(Ordering.natural(), copy.comparator());
+ }
- try {
- ImmutableSortedMap.of("one", 1, null, 2);
- fail();
- } catch (NullPointerException expected) {
- }
- }
+ public void testCopyOfSingletonMap() {
+ ImmutableSortedMap<String, Integer> copy =
+ ImmutableSortedMap.copyOf(Collections.singletonMap("one", 1));
+ assertMapEquals(copy, "one", 1);
+ assertSame(copy, ImmutableSortedMap.copyOf(copy));
+ assertSame(Ordering.natural(), copy.comparator());
+ }
- public void testOfNullValue() {
- try {
- ImmutableSortedMap.of("one", null);
- fail();
- } catch (NullPointerException expected) {
- }
+ public void testCopyOf() {
+ Map<String, Integer> original = new LinkedHashMap<>();
+ original.put("one", 1);
+ original.put("two", 2);
+ original.put("three", 3);
- try {
- ImmutableSortedMap.of("one", 1, "two", null);
- fail();
- } catch (NullPointerException expected) {
- }
- }
+ ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOf(original);
+ assertMapEquals(copy, "one", 1, "three", 3, "two", 2);
+ assertSame(copy, ImmutableSortedMap.copyOf(copy));
+ assertSame(Ordering.natural(), copy.comparator());
+ }
- public void testOfWithDuplicateKey() {
- try {
- ImmutableSortedMap.of("one", 1, "one", 1);
- fail();
- } catch (IllegalArgumentException expected) {
- }
- }
+ public void testCopyOfExplicitComparator() {
+ Comparator<String> comparator = Ordering.natural().reverse();
+ Map<String, Integer> original = new LinkedHashMap<>();
+ original.put("one", 1);
+ original.put("two", 2);
+ original.put("three", 3);
+
+ ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOf(original, comparator);
+ assertMapEquals(copy, "two", 2, "three", 3, "one", 1);
+ assertSame(copy, ImmutableSortedMap.copyOf(copy, comparator));
+ assertSame(comparator, copy.comparator());
+ }
- public void testCopyOfEmptyMap() {
- ImmutableSortedMap<String, Integer> copy =
- ImmutableSortedMap.copyOf(Collections.<String, Integer>emptyMap());
- assertEquals(Collections.<String, Integer>emptyMap(), copy);
- assertSame(copy, ImmutableSortedMap.copyOf(copy));
- assertSame(Ordering.natural(), copy.comparator());
- }
+ public void testCopyOfImmutableSortedSetDifferentComparator() {
+ Comparator<String> comparator = Ordering.natural().reverse();
+ Map<String, Integer> original = ImmutableSortedMap.of("one", 1, "two", 2, "three", 3);
+ ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOf(original, comparator);
+ assertMapEquals(copy, "two", 2, "three", 3, "one", 1);
+ assertSame(copy, ImmutableSortedMap.copyOf(copy, comparator));
+ assertSame(comparator, copy.comparator());
+ }
- public void testCopyOfSingletonMap() {
- ImmutableSortedMap<String, Integer> copy =
- ImmutableSortedMap.copyOf(Collections.singletonMap("one", 1));
- assertMapEquals(copy, "one", 1);
- assertSame(copy, ImmutableSortedMap.copyOf(copy));
- assertSame(Ordering.natural(), copy.comparator());
- }
+ public void testCopyOfSortedNatural() {
+ SortedMap<String, Integer> original = Maps.newTreeMap();
+ original.put("one", 1);
+ original.put("two", 2);
+ original.put("three", 3);
- public void testCopyOf() {
- Map<String, Integer> original = new LinkedHashMap<>();
- original.put("one", 1);
- original.put("two", 2);
- original.put("three", 3);
+ ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOfSorted(original);
+ assertMapEquals(copy, "one", 1, "three", 3, "two", 2);
+ assertSame(copy, ImmutableSortedMap.copyOfSorted(copy));
+ assertSame(Ordering.natural(), copy.comparator());
+ }
- ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOf(original);
- assertMapEquals(copy, "one", 1, "three", 3, "two", 2);
- assertSame(copy, ImmutableSortedMap.copyOf(copy));
- assertSame(Ordering.natural(), copy.comparator());
- }
+ public void testCopyOfSortedExplicit() {
+ Comparator<String> comparator = Ordering.natural().reverse();
+ SortedMap<String, Integer> original = Maps.newTreeMap(comparator);
+ original.put("one", 1);
+ original.put("two", 2);
+ original.put("three", 3);
+
+ ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOfSorted(original);
+ assertMapEquals(copy, "two", 2, "three", 3, "one", 1);
+ assertSame(copy, ImmutableSortedMap.copyOfSorted(copy));
+ assertSame(comparator, copy.comparator());
+ }
- public void testCopyOfExplicitComparator() {
- Comparator<String> comparator = Ordering.natural().reverse();
- Map<String, Integer> original = new LinkedHashMap<>();
- original.put("one", 1);
- original.put("two", 2);
- original.put("three", 3);
-
- ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOf(original, comparator);
- assertMapEquals(copy, "two", 2, "three", 3, "one", 1);
- assertSame(copy, ImmutableSortedMap.copyOf(copy, comparator));
- assertSame(comparator, copy.comparator());
- }
+ private static class IntegerDiv10 implements Comparable<IntegerDiv10> {
+ final int value;
- public void testCopyOfImmutableSortedSetDifferentComparator() {
- Comparator<String> comparator = Ordering.natural().reverse();
- Map<String, Integer> original = ImmutableSortedMap.of("one", 1, "two", 2, "three", 3);
- ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOf(original, comparator);
- assertMapEquals(copy, "two", 2, "three", 3, "one", 1);
- assertSame(copy, ImmutableSortedMap.copyOf(copy, comparator));
- assertSame(comparator, copy.comparator());
+ IntegerDiv10(int value) {
+ this.value = value;
}
- public void testCopyOfSortedNatural() {
- SortedMap<String, Integer> original = Maps.newTreeMap();
- original.put("one", 1);
- original.put("two", 2);
- original.put("three", 3);
-
- ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOfSorted(original);
- assertMapEquals(copy, "one", 1, "three", 3, "two", 2);
- assertSame(copy, ImmutableSortedMap.copyOfSorted(copy));
- assertSame(Ordering.natural(), copy.comparator());
+ @Override
+ public int compareTo(IntegerDiv10 o) {
+ return value / 10 - o.value / 10;
}
- public void testCopyOfSortedExplicit() {
- Comparator<String> comparator = Ordering.natural().reverse();
- SortedMap<String, Integer> original = Maps.newTreeMap(comparator);
- original.put("one", 1);
- original.put("two", 2);
- original.put("three", 3);
-
- ImmutableSortedMap<String, Integer> copy = ImmutableSortedMap.copyOfSorted(original);
- assertMapEquals(copy, "two", 2, "three", 3, "one", 1);
- assertSame(copy, ImmutableSortedMap.copyOfSorted(copy));
- assertSame(comparator, copy.comparator());
+ @Override
+ public String toString() {
+ return Integer.toString(value);
}
+ }
- private static class IntegerDiv10 implements Comparable<IntegerDiv10> {
- final int value;
-
- IntegerDiv10(int value) {
- this.value = value;
- }
-
- @Override
- public int compareTo(IntegerDiv10 o) {
- return value / 10 - o.value / 10;
- }
-
- @Override
- public String toString() {
- return Integer.toString(value);
- }
- }
+ public void testCopyOfDuplicateKey() {
+ Map<IntegerDiv10, String> original =
+ ImmutableMap.of(
+ new IntegerDiv10(3), "three",
+ new IntegerDiv10(20), "twenty",
+ new IntegerDiv10(11), "eleven",
+ new IntegerDiv10(35), "thirty five",
+ new IntegerDiv10(12), "twelve");
- public void testCopyOfDuplicateKey() {
- Map<IntegerDiv10, String> original =
- ImmutableMap.of(
- new IntegerDiv10(3), "three",
- new IntegerDiv10(20), "twenty",
- new IntegerDiv10(11), "eleven",
- new IntegerDiv10(35), "thirty five",
- new IntegerDiv10(12), "twelve");
-
- try {
- ImmutableSortedMap.copyOf(original);
- fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ try {
+ ImmutableSortedMap.copyOf(original);
+ fail("Expected IllegalArgumentException");
+ } catch (IllegalArgumentException expected) {
}
+ }
- public void testImmutableMapCopyOfImmutableSortedMap() {
- IntegerDiv10 three = new IntegerDiv10(3);
- IntegerDiv10 eleven = new IntegerDiv10(11);
- IntegerDiv10 twelve = new IntegerDiv10(12);
- IntegerDiv10 twenty = new IntegerDiv10(20);
- Map<IntegerDiv10, String> original =
- ImmutableSortedMap.of(three, "three", eleven, "eleven", twenty, "twenty");
- Map<IntegerDiv10, String> copy = ImmutableMap.copyOf(original);
- assertTrue(original.containsKey(twelve));
- assertFalse(copy.containsKey(twelve));
- }
+ public void testImmutableMapCopyOfImmutableSortedMap() {
+ IntegerDiv10 three = new IntegerDiv10(3);
+ IntegerDiv10 eleven = new IntegerDiv10(11);
+ IntegerDiv10 twelve = new IntegerDiv10(12);
+ IntegerDiv10 twenty = new IntegerDiv10(20);
+ Map<IntegerDiv10, String> original =
+ ImmutableSortedMap.of(three, "three", eleven, "eleven", twenty, "twenty");
+ Map<IntegerDiv10, String> copy = ImmutableMap.copyOf(original);
+ assertTrue(original.containsKey(twelve));
+ assertFalse(copy.containsKey(twelve));
+ }
- public void testBuilderReverseOrder() {
- ImmutableSortedMap<String, Integer> map =
- ImmutableSortedMap.<String, Integer>reverseOrder()
- .put("one", 1)
- .put("two", 2)
- .put("three", 3)
- .put("four", 4)
- .put("five", 5)
- .build();
- assertMapEquals(map, "two", 2, "three", 3, "one", 1, "four", 4, "five", 5);
- assertEquals(Ordering.natural().reverse(), map.comparator());
- }
+ public void testBuilderReverseOrder() {
+ ImmutableSortedMap<String, Integer> map =
+ ImmutableSortedMap.<String, Integer>reverseOrder()
+ .put("one", 1)
+ .put("two", 2)
+ .put("three", 3)
+ .put("four", 4)
+ .put("five", 5)
+ .build();
+ assertMapEquals(map, "two", 2, "three", 3, "one", 1, "four", 4, "five", 5);
+ assertEquals(Ordering.natural().reverse(), map.comparator());
+ }
- public void testBuilderComparator() {
- Comparator<String> comparator = Ordering.natural().reverse();
- ImmutableSortedMap<String, Integer> map =
- new ImmutableSortedMap.Builder<String, Integer>(comparator)
- .put("one", 1)
- .put("two", 2)
- .put("three", 3)
- .put("four", 4)
- .put("five", 5)
- .build();
- assertMapEquals(map, "two", 2, "three", 3, "one", 1, "four", 4, "five", 5);
- assertSame(comparator, map.comparator());
- }
+ public void testBuilderComparator() {
+ Comparator<String> comparator = Ordering.natural().reverse();
+ ImmutableSortedMap<String, Integer> map =
+ new ImmutableSortedMap.Builder<String, Integer>(comparator)
+ .put("one", 1)
+ .put("two", 2)
+ .put("three", 3)
+ .put("four", 4)
+ .put("five", 5)
+ .build();
+ assertMapEquals(map, "two", 2, "three", 3, "one", 1, "four", 4, "five", 5);
+ assertSame(comparator, map.comparator());
+ }
- public void testToImmutableSortedMap() {
- Collector<Entry<String, Integer>, ?, ImmutableSortedMap<String, Integer>> collector =
- ImmutableSortedMap.toImmutableSortedMap(
- String.CASE_INSENSITIVE_ORDER, Entry::getKey, Entry::getValue);
- BiPredicate<ImmutableSortedMap<String, Integer>, ImmutableSortedMap<String, Integer>>
- equivalence =
- Equivalence.equals()
- .onResultOf(ImmutableSortedMap<String, Integer>::comparator)
- .and(Equivalence.equals().onResultOf(map -> map.entrySet().asList()))
- .and(Equivalence.equals());
- ImmutableSortedMap<String, Integer> expected =
- ImmutableSortedMap.<String, Integer>orderedBy(String.CASE_INSENSITIVE_ORDER)
- .put("one", 1)
- .put("three", 3)
- .put("two", 2)
- .build();
- CollectorTester.of(collector, equivalence)
- .expectCollects(expected, mapEntry("one", 1), mapEntry("two", 2), mapEntry("three", 3));
- }
+ public void testToImmutableSortedMap() {
+ Collector<Entry<String, Integer>, ?, ImmutableSortedMap<String, Integer>> collector =
+ ImmutableSortedMap.toImmutableSortedMap(
+ String.CASE_INSENSITIVE_ORDER, Entry::getKey, Entry::getValue);
+ BiPredicate<ImmutableSortedMap<String, Integer>, ImmutableSortedMap<String, Integer>>
+ equivalence =
+ Equivalence.equals()
+ .onResultOf(ImmutableSortedMap<String, Integer>::comparator)
+ .and(Equivalence.equals().onResultOf(map -> map.entrySet().asList()))
+ .and(Equivalence.equals());
+ ImmutableSortedMap<String, Integer> expected =
+ ImmutableSortedMap.<String, Integer>orderedBy(String.CASE_INSENSITIVE_ORDER)
+ .put("one", 1)
+ .put("three", 3)
+ .put("two", 2)
+ .build();
+ CollectorTester.of(collector, equivalence)
+ .expectCollects(expected, mapEntry("one", 1), mapEntry("two", 2), mapEntry("three", 3));
+ }
- public void testToImmutableSortedMap_exceptionOnDuplicateKey() {
- Collector<Entry<String, Integer>, ?, ImmutableSortedMap<String, Integer>> collector =
- ImmutableSortedMap.toImmutableSortedMap(
- Ordering.natural(), Entry::getKey, Entry::getValue);
- try {
- Stream.of(mapEntry("one", 1), mapEntry("one", 11)).collect(collector);
- fail("Expected IllegalArgumentException");
- } catch (IllegalArgumentException expected) {
- }
+ public void testToImmutableSortedMap_exceptionOnDuplicateKey() {
+ Collector<Entry<String, Integer>, ?, ImmutableSortedMap<String, Integer>> collector =
+ ImmutableSortedMap.toImmutableSortedMap(Ordering.natural(), Entry::getKey, Entry::getValue);
+ try {
+ Stream.of(mapEntry("one", 1), mapEntry("one", 11)).collect(collector);
+ fail("Expected IllegalArgumentException");
+ } catch (IllegalArgumentException expected) {
}
+ }
- public void testToImmutableSortedMapMerging() {
- Collector<Entry<String, Integer>, ?, ImmutableSortedMap<String, Integer>> collector =
- ImmutableSortedMap.toImmutableSortedMap(
- Comparator.naturalOrder(), Entry::getKey, Entry::getValue, Integer::sum);
- Equivalence<ImmutableMap<String, Integer>> equivalence =
- Equivalence.equals()
- .<Entry<String, Integer>>pairwise()
- .onResultOf(ImmutableMap::entrySet);
- CollectorTester.of(collector, equivalence)
- .expectCollects(
- ImmutableSortedMap.of("one", 1, "three", 3, "two", 4),
- mapEntry("one", 1),
- mapEntry("two", 2),
- mapEntry("three", 3),
- mapEntry("two", 2));
- }
+ public void testToImmutableSortedMapMerging() {
+ Collector<Entry<String, Integer>, ?, ImmutableSortedMap<String, Integer>> collector =
+ ImmutableSortedMap.toImmutableSortedMap(
+ Comparator.naturalOrder(), Entry::getKey, Entry::getValue, Integer::sum);
+ Equivalence<ImmutableMap<String, Integer>> equivalence =
+ Equivalence.equals().<Entry<String, Integer>>pairwise().onResultOf(ImmutableMap::entrySet);
+ CollectorTester.of(collector, equivalence)
+ .expectCollects(
+ ImmutableSortedMap.of("one", 1, "three", 3, "two", 4),
+ mapEntry("one", 1),
+ mapEntry("two", 2),
+ mapEntry("three", 3),
+ mapEntry("two", 2));
}
+ // Other tests
+
public void testNullGet() {
ImmutableSortedMap<String, Integer> map = ImmutableSortedMap.of("one", 1);
assertNull(map.get(null));
@@ -920,7 +744,7 @@ public class ImmutableSortedMapTest extends TestCase {
}
@Override
- public boolean equals(Object o) {
+ public boolean equals(@Nullable Object o) {
return (o instanceof IntHolder) && ((IntHolder) o).value == value;
}