Class AbstractContainerTester<C,E>
- java.lang.Object
-
- junit.framework.Assert
-
- junit.framework.TestCase
-
- com.google.common.collect.testing.AbstractTester<OneSizeTestContainerGenerator<C,E>>
-
- com.google.common.collect.testing.AbstractContainerTester<C,E>
-
- Type Parameters:
C
- the type of the containerE
- 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 (includingCollection
andMap
) that contain elements.- Author:
- George van den Driessche
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractContainerTester.ArrayWithDuplicate<E>
-
Field Summary
Fields Modifier and Type Field Description protected C
container
protected SampleElements<E>
samples
-
Constructor Summary
Constructors Constructor Description AbstractContainerTester()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Collection<E>
actualContents()
protected AbstractContainerTester.ArrayWithDuplicate<E>
createArrayWithDuplicateElement()
protected MinimalCollection<E>
createDisjointCollection()
protected E[]
createOrderedArray()
protected E[]
createSamplesArray()
protected E
e0()
protected E
e1()
protected E
e2()
protected E
e3()
protected E
e4()
protected MinimalCollection<E>
emptyCollection()
protected void
expectAdded(int index, E... elements)
protected void
expectAdded(int index, Collection<E> elements)
protected void
expectAdded(E... elements)
Asserts that the collection under test contains exactly the elements it was initialized with plus the given elements, according toexpectContents(java.util.Collection)
.protected void
expectContents(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
expectMissing(E... elements)
protected void
expectUnchanged()
protected int
getNullLocation()
protected int
getNumElements()
protected List<E>
getOrderedElements()
Returns the sample elements as ordered byTestContainerGenerator.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
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, countTestCases, createResult, fail, fail, failNotEquals, failNotSame, failSame, format, run, run, runBare, runTest, setName, toString
-
-
-
-
Field Detail
-
samples
protected SampleElements<E> samples
-
-
Constructor Detail
-
AbstractContainerTester
public AbstractContainerTester()
-
-
Method Detail
-
setUp
@OverridingMethodsMustInvokeSuper public void setUp() throws Exception
- Overrides:
setUp
in classAbstractTester<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
@CanIgnoreReturnValue 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
@CanIgnoreReturnValue 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 useexpectContents(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 ofcontainer
- 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 extendsAbstractListTester
, a call toexpectContents()
invokes this version.- Parameters:
expected
- expected value ofcontainer
-
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 toexpectContents(java.util.Collection)
. In other words, for the defaultexpectContents()
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 aSet
:collection.add(existingElement); expectAdded(existingElement);
In this case,
collection
was not modified as a result of theadd()
call, and the test will fail because the number of occurrences ofexistingElement
is unchanged.- Parameters:
elements
- expected additional contents ofcontainer
-
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()
-
createOrderedArray
protected E[] createOrderedArray()
-
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 byTestContainerGenerator.order(List)
. Tests should use this method only if they declare requirementCollectionFeature.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()
-
-