Class AbstractTestList
java.lang.Object
junit.framework.Assert
junit.framework.TestCase
org.apache.commons.collections.BulkTest
org.apache.commons.collections.AbstractTestObject
org.apache.commons.collections.collection.AbstractTestCollection
org.apache.commons.collections.list.AbstractTestList
- All Implemented Interfaces:
Cloneable
,junit.framework.Test
- Direct Known Subclasses:
AbstractTestList.BulkTestSubList
Abstract test class for
List
methods and contracts.
To use, simply extend this class, and implement
the makeEmptyList()
method.
If your List
fails one of these tests by design,
you may still use this base set of cases. Simply override the
test case (method) your List
fails or override one of the
protected methods from AbstractTestCollection.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
class
-
Field Summary
Fields inherited from class org.apache.commons.collections.collection.AbstractTestCollection
collection, confirmed
Fields inherited from class org.apache.commons.collections.AbstractTestObject
COLLECTIONS_MAJOR_VERSION
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns aBulkTest
for testingList.subList(int,int)
.protected void
failFastAll
(List list) Invokes all the methods on the given sublist to make sure they raise aConcurrentModificationException
.protected void
failFastMethod
(List list, Method m) Invokes the given method on the given sublist to make sure it raises aConcurrentModificationException
.Returns theAbstractTestCollection.confirmed
field cast to aList
.getList()
Returns theAbstractTestCollection.collection
field cast to aList
.boolean
List equals method is defined.boolean
Returns true if the collections produced bymakeCollection()
andmakeFullCollection()
support theset operation.
final Collection
ReturnsmakeEmptyList()
.Returns an emptyArrayList
.Returns a fullArrayList
.abstract List
Return a new, emptyList
to be used for testing.final Collection
ReturnsmakeFullList()
.Return a new, fullList
to be used for testing.void
Compare the current serialized form of the List against the canonical version in CVS.void
void
Compare the current serialized form of the List against the canonical version in CVS.void
void
TestsList.add(int,Object)
.void
Tests bounds checking forList.add(int, Object)
on an empty list.void
Tests bounds checking forList.add(int, Object)
on a full list.void
TestsList.equals(Object)
.void
TestsList.get(int)
.void
Tests bounds checking forList.get(int)
on an empty list.void
Tests bounds checking forList.get(int)
on a full list.void
TestsList.hashCode()
.void
void
Tests theListIterator.add(Object)
method of the list iterator.void
Tests theListIterator.set(Object)
method of the list iterator.void
void
Tests the read-only bits ofList.listIterator()
.void
Tests the read-only bits ofList.listIterator(int)
.void
Tests remove on list iterator is correct.void
Tests remove on list iterator is correct.void
Tests remove on list iterator is correct.void
Tests remove on list iterator is correct.void
TestsList.remove(int)
.void
Tests bounds checking forList.remove(int)
on an empty list.void
Tests bounds checking forList.remove(int)
on a full list.void
TestList.set(int,Object)
.void
Tests bounds checking forList.set(int,Object)
on an empty list.void
Tests bounds checking forList.set(int,Object)
on a full list.void
Tests that a sublist raises aConcurrentModificationException
if elements are added to the original list.void
Tests that a sublist raises aConcurrentModificationException
if elements are removed from the original list.void
IfisSetSupported()
returns false, tests that set operation raisesUnsupportedOperationException.
void
verify()
Verifies that the test list implementation matches the confirmed list implementation.Methods inherited from class org.apache.commons.collections.collection.AbstractTestCollection
areEqualElementsDistinguishable, cloneMapEntry, getFullElements, getFullNonNullElements, getFullNonNullStringElements, getOtherElements, getOtherNonNullElements, getOtherNonNullStringElements, isAddSupported, isFailFastSupported, isNullSupported, isRemoveSupported, makeObject, resetEmpty, resetFull, testCollectionAdd, testCollectionAddAll, testCollectionClear, testCollectionContains, testCollectionContainsAll, testCollectionIsEmpty, testCollectionIterator, testCollectionIteratorFailFast, testCollectionIteratorRemove, testCollectionRemove, testCollectionRemoveAll, testCollectionRetainAll, testCollectionSize, testCollectionToArray, testCollectionToArray2, testCollectionToString, testSerializeDeserializeThenCompare, testUnsupportedAdd, testUnsupportedRemove
Methods inherited from class org.apache.commons.collections.AbstractTestObject
getCanonicalEmptyCollectionName, getCanonicalFullCollectionName, getCompatibilityVersion, isTestSerialization, readExternalFormFromBytes, readExternalFormFromDisk, skipSerializedCanonicalTests, supportsEmptyCollections, supportsFullCollections, testCanonicalEmptyCollectionExists, testCanonicalFullCollectionExists, testEqualsNull, testObjectEqualsSelf, testObjectHashCodeEqualsContract, testObjectHashCodeEqualsSelfHashCode, testSimpleSerialization, writeExternalFormToBytes, writeExternalFormToDisk
Methods inherited from class org.apache.commons.collections.BulkTest
clone, ignoredTests, makeSuite, toString
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, getName, run, run, runBare, runTest, setName, setUp, tearDown
-
Constructor Details
-
AbstractTestList
JUnit constructor.- Parameters:
testName
- the test class name
-
-
Method Details
-
isSetSupported
public boolean isSetSupported()Returns true if the collections produced bymakeCollection()
andmakeFullCollection()
support theset operation.
Default implementation returns true. Override if your collection class does not support set.
-
verify
public void verify()Verifies that the test list implementation matches the confirmed list implementation.- Overrides:
verify
in classAbstractTestCollection
-
isEqualsCheckable
public boolean isEqualsCheckable()List equals method is defined.- Overrides:
isEqualsCheckable
in classAbstractTestCollection
-
makeConfirmedCollection
Returns an emptyArrayList
.- Specified by:
makeConfirmedCollection
in classAbstractTestCollection
- Returns:
- a confirmed empty collection
-
makeConfirmedFullCollection
Returns a fullArrayList
.- Specified by:
makeConfirmedFullCollection
in classAbstractTestCollection
- Returns:
- a confirmed full collection
-
makeEmptyList
Return a new, emptyList
to be used for testing.- Returns:
- an empty list for testing.
-
makeFullList
Return a new, fullList
to be used for testing.- Returns:
- a full list for testing
-
makeCollection
ReturnsmakeEmptyList()
.- Specified by:
makeCollection
in classAbstractTestCollection
- Returns:
- an empty list to be used for testing
-
makeFullCollection
ReturnsmakeFullList()
.- Overrides:
makeFullCollection
in classAbstractTestCollection
- Returns:
- a full list to be used for testing
-
getList
Returns theAbstractTestCollection.collection
field cast to aList
.- Returns:
- the collection field as a List
-
getConfirmedList
Returns theAbstractTestCollection.confirmed
field cast to aList
.- Returns:
- the confirmed field as a List
-
testListAddByIndexBoundsChecking
public void testListAddByIndexBoundsChecking()Tests bounds checking forList.add(int, Object)
on an empty list. -
testListAddByIndexBoundsChecking2
public void testListAddByIndexBoundsChecking2()Tests bounds checking forList.add(int, Object)
on a full list. -
testListAddByIndex
public void testListAddByIndex()TestsList.add(int,Object)
. -
testListEquals
public void testListEquals()TestsList.equals(Object)
. -
testListHashCode
public void testListHashCode()TestsList.hashCode()
. -
testListGetByIndex
public void testListGetByIndex()TestsList.get(int)
. -
testListGetByIndexBoundsChecking
public void testListGetByIndexBoundsChecking()Tests bounds checking forList.get(int)
on an empty list. -
testListGetByIndexBoundsChecking2
public void testListGetByIndexBoundsChecking2()Tests bounds checking forList.get(int)
on a full list. -
testListIndexOf
public void testListIndexOf() -
testListLastIndexOf
public void testListLastIndexOf() -
testListSetByIndexBoundsChecking
public void testListSetByIndexBoundsChecking()Tests bounds checking forList.set(int,Object)
on an empty list. -
testListSetByIndexBoundsChecking2
public void testListSetByIndexBoundsChecking2()Tests bounds checking forList.set(int,Object)
on a full list. -
testListSetByIndex
public void testListSetByIndex()TestList.set(int,Object)
. -
testUnsupportedSet
public void testUnsupportedSet()IfisSetSupported()
returns false, tests that set operation raisesUnsupportedOperationException.
-
testListRemoveByIndexBoundsChecking
public void testListRemoveByIndexBoundsChecking()Tests bounds checking forList.remove(int)
on an empty list. -
testListRemoveByIndexBoundsChecking2
public void testListRemoveByIndexBoundsChecking2()Tests bounds checking forList.remove(int)
on a full list. -
testListRemoveByIndex
public void testListRemoveByIndex()TestsList.remove(int)
. -
testListListIterator
public void testListListIterator()Tests the read-only bits ofList.listIterator()
. -
testListListIteratorByIndex
public void testListListIteratorByIndex()Tests the read-only bits ofList.listIterator(int)
. -
testListListIteratorPreviousRemoveNext
public void testListListIteratorPreviousRemoveNext()Tests remove on list iterator is correct. -
testListListIteratorPreviousRemovePrevious
public void testListListIteratorPreviousRemovePrevious()Tests remove on list iterator is correct. -
testListListIteratorNextRemoveNext
public void testListListIteratorNextRemoveNext()Tests remove on list iterator is correct. -
testListListIteratorNextRemovePrevious
public void testListListIteratorNextRemovePrevious()Tests remove on list iterator is correct. -
testListIteratorAdd
public void testListIteratorAdd()Tests theListIterator.add(Object)
method of the list iterator. -
testListIteratorSet
public void testListIteratorSet()Tests theListIterator.set(Object)
method of the list iterator. -
testEmptyListSerialization
- Throws:
IOException
ClassNotFoundException
-
testFullListSerialization
- Throws:
IOException
ClassNotFoundException
-
testEmptyListCompatibility
Compare the current serialized form of the List against the canonical version in CVS.- Throws:
IOException
ClassNotFoundException
-
testFullListCompatibility
Compare the current serialized form of the List against the canonical version in CVS.- Throws:
IOException
ClassNotFoundException
-
bulkTestSubList
Returns aBulkTest
for testingList.subList(int,int)
. The returned bulk test will run through everyTestList
method, including anotherbulkTestSubList
. Sublists are tested until the size of the sublist is less than 10. Each sublist is 6 elements smaller than its parent list. (By default this means that two rounds of sublists will be tested). The verify() method is overloaded to test that the original list is modified when the sublist is. -
testListSubListFailFastOnAdd
public void testListSubListFailFastOnAdd()Tests that a sublist raises aConcurrentModificationException
if elements are added to the original list. -
testListSubListFailFastOnRemove
public void testListSubListFailFastOnRemove()Tests that a sublist raises aConcurrentModificationException
if elements are removed from the original list. -
failFastAll
Invokes all the methods on the given sublist to make sure they raise aConcurrentModificationException
. -
failFastMethod
Invokes the given method on the given sublist to make sure it raises aConcurrentModificationException
. Unless the method happens to be the equals() method, in which case the test is skipped. There seems to be a bug in java.util.AbstractList.subList(int,int).equals(Object) -- it never raises a ConcurrentModificationException.- Parameters:
list
- the sublist to testm
- the method to invoke
-
bulkTestListIterator
-