Refine search
@MapFeature.Require({SUPPORTS_PUT, SUPPORTS_REMOVE}) public void testReplaceValuesWithEmpty() { int size = multimap().size(); List<V> oldValues = new ArrayList<>(multimap().get(k0())); @SuppressWarnings("unchecked") List<V> values = Collections.emptyList(); assertEquals(oldValues, new ArrayList<V>(multimap().replaceValues(k0(), values))); assertGet(k0()); assertEquals(size - oldValues.size(), multimap().size()); }
@CollectionSize.Require(absent = ZERO) @CollectionFeature.Require(SUPPORTS_ITERATOR_REMOVE) public void testKeySetIteratorRemove() { int key0Count = multimap().get(k0()).size(); Iterator<K> keyItr = multimap().keySet().iterator(); while (keyItr.hasNext()) { if (keyItr.next().equals(k0())) { keyItr.remove(); } } assertEquals(getNumElements() - key0Count, multimap().size()); assertGet(k0()); } }
@MapFeature.Require({SUPPORTS_PUT, SUPPORTS_REMOVE}) public void testReplaceValuesWithDuplicates() { int size = multimap().size(); List<V> oldValues = new ArrayList<>(multimap().get(k0())); List<V> values = Arrays.asList(v0(), v3(), v0()); assertEquals(oldValues, new ArrayList<V>(multimap().replaceValues(k0(), values))); assertEquals(size - oldValues.size() + multimap().get(k0()).size(), multimap().size()); assertTrue(multimap().get(k0()).containsAll(values)); }
@MapFeature.Require(value = SUPPORTS_PUT, absent = ALLOWS_NULL_VALUES) public void testPutAllNullValueNullLast_unsupported() { int size = getNumElements(); try { multimap().putAll(k3(), Lists.newArrayList(v3(), null)); fail(); } catch (NullPointerException expected) { } Collection<V> values = multimap().get(k3()); if (values.size() == 0) { expectUnchanged(); // Be extra thorough in case internal state was corrupted by the expected null. assertEquals(Lists.newArrayList(), Lists.newArrayList(values)); assertEquals(size, multimap().size()); } else { assertEquals(Lists.newArrayList(v3()), Lists.newArrayList(values)); assertEquals(size + 1, multimap().size()); } }
@CollectionSize.Require(absent = ZERO) @MapFeature.Require({SUPPORTS_PUT, SUPPORTS_REMOVE}) public void testReplaceNonEmptyValues() { List<K> keys = Helpers.copyToList(multimap().keySet()); @SuppressWarnings("unchecked") List<V> values = Arrays.asList(v0(), v2(), v3()); for (K k : keys) { resetContainer(); int size = multimap().size(); Collection<V> oldKeyValues = Helpers.copyToList(multimap().get(k)); multimap().replaceValues(k, values); assertGet(k, values); assertEquals(size + values.size() - oldKeyValues.size(), multimap().size()); } }
@MapFeature.Require(value = SUPPORTS_PUT, absent = ALLOWS_NULL_VALUES) public void testPutAllNullValueNullFirst_unsupported() { int size = getNumElements(); try { multimap().putAll(k3(), Lists.newArrayList(null, v3())); fail(); } catch (NullPointerException expected) { } /* * In principle, a Multimap implementation could add e3 first before failing on the null. But * that seems unlikely enough to be worth complicating the test over, especially if there's any * chance that a permissive test could mask a bug. */ expectUnchanged(); // Be extra thorough in case internal state was corrupted by the expected null. assertEquals(Lists.newArrayList(), Lists.newArrayList(multimap().get(k3()))); assertEquals(size, multimap().size()); }
public void testBuilderPutAllIterable() { ImmutableSetMultimap.Builder<String, Integer> builder = ImmutableSetMultimap.builder(); builder.putAll("foo", Arrays.asList(1, 2, 3)); builder.putAll("bar", Arrays.asList(4, 5)); builder.putAll("foo", Arrays.asList(6, 7)); Multimap<String, Integer> multimap = builder.build(); assertEquals(ImmutableSet.of(1, 2, 3, 6, 7), multimap.get("foo")); assertEquals(ImmutableSet.of(4, 5), multimap.get("bar")); assertEquals(7, multimap.size()); }
@MapFeature.Require(SUPPORTS_PUT) public void testPropagatesAddAllToMultimap() { Collection<V> result = multimap().get(k0()); assertTrue(result.addAll(Collections.singletonList(v3()))); assertTrue(multimap().containsKey(k0())); assertEquals(getNumElements() + 1, multimap().size()); assertTrue(multimap().containsEntry(k0(), v3())); }
@MapFeature.Require(SUPPORTS_PUT) @CollectionSize.Require(absent = ZERO) public void testPutPresentKeyPropagatesToGet() { List<K> keys = Helpers.copyToList(multimap().keySet()); for (K key : keys) { resetContainer(); int size = getNumElements(); Collection<V> collection = multimap().get(key); Collection<V> expectedCollection = Helpers.copyToList(collection); multimap().put(key, v3()); expectedCollection.add(v3()); assertEqualIgnoringOrder(expectedCollection, collection); assertEquals(size + 1, multimap().size()); } }
public void testBuilderPutAllIterable() { ImmutableListMultimap.Builder<String, Integer> builder = ImmutableListMultimap.builder(); builder.putAll("foo", Arrays.asList(1, 2, 3)); builder.putAll("bar", Arrays.asList(4, 5)); builder.putAll("foo", Arrays.asList(6, 7)); Multimap<String, Integer> multimap = builder.build(); assertEquals(Arrays.asList(1, 2, 3, 6, 7), multimap.get("foo")); assertEquals(Arrays.asList(4, 5), multimap.get("bar")); assertEquals(7, multimap.size()); }
@MapFeature.Require(SUPPORTS_PUT) public void testPutTwoElements() { int size = getNumElements(); List<V> values = Helpers.copyToList(multimap().get(k0())); assertTrue(multimap().put(k0(), v1())); assertTrue(multimap().put(k0(), v2())); values.add(v1()); values.add(v2()); assertGet(k0(), values); assertEquals(size + 2, multimap().size()); }
@GwtIncompatible // SerializableTester public void testSerialization() { Multimap<String, Integer> multimap = createMultimap(); SerializableTester.reserializeAndAssert(multimap); assertEquals(multimap.size(), SerializableTester.reserialize(multimap).size()); SerializableTester.reserializeAndAssert(multimap.get("foo")); LenientSerializableTester.reserializeAndAssertLenient(multimap.keySet()); LenientSerializableTester.reserializeAndAssertLenient(multimap.keys()); SerializableTester.reserializeAndAssert(multimap.asMap()); Collection<Integer> valuesCopy = SerializableTester.reserialize(multimap.values()); assertEquals(HashMultiset.create(multimap.values()), HashMultiset.create(valuesCopy)); }
public void testBuilderPutAllMultimapWithDuplicates() { Multimap<String, Integer> toPut = LinkedListMultimap.create(); toPut.put("foo", 1); toPut.put("bar", 4); toPut.put("foo", 2); toPut.put("foo", 1); toPut.put("bar", 5); Multimap<String, Integer> moreToPut = LinkedListMultimap.create(); moreToPut.put("foo", 6); moreToPut.put("bar", 4); moreToPut.put("foo", 7); moreToPut.put("foo", 2); ImmutableListMultimap.Builder<String, Integer> builder = ImmutableListMultimap.builder(); builder.putAll(toPut); builder.putAll(moreToPut); Multimap<String, Integer> multimap = builder.build(); assertEquals(Arrays.asList(1, 2, 1, 6, 7, 2), multimap.get("foo")); assertEquals(Arrays.asList(4, 5, 4), multimap.get("bar")); assertEquals(9, multimap.size()); }
public void testBuilderPutAllMultimap() { Multimap<String, Integer> toPut = LinkedListMultimap.create(); toPut.put("foo", 1); toPut.put("bar", 4); toPut.put("foo", 2); toPut.put("foo", 3); Multimap<String, Integer> moreToPut = LinkedListMultimap.create(); moreToPut.put("foo", 6); moreToPut.put("bar", 5); moreToPut.put("foo", 7); ImmutableSetMultimap.Builder<String, Integer> builder = ImmutableSetMultimap.builder(); builder.putAll(toPut); builder.putAll(moreToPut); Multimap<String, Integer> multimap = builder.build(); assertEquals(ImmutableSet.of(1, 2, 3, 6, 7), multimap.get("foo")); assertEquals(ImmutableSet.of(4, 5), multimap.get("bar")); assertEquals(7, multimap.size()); }
@GwtIncompatible // SerializableTester public void testSerialization() { Multimap<String, Integer> multimap = createMultimap(); SerializableTester.reserializeAndAssert(multimap); assertEquals(multimap.size(), SerializableTester.reserialize(multimap).size()); SerializableTester.reserializeAndAssert(multimap.get("foo")); LenientSerializableTester.reserializeAndAssertLenient(multimap.keySet()); LenientSerializableTester.reserializeAndAssertLenient(multimap.keys()); SerializableTester.reserializeAndAssert(multimap.asMap()); Collection<Integer> valuesCopy = SerializableTester.reserialize(multimap.values()); assertEquals(HashMultiset.create(multimap.values()), HashMultiset.create(valuesCopy)); }
public void testBuilderPutAllMultimap() { Multimap<String, Integer> toPut = LinkedListMultimap.create(); toPut.put("foo", 1); toPut.put("bar", 4); toPut.put("foo", 2); toPut.put("foo", 3); Multimap<String, Integer> moreToPut = LinkedListMultimap.create(); moreToPut.put("foo", 6); moreToPut.put("bar", 5); moreToPut.put("foo", 7); ImmutableListMultimap.Builder<String, Integer> builder = ImmutableListMultimap.builder(); builder.putAll(toPut); builder.putAll(moreToPut); Multimap<String, Integer> multimap = builder.build(); assertEquals(Arrays.asList(1, 2, 3, 6, 7), multimap.get("foo")); assertEquals(Arrays.asList(4, 5), multimap.get("bar")); assertEquals(7, multimap.size()); }
@MapFeature.Require(SUPPORTS_PUT) public void testPropagatesAddToMultimap() { Collection<V> result = multimap().get(k0()); assertTrue(result.add(v3())); assertTrue(multimap().containsKey(k0())); assertEquals(getNumElements() + 1, multimap().size()); assertTrue(multimap().containsEntry(k0(), v3())); }