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 classclass -
Field Summary
Fields inherited from class org.apache.commons.collections.collection.AbstractTestCollection
collection, confirmedFields inherited from class org.apache.commons.collections.AbstractTestObject
COLLECTIONS_MAJOR_VERSION -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns aBulkTestfor testingList.subList(int,int).protected voidfailFastAll(List list) Invokes all the methods on the given sublist to make sure they raise aConcurrentModificationException.protected voidfailFastMethod(List list, Method m) Invokes the given method on the given sublist to make sure it raises aConcurrentModificationException.Returns theAbstractTestCollection.confirmedfield cast to aList.getList()Returns theAbstractTestCollection.collectionfield cast to aList.booleanList equals method is defined.booleanReturns true if the collections produced bymakeCollection()andmakeFullCollection()support theset operation.final CollectionReturnsmakeEmptyList().Returns an emptyArrayList.Returns a fullArrayList.abstract ListReturn a new, emptyListto be used for testing.final CollectionReturnsmakeFullList().Return a new, fullListto be used for testing.voidCompare the current serialized form of the List against the canonical version in CVS.voidvoidCompare the current serialized form of the List against the canonical version in CVS.voidvoidTestsList.add(int,Object).voidTests bounds checking forList.add(int, Object)on an empty list.voidTests bounds checking forList.add(int, Object)on a full list.voidTestsList.equals(Object).voidTestsList.get(int).voidTests bounds checking forList.get(int)on an empty list.voidTests bounds checking forList.get(int)on a full list.voidTestsList.hashCode().voidvoidTests theListIterator.add(Object)method of the list iterator.voidTests theListIterator.set(Object)method of the list iterator.voidvoidTests the read-only bits ofList.listIterator().voidTests the read-only bits ofList.listIterator(int).voidTests remove on list iterator is correct.voidTests remove on list iterator is correct.voidTests remove on list iterator is correct.voidTests remove on list iterator is correct.voidTestsList.remove(int).voidTests bounds checking forList.remove(int)on an empty list.voidTests bounds checking forList.remove(int)on a full list.voidTestList.set(int,Object).voidTests bounds checking forList.set(int,Object)on an empty list.voidTests bounds checking forList.set(int,Object)on a full list.voidTests that a sublist raises aConcurrentModificationExceptionif elements are added to the original list.voidTests that a sublist raises aConcurrentModificationExceptionif elements are removed from the original list.voidIfisSetSupported()returns false, tests that set operation raisesUnsupportedOperationException.voidverify()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, testUnsupportedRemoveMethods 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, writeExternalFormToDiskMethods inherited from class org.apache.commons.collections.BulkTest
clone, ignoredTests, makeSuite, toStringMethods 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:
verifyin classAbstractTestCollection
-
isEqualsCheckable
public boolean isEqualsCheckable()List equals method is defined.- Overrides:
isEqualsCheckablein classAbstractTestCollection
-
makeConfirmedCollection
Returns an emptyArrayList.- Specified by:
makeConfirmedCollectionin classAbstractTestCollection- Returns:
- a confirmed empty collection
-
makeConfirmedFullCollection
Returns a fullArrayList.- Specified by:
makeConfirmedFullCollectionin classAbstractTestCollection- Returns:
- a confirmed full collection
-
makeEmptyList
Return a new, emptyListto be used for testing.- Returns:
- an empty list for testing.
-
makeFullList
Return a new, fullListto be used for testing.- Returns:
- a full list for testing
-
makeCollection
ReturnsmakeEmptyList().- Specified by:
makeCollectionin classAbstractTestCollection- Returns:
- an empty list to be used for testing
-
makeFullCollection
ReturnsmakeFullList().- Overrides:
makeFullCollectionin classAbstractTestCollection- Returns:
- a full list to be used for testing
-
getList
Returns theAbstractTestCollection.collectionfield cast to aList.- Returns:
- the collection field as a List
-
getConfirmedList
Returns theAbstractTestCollection.confirmedfield 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:
IOExceptionClassNotFoundException
-
testFullListSerialization
- Throws:
IOExceptionClassNotFoundException
-
testEmptyListCompatibility
Compare the current serialized form of the List against the canonical version in CVS.- Throws:
IOExceptionClassNotFoundException
-
testFullListCompatibility
Compare the current serialized form of the List against the canonical version in CVS.- Throws:
IOExceptionClassNotFoundException
-
bulkTestSubList
Returns aBulkTestfor testingList.subList(int,int). The returned bulk test will run through everyTestListmethod, 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 aConcurrentModificationExceptionif elements are added to the original list. -
testListSubListFailFastOnRemove
public void testListSubListFailFastOnRemove()Tests that a sublist raises aConcurrentModificationExceptionif 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
-