/** Returns a map from the ith element of list to i. */ static <E> ImmutableMap<E, Integer> indexMap(Collection<E> list) { ImmutableMap.Builder<E, Integer> builder = new ImmutableMap.Builder<>(list.size()); int i = 0; for (E e : list) { builder.put(e, i++); } return builder.build(); }
/** * Returns a new builder. The generated builder is equivalent to the builder created by the {@link * Builder} constructor. */ public static <K, V> Builder<K, V> builder() { return new Builder<>(); }
public void testBuilder_withImmutableEntry() { ImmutableMap<String, Integer> map = new Builder<String, Integer>().put(Maps.immutableEntry("one", 1)).build(); assertMapEquals(map, "one", 1); }
public void testBuilder_withImmutableEntryAndNullContents() { Builder<String, Integer> builder = new Builder<>(); try { builder.put(Maps.immutableEntry("one", (Integer) null)); fail(); } catch (NullPointerException expected) { } try { builder.put(Maps.immutableEntry((String) null, 1)); fail(); } catch (NullPointerException expected) { } }
public void testBuilderPutImmutableEntryWithNullKeyFailsAtomically() { Builder<String, Integer> builder = new Builder<>(); try { builder.put(Maps.immutableEntry((String) null, 1)); fail(); } catch (NullPointerException expected) { } builder.put("foo", 2); assertMapEquals(builder.build(), "foo", 2); }
public void testBuilderReuse() { Builder<String, Integer> builder = new Builder<>(); ImmutableMap<String, Integer> mapOne = builder.put("one", 1).put("two", 2).build(); ImmutableMap<String, Integer> mapTwo = builder.put("three", 3).put("four", 4).build(); assertMapEquals(mapOne, "one", 1, "two", 2); assertMapEquals(mapTwo, "one", 1, "two", 2, "three", 3, "four", 4); }
public void testBuilder_orderEntriesByValue() { ImmutableMap<String, Integer> map = new Builder<String, Integer>() .orderEntriesByValue(Ordering.natural()) .put("three", 3) .put("one", 1) .put("five", 5) .put("four", 4) .put("two", 2) .build(); assertMapEquals(map, "one", 1, "two", 2, "three", 3, "four", 4, "five", 5); }
public void testBuilder() { ImmutableMap<String, Integer> map = new Builder<String, Integer>() .put("one", 1) .put("two", 2) .put("three", 3) .put("four", 4) .put("five", 5) .build(); assertMapEquals(map, "one", 1, "two", 2, "three", 3, "four", 4, "five", 5); }
public void testBuilderPutNullValueViaPutAll() { Builder<String, Integer> builder = new Builder<>(); try { builder.putAll(Collections.<String, Integer>singletonMap("one", null)); fail(); } catch (NullPointerException expected) { } }
public void testBuilderPutNullKey() { Builder<String, Integer> builder = new Builder<>(); try { builder.put(null, 1); fail(); } catch (NullPointerException expected) { } }
public void testBuilderPutMutableEntryWithNullKeyFailsAtomically() { Builder<String, Integer> builder = new Builder<>(); try { builder.put(new SimpleEntry<String, Integer>(null, 1)); fail(); } catch (NullPointerException expected) { } builder.put("foo", 2); assertMapEquals(builder.build(), "foo", 2); }
public void testBuilderPutNullKeyFailsAtomically() { Builder<String, Integer> builder = new Builder<>(); try { builder.put(null, 1); fail(); } catch (NullPointerException expected) { } builder.put("foo", 2); assertMapEquals(builder.build(), "foo", 2); }
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); ImmutableMap<String, Integer> map = new Builder<String, Integer>().putAll(toPut).putAll(moreToPut).build(); assertMapEquals(map, "one", 1, "two", 2, "three", 3, "four", 4, "five", 5); }
@GwtIncompatible // NullPointerTester public void testNullPointers() { NullPointerTester tester = new NullPointerTester(); tester.testAllPublicStaticMethods(ImmutableMap.class); tester.testAllPublicInstanceMethods(new ImmutableMap.Builder<Object, Object>()); tester.testAllPublicInstanceMethods(ImmutableMap.of()); tester.testAllPublicInstanceMethods(ImmutableMap.of("one", 1)); tester.testAllPublicInstanceMethods(ImmutableMap.of("one", 1, "two", 2, "three", 3)); }
public void testPuttingTheSameKeyTwiceThrowsOnBuild() { Builder<String, Integer> builder = new Builder<String, Integer>() .put("one", 1) .put("one", 1); // throwing on this line would be even better try { builder.build(); fail(); } catch (IllegalArgumentException expected) { } }
public void testBuilderPutNullKeyViaPutAll() { Builder<String, Integer> builder = new Builder<>(); try { builder.putAll(Collections.<String, Integer>singletonMap(null, 1)); fail(); } catch (NullPointerException expected) { } }
public void testBuilderPutNullValue() { Builder<String, Integer> builder = new Builder<>(); try { builder.put("one", null); fail(); } catch (NullPointerException expected) { } }
public void testBuilderPutAllWithEmptyMap() { ImmutableMap<String, Integer> map = new Builder<String, Integer>().putAll(Collections.<String, Integer>emptyMap()).build(); assertEquals(Collections.<String, Integer>emptyMap(), map); }
public void testBuilder_orderEntriesByValue_usedTwiceFails() { ImmutableMap.Builder<String, Integer> builder = new Builder<String, Integer>().orderEntriesByValue(Ordering.natural()); try { builder.orderEntriesByValue(Ordering.natural()); fail("Expected IllegalStateException"); } catch (IllegalStateException expected) { } }
public void testBuilder_orderEntriesByValueAfterExactSizeBuild() { Builder<String, Integer> builder = new Builder<String, Integer>(2).put("four", 4).put("one", 1); ImmutableMap<String, Integer> keyOrdered = builder.build(); ImmutableMap<String, Integer> valueOrdered = builder.orderEntriesByValue(Ordering.natural()).build(); assertMapEquals(keyOrdered, "four", 4, "one", 1); assertMapEquals(valueOrdered, "one", 1, "four", 4); }