com.google.common.collect.testing
Class AbstractContainerTester<C,E>

java.lang.Object
  extended by junit.framework.Assert
      extended by junit.framework.TestCase
          extended by com.google.common.collect.testing.AbstractTester<OneSizeTestContainerGenerator<C,E>>
              extended by com.google.common.collect.testing.AbstractContainerTester<C,E>
Type Parameters:
C - the type of the container
E - the type of the container's contents
All Implemented Interfaces:
junit.framework.Test
Direct Known Subclasses:
AbstractCollectionTester, AbstractMapTester, AbstractMultimapTester

@GwtCompatible
public abstract class AbstractContainerTester<C,E>
extends AbstractTester<OneSizeTestContainerGenerator<C,E>>

Base class for testers of classes (including Collection and Map) that contain elements.

This class is GWT compatible.

Author:
George van den Driessche

Nested Class Summary
static class AbstractContainerTester.ArrayWithDuplicate<E>
           
 
Field Summary
protected  C container
           
protected  SampleElements<E> samples
           
 
Constructor Summary
AbstractContainerTester()
           
 
Method Summary
protected abstract  Collection<E> actualContents()
           
protected  AbstractContainerTester.ArrayWithDuplicate<E> createArrayWithDuplicateElement()
           
protected  MinimalCollection<E> createDisjointCollection()
           
protected  E[] createSamplesArray()
           
protected  MinimalCollection<E> emptyCollection()
           
protected  void expectAdded(E... elements)
          Asserts that the collection under test contains exactly the elements it was initialized with plus the given elements, according to expectContents(java.util.Collection).
protected  void expectAdded(int index, Collection<E> elements)
           
protected  void expectAdded(int index, E... elements)
           
protected  void expectContents(Collection<E> expected)
          Asserts that the collection under test contains exactly the given elements, respecting cardinality but not order.
protected  void expectContents(E... elements)
           
protected  void expectMissing(E... elements)
           
protected  void expectUnchanged()
           
protected  int getNullLocation()
           
protected  int getNumElements()
           
protected  List<E> getOrderedElements()
          Returns the sample elements as ordered by TestContainerGenerator.order(List).
protected  Collection<E> getSampleElements()
           
protected  Collection<E> getSampleElements(int howMany)
           
protected  C resetContainer()
          Replaces the existing container under test with a new container created by the subject generator.
protected  C resetContainer(C newValue)
          Replaces the existing container under test with a new container.
 void setUp()
           
 
Methods inherited from class com.google.common.collect.testing.AbstractTester
getName, getSubjectGenerator, getTestMethodName, init, init, tearDown
 
Methods inherited from class junit.framework.TestCase
countTestCases, createResult, run, run, runBare, runTest, setName, toString
 
Methods inherited from class junit.framework.Assert
assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertTrue, assertTrue, fail, fail, failNotEquals, failNotSame, failSame, format
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

samples

protected SampleElements<E> samples

container

protected C container
Constructor Detail

AbstractContainerTester

public AbstractContainerTester()
Method Detail

setUp

public void setUp()
           throws Exception
Overrides:
setUp in class AbstractTester<OneSizeTestContainerGenerator<C,E>>
Throws:
Exception

actualContents

protected abstract Collection<E> actualContents()
Returns:
the contents of the container under test, for use by expectContents(E...) and its friends.

resetContainer

protected C resetContainer()
Replaces the existing container under test with a new container created by the subject generator.

Returns:
the new container instance.
See Also:
resetContainer(C)

resetContainer

protected C resetContainer(C newValue)
Replaces the existing container under test with a new container. This is useful when a single test method needs to create multiple containers while retaining the ability to use expectContents(E...) and other convenience methods. The creation of multiple containers in a single method is discouraged in most cases, but it is vital to the iterator tests.

Parameters:
newValue - the new container instance
Returns:
the new container instance

expectContents

protected final void expectContents(E... elements)
Parameters:
elements - expected contents of container
See Also:
expectContents(java.util.Collection)

expectContents

protected void expectContents(Collection<E> expected)
Asserts that the collection under test contains exactly the given elements, respecting cardinality but not order. Subclasses may override this method to provide stronger assertions, e.g., to check ordering in lists, but realize that unless a test extends AbstractListTester, a call to expectContents() invokes this version.

Parameters:
expected - expected value of container

expectUnchanged

protected void expectUnchanged()

expectAdded

protected final void expectAdded(E... elements)
Asserts that the collection under test contains exactly the elements it was initialized with plus the given elements, according to expectContents(java.util.Collection). In other words, for the default expectContents() implementation, the number of occurrences of each given element has increased by one since the test collection was created, and the number of occurrences of all other elements has not changed.

Note: This means that a test like the following will fail if collection is a Set:

 collection.add(existingElement);
 expectAdded(existingElement);
In this case, collection was not modified as a result of the add() call, and the test will fail because the number of occurrences of existingElement is unchanged.

Parameters:
elements - expected additional contents of container

expectAdded

protected final void expectAdded(int index,
                                 E... elements)

expectAdded

protected final void expectAdded(int index,
                                 Collection<E> elements)

expectMissing

protected void expectMissing(E... elements)

createSamplesArray

protected E[] createSamplesArray()

createArrayWithDuplicateElement

protected AbstractContainerTester.ArrayWithDuplicate<E> createArrayWithDuplicateElement()
Returns:
an array of the proper size with a duplicate element. The size must be at least three.

getNumElements

protected int getNumElements()

getSampleElements

protected Collection<E> getSampleElements(int howMany)

getSampleElements

protected Collection<E> getSampleElements()

getOrderedElements

protected List<E> getOrderedElements()
Returns the sample elements as ordered by TestContainerGenerator.order(List). Tests should used this method only if they declare requirement CollectionFeature.KNOWN_ORDER.


getNullLocation

protected int getNullLocation()
Returns:
a suitable location for a null element, to use when initializing containers for tests that involve a null element being present.

createDisjointCollection

protected MinimalCollection<E> createDisjointCollection()

emptyCollection

protected MinimalCollection<E> emptyCollection()


Copyright © 2010-2012. All Rights Reserved.