Class MapInterfaceTest<K extends @Nullable Object,V extends @Nullable Object>

java.lang.Object
junit.framework.Assert
junit.framework.TestCase
com.google.common.collect.testing.MapInterfaceTest<K,V>
Type Parameters:
K - the type of keys used by the maps under test
V - the type of mapped values used the maps under test
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
SortedMapInterfaceTest

@GwtCompatible @NullMarked public abstract class MapInterfaceTest<K extends @Nullable Object,V extends @Nullable Object> extends junit.framework.TestCase
Tests representing the contract of Map. Concrete subclasses of this base class test conformance of concrete Map subclasses to that contract.
Author:
George van den Driessche
  • Field Details

    • supportsPut

      protected final boolean supportsPut
    • supportsRemove

      protected final boolean supportsRemove
    • supportsClear

      protected final boolean supportsClear
    • allowsNullKeys

      protected final boolean allowsNullKeys
    • allowsNullValues

      protected final boolean allowsNullValues
    • supportsIteratorRemove

      protected final boolean supportsIteratorRemove
  • Constructor Details

    • MapInterfaceTest

      protected MapInterfaceTest(boolean allowsNullKeys, boolean allowsNullValues, boolean supportsPut, boolean supportsRemove, boolean supportsClear)
      Constructor that assigns supportsIteratorRemove the same value as supportsRemove.
    • MapInterfaceTest

      protected MapInterfaceTest(boolean allowsNullKeys, boolean allowsNullValues, boolean supportsPut, boolean supportsRemove, boolean supportsClear, boolean supportsIteratorRemove)
      Constructor with an explicit supportsIteratorRemove parameter.
  • Method Details

    • makeEmptyMap

      protected abstract Map<K,V> makeEmptyMap() throws UnsupportedOperationException
      Creates a new, empty instance of the class under test.
      Returns:
      a new, empty map instance.
      Throws:
      UnsupportedOperationException - if it's not possible to make an empty instance of the class under test.
    • makePopulatedMap

      protected abstract Map<K,V> makePopulatedMap() throws UnsupportedOperationException
      Creates a new, non-empty instance of the class under test.
      Returns:
      a new, non-empty map instance.
      Throws:
      UnsupportedOperationException - if it's not possible to make a non-empty instance of the class under test.
    • getKeyNotInPopulatedMap

      protected abstract K getKeyNotInPopulatedMap() throws UnsupportedOperationException
      Creates a new key that is not expected to be found in makePopulatedMap().
      Returns:
      a key.
      Throws:
      UnsupportedOperationException - if it's not possible to make a key that will not be found in the map.
    • getValueNotInPopulatedMap

      protected abstract V getValueNotInPopulatedMap() throws UnsupportedOperationException
      Creates a new value that is not expected to be found in makePopulatedMap().
      Returns:
      a value.
      Throws:
      UnsupportedOperationException - if it's not possible to make a value that will not be found in the map.
    • makeEitherMap

      protected Map<K,V> makeEitherMap()
      Used by tests that require a map, but don't care whether it's populated or not.
      Returns:
      a new map instance.
    • supportsValuesHashCode

      protected final boolean supportsValuesHashCode(Map<K,V> map)
    • assertInvariants

      protected final void assertInvariants(Map<K,V> map)
      Checks all the properties that should always hold of a map. Also calls assertMoreInvariants(java.util.Map<K, V>) to check invariants that are peculiar to specific implementations.
      Parameters:
      map - the map to check.
      See Also:
    • assertMoreInvariants

      protected void assertMoreInvariants(Map<K,V> map)
      Override this to check invariants which should hold true for a particular implementation, but which are not generally applicable to every instance of Map.
      Parameters:
      map - the map whose additional invariants to check.
    • testClear

      public void testClear()
    • testContainsKey

      public void testContainsKey()
    • testContainsValue

      public void testContainsValue()
    • testEntrySet

      public void testEntrySet()
    • testEntrySetForEmptyMap

      public void testEntrySetForEmptyMap()
    • testEntrySetContainsEntryIncompatibleKey

      public void testEntrySetContainsEntryIncompatibleKey()
    • testEntrySetContainsEntryNullKeyPresent

      public void testEntrySetContainsEntryNullKeyPresent()
    • testEntrySetContainsEntryNullKeyMissing

      public void testEntrySetContainsEntryNullKeyMissing()
    • testEntrySetIteratorRemove

      public void testEntrySetIteratorRemove()
    • testEntrySetRemove

      public void testEntrySetRemove()
    • testEntrySetRemoveMissingKey

      public void testEntrySetRemoveMissingKey()
    • testEntrySetRemoveDifferentValue

      public void testEntrySetRemoveDifferentValue()
    • testEntrySetRemoveNullKeyPresent

      public void testEntrySetRemoveNullKeyPresent()
    • testEntrySetRemoveNullKeyMissing

      public void testEntrySetRemoveNullKeyMissing()
    • testEntrySetRemoveAll

      public void testEntrySetRemoveAll()
    • testEntrySetRemoveAllNullFromEmpty

      public void testEntrySetRemoveAllNullFromEmpty()
    • testEntrySetRetainAll

      public void testEntrySetRetainAll()
    • testEntrySetRetainAllNullFromEmpty

      public void testEntrySetRetainAllNullFromEmpty()
    • testEntrySetClear

      public void testEntrySetClear()
    • testEntrySetAddAndAddAll

      public void testEntrySetAddAndAddAll()
    • testEntrySetSetValue

      public void testEntrySetSetValue()
    • testEntrySetSetValueSameValue

      public void testEntrySetSetValueSameValue()
    • testEqualsForEqualMap

      public void testEqualsForEqualMap()
    • testEqualsForLargerMap

      public void testEqualsForLargerMap()
    • testEqualsForSmallerMap

      public void testEqualsForSmallerMap()
    • testEqualsForEmptyMap

      public void testEqualsForEmptyMap()
    • testGet

      public void testGet()
    • testGetForEmptyMap

      public void testGetForEmptyMap()
    • testGetNull

      public void testGetNull()
    • testHashCode

      public void testHashCode()
    • testHashCodeForEmptyMap

      public void testHashCodeForEmptyMap()
    • testPutNewKey

      public void testPutNewKey()
    • testPutExistingKey

      public void testPutExistingKey()
    • testPutNullKey

      public void testPutNullKey()
    • testPutNullValue

      public void testPutNullValue()
    • testPutNullValueForExistingKey

      public void testPutNullValueForExistingKey()
    • testPutAllNewKey

      public void testPutAllNewKey()
    • testPutAllExistingKey

      public void testPutAllExistingKey()
    • testRemove

      public void testRemove()
    • testRemoveMissingKey

      public void testRemoveMissingKey()
    • testSize

      public void testSize()
    • testKeySetRemove

      public void testKeySetRemove()
    • testKeySetRemoveAll

      public void testKeySetRemoveAll()
    • testKeySetRetainAll

      public void testKeySetRetainAll()
    • testKeySetClear

      public void testKeySetClear()
    • testKeySetRemoveAllNullFromEmpty

      public void testKeySetRemoveAllNullFromEmpty()
    • testKeySetRetainAllNullFromEmpty

      public void testKeySetRetainAllNullFromEmpty()
    • testValues

      public void testValues()
    • testValuesIteratorRemove

      public void testValuesIteratorRemove()
    • testValuesRemove

      public void testValuesRemove()
    • testValuesRemoveMissing

      public void testValuesRemoveMissing()
    • testValuesRemoveAll

      public void testValuesRemoveAll()
    • testValuesRemoveAllNullFromEmpty

      public void testValuesRemoveAllNullFromEmpty()
    • testValuesRetainAll

      public void testValuesRetainAll()
    • testValuesRetainAllNullFromEmpty

      public void testValuesRetainAllNullFromEmpty()
    • testValuesClear

      public void testValuesClear()