Class UnmodifiableCollectionTests

java.lang.Object
com.google.common.collect.testing.google.UnmodifiableCollectionTests

@GwtCompatible @NullMarked public class UnmodifiableCollectionTests extends Object
A series of tests that support asserting that collections cannot be modified, either through direct or indirect means.
Author:
Robert Konigsberg
  • Constructor Details

    • UnmodifiableCollectionTests

      public UnmodifiableCollectionTests()
  • Method Details

    • assertMapEntryIsUnmodifiable

      public static void assertMapEntryIsUnmodifiable(Map.Entry<?,?> entry)
    • assertIteratorIsUnmodifiable

      public static void assertIteratorIsUnmodifiable(Iterator<?> iterator)
      Verifies that an Iterator is unmodifiable.

      This test only works with iterators that iterate over a finite set.

    • assertIteratorsInOrder

      public static void assertIteratorsInOrder(Iterator<?> expectedIterator, Iterator<?> actualIterator)
      Asserts that two iterators contain elements in tandem.

      This test only works with iterators that iterate over a finite set.

    • assertCollectionIsUnmodifiable

      public static <E extends @Nullable Object> void assertCollectionIsUnmodifiable(Collection<E> collection, E sampleElement)
      Verifies that a collection is immutable.

      A collection is considered immutable if:

      1. All its mutation methods result in UnsupportedOperationException, and do not change the underlying contents.
      2. All methods that return objects that can indirectly mutate the collection throw UnsupportedOperationException when those mutators are called.
      Parameters:
      collection - the presumed-immutable collection
      sampleElement - an element of the same type as that contained by collection. collection may or may not have sampleElement as a member.
    • assertSetIsUnmodifiable

      public static <E extends @Nullable Object> void assertSetIsUnmodifiable(Set<E> set, E sampleElement)
      Verifies that a set is immutable.

      A set is considered immutable if:

      1. All its mutation methods result in UnsupportedOperationException, and do not change the underlying contents.
      2. All methods that return objects that can indirectly mutate the set throw UnsupportedOperationException when those mutators are called.
      Parameters:
      set - the presumed-immutable set
      sampleElement - an element of the same type as that contained by set. set may or may not have sampleElement as a member.
    • assertMultisetIsUnmodifiable

      public static <E extends @Nullable Object> void assertMultisetIsUnmodifiable(com.google.common.collect.Multiset<E> multiset, E sampleElement)
      Verifies that a multiset is immutable.

      A multiset is considered immutable if:

      1. All its mutation methods result in UnsupportedOperationException, and do not change the underlying contents.
      2. All methods that return objects that can indirectly mutate the multiset throw UnsupportedOperationException when those mutators are called.
      Parameters:
      multiset - the presumed-immutable multiset
      sampleElement - an element of the same type as that contained by multiset. multiset may or may not have sampleElement as a member.
    • assertMultimapIsUnmodifiable

      public static <K extends @Nullable Object, V extends @Nullable Object> void assertMultimapIsUnmodifiable(com.google.common.collect.Multimap<K,V> multimap, K sampleKey, V sampleValue)
      Verifies that a multimap is immutable.

      A multimap is considered immutable if:

      1. All its mutation methods result in UnsupportedOperationException, and do not change the underlying contents.
      2. All methods that return objects that can indirectly mutate the multimap throw UnsupportedOperationException when those mutators
      Parameters:
      multimap - the presumed-immutable multimap
      sampleKey - a key of the same type as that contained by multimap. multimap may or may not have sampleKey as a key.
      sampleValue - a key of the same type as that contained by multimap. multimap may or may not have sampleValue as a key.