com.google.common.collect.testing.google
Class UnmodifiableCollectionTests

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

@GwtCompatible
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 Summary
UnmodifiableCollectionTests()
           
 
Method Summary
static
<E> void
assertCollectionIsUnmodifiable(Collection<E> collection, E sampleElement)
          Verifies that a collection is immutable.
static void assertIteratorIsUnmodifiable(Iterator<?> iterator)
          Verifies that an Iterator is unmodifiable.
static void assertIteratorsInOrder(Iterator<?> expectedIterator, Iterator<?> actualIterator)
          Asserts that two iterators contain elements in tandem.
static void assertMapEntryIsUnmodifiable(Map.Entry<?,?> entry)
           
static
<K,V> void
assertMultimapIsUnmodifiable(Multimap<K,V> multimap, K sampleKey, V sampleValue)
          Verifies that a multimap is immutable.
static
<E> void
assertMultisetIsUnmodifiable(Multiset<E> multiset, E sampleElement)
          Verifies that a multiset is immutable.
static
<E> void
assertSetIsUnmodifiable(Set<E> set, E sampleElement)
          Verifies that a set is immutable.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnmodifiableCollectionTests

public UnmodifiableCollectionTests()
Method Detail

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> 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> 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> void assertMultisetIsUnmodifiable(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,V> void assertMultimapIsUnmodifiable(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.


Copyright © 2010-2012. All Rights Reserved.