@Override public boolean containsEntry(Object key, Object value) { synchronized (mutex) { return delegate().containsEntry(key, value); } }
@Override public boolean contains(@Nullable Object o) { if (o instanceof Map.Entry) { Map.Entry<?, ?> entry = (Map.Entry<?, ?>) o; return multimap().containsEntry(entry.getKey(), entry.getValue()); } return false; }
public void testContainsEntryAgreesWithGet() { for (K k : sampleKeys()) { for (V v : sampleValues()) { assertEquals(multimap().get(k).contains(v), multimap().containsEntry(k, v)); } } }
@CollectionSize.Require(absent = ZERO) @MapFeature.Require({SUPPORTS_PUT, ALLOWS_NULL_VALUES}) public void testAddNullValue() { Collection<V> result = multimap().asMap().get(k0()); assertTrue(result.add(null)); assertTrue(multimap().containsEntry(k0(), null)); }
@MapFeature.Require(absent = ALLOWS_NULL_VALUE_QUERIES) public void testContainsEntryNullDisallowedBecauseValueQueriesDisallowed() { try { multimap().containsEntry(k3(), null); fail("Expected NullPointerException"); } catch (NullPointerException expected) { // success } } }
@MapFeature.Require(absent = ALLOWS_NULL_KEY_QUERIES) public void testContainsEntryNullDisallowedBecauseKeyQueriesDisallowed() { try { multimap().containsEntry(null, v3()); fail("Expected NullPointerException"); } catch (NullPointerException expected) { // success } }
public void testFilterKeys() { Multimap<String, Integer> unfiltered = HashMultimap.create(); unfiltered.put("foo", 55556); unfiltered.put("badkey", 1); Multimap<String, Integer> filtered = Multimaps.filterKeys(unfiltered, KEY_PREDICATE); assertEquals(1, filtered.size()); assertTrue(filtered.containsEntry("foo", 55556)); }
public void testFilterFiltered() { Multimap<String, Integer> unfiltered = HashMultimap.create(); unfiltered.put("foo", 55556); unfiltered.put("badkey", 1); unfiltered.put("foo", 1); Multimap<String, Integer> keyFiltered = Multimaps.filterKeys(unfiltered, KEY_PREDICATE); Multimap<String, Integer> filtered = Multimaps.filterValues(keyFiltered, VALUE_PREDICATE); assertEquals(1, filtered.size()); assertTrue(filtered.containsEntry("foo", 1)); assertTrue(filtered.keySet().retainAll(Arrays.asList("cat", "dog"))); assertEquals(0, filtered.size()); }
@CollectionSize.Require(absent = ZERO) @MapFeature.Require({ALLOWS_NULL_KEYS, ALLOWS_NULL_VALUES}) public void testContainsEntryNullYes() { initMultimapWithNullKeyAndValue(); assertTrue(multimap().containsEntry(null, null)); }
@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) 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())); }
public void testUnmodifiableMultimapIsView() { Multimap<String, Integer> mod = HashMultimap.create(); Multimap<String, Integer> unmod = Multimaps.unmodifiableMultimap(mod); assertEquals(mod, unmod); mod.put("foo", 1); assertTrue(unmod.containsEntry("foo", 1)); assertEquals(mod, unmod); }
@MapFeature.Require({SUPPORTS_PUT, ALLOWS_NULL_VALUES}) public void testPutAllWithNullValue() { Multimap<K, V> source = getSubjectGenerator().create(Helpers.mapEntry(k0(), null)); assertTrue(multimap().putAll(source)); assertTrue(multimap().containsEntry(k0(), null)); }
@CollectionSize.Require(absent = ZERO) @MapFeature.Require(SUPPORTS_REMOVE) public void testRetainAllPropagatesToMultimap() { multimap().entries().retainAll(Collections.singleton(Helpers.mapEntry(k0(), v0()))); assertEquals(getSubjectGenerator().create(Helpers.mapEntry(k0(), v0())), multimap()); assertEquals(1, multimap().size()); assertTrue(multimap().containsEntry(k0(), v0())); }
@MapFeature.Require({SUPPORTS_PUT, ALLOWS_NULL_KEYS}) public void testPutAllWithNullKey() { Multimap<K, V> source = getSubjectGenerator().create(Helpers.mapEntry(null, v0())); assertTrue(multimap().putAll(source)); assertTrue(multimap().containsEntry(null, v0())); }
@CollectionSize.Require(absent = ZERO) @MapFeature.Require(SUPPORTS_REMOVE) public void testRemovePresent() { assertTrue(multimap().remove(k0(), v0())); assertFalse(multimap().containsEntry(k0(), v0())); expectMissing(e0()); assertEquals(getNumElements() - 1, multimap().size()); assertGet(k0(), ImmutableList.<V>of()); }
@MapFeature.Require(SUPPORTS_PUT) public void testPutAll() { Multimap<K, V> source = getSubjectGenerator().create(Helpers.mapEntry(k0(), v3()), Helpers.mapEntry(k3(), v3())); assertTrue(multimap().putAll(source)); assertTrue(multimap().containsEntry(k0(), v3())); assertTrue(multimap().containsEntry(k3(), v3())); }
@CollectionSize.Require(absent = ZERO) @MapFeature.Require(SUPPORTS_REMOVE) public void testRemovePropagatesToMultimap() { assertTrue(multimap().entries().remove(Helpers.mapEntry(k0(), v0()))); expectMissing(Helpers.mapEntry(k0(), v0())); assertEquals(getNumElements() - 1, multimap().size()); assertFalse(multimap().containsEntry(k0(), v0())); }
@CollectionSize.Require(SEVERAL) @MapFeature.Require(SUPPORTS_REMOVE) public void testPropagatesRemoveToMultimap() { resetContainer( Helpers.mapEntry(k0(), v0()), Helpers.mapEntry(k0(), v3()), Helpers.mapEntry(k0(), v2())); Collection<V> result = multimap().asMap().get(k0()); assertTrue(result.remove(v0())); assertFalse(multimap().containsEntry(k0(), v0())); assertEquals(2, multimap().size()); }
@CollectionSize.Require(SEVERAL) @MapFeature.Require(SUPPORTS_REMOVE) public void testKeysEntrySetRemove() { resetContainer( Helpers.mapEntry(k0(), v0()), Helpers.mapEntry(k0(), v1()), Helpers.mapEntry(k1(), v0())); assertTrue(multimap().keys().entrySet().remove(Multisets.immutableEntry(k0(), 2))); assertEquals(1, multimap().size()); assertTrue(multimap().containsEntry(k1(), v0())); } }