Class AbstractTestIterator

java.lang.Object
junit.framework.Assert
junit.framework.TestCase
org.apache.commons.collections.BulkTest
org.apache.commons.collections.AbstractTestObject
org.apache.commons.collections.iterators.AbstractTestIterator
All Implemented Interfaces:
Cloneable, junit.framework.Test
Direct Known Subclasses:
AbstractTestListIterator, AbstractTestMapIterator

public abstract class AbstractTestIterator extends AbstractTestObject
Abstract class for testing the Iterator interface.

This class provides a framework for testing an implementation of Iterator. Concrete subclasses must provide the iterator to be tested. They must also specify certain details of how the iterator operates by overriding the supportsXxx() methods if necessary.

Since:
Commons Collections 3.0
  • Constructor Details

    • AbstractTestIterator

      public AbstractTestIterator(String testName)
      JUnit constructor.
      Parameters:
      testName - the test class name
  • Method Details

    • makeEmptyIterator

      public abstract Iterator makeEmptyIterator()
      Implement this method to return an iterator over an empty collection.
      Returns:
      an empty iterator
    • makeFullIterator

      public abstract Iterator makeFullIterator()
      Implement this method to return an iterator over a collection with elements.
      Returns:
      a full iterator
    • makeObject

      public Object makeObject()
      Implements the abstract superclass method to return the full iterator.
      Specified by:
      makeObject in class AbstractTestObject
      Returns:
      a full iterator
    • supportsEmptyIterator

      public boolean supportsEmptyIterator()
      Whether or not we are testing an iterator that can be empty. Default is true.
      Returns:
      true if Iterator can be empty
    • supportsFullIterator

      public boolean supportsFullIterator()
      Whether or not we are testing an iterator that can contain elements. Default is true.
      Returns:
      true if Iterator can be full
    • supportsRemove

      public boolean supportsRemove()
      Whether or not we are testing an iterator that supports remove(). Default is true.
      Returns:
      true if Iterator supports remove
    • verify

      public void verify()
      Allows subclasses to add complex cross verification
    • testEmptyIterator

      public void testEmptyIterator()
      Test the empty iterator.
    • testFullIterator

      public void testFullIterator()
      Test normal iteration behaviour.
    • testRemove

      public void testRemove()
      Test remove behaviour.