Return-Path: Delivered-To: apmail-jakarta-commons-dev-archive@apache.org Received: (qmail 42519 invoked from network); 13 Dec 2002 12:03:53 -0000 Received: from unknown (HELO nagoya.betaversion.org) (192.18.49.131) by daedalus.apache.org with SMTP; 13 Dec 2002 12:03:53 -0000 Received: (qmail 15086 invoked by uid 97); 13 Dec 2002 12:04:58 -0000 Delivered-To: qmlist-jakarta-archive-commons-dev@jakarta.apache.org Received: (qmail 15061 invoked by uid 97); 13 Dec 2002 12:04:58 -0000 Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Unsubscribe: List-Subscribe: List-Help: List-Post: List-Id: "Jakarta Commons Developers List" Reply-To: "Jakarta Commons Developers List" Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 15049 invoked by uid 97); 13 Dec 2002 12:04:57 -0000 X-Antivirus: nagoya (v4218 created Aug 14 2002) Date: 13 Dec 2002 12:03:46 -0000 Message-ID: <20021213120346.95878.qmail@icarus.apache.org> From: scolebourne@apache.org To: jakarta-commons-cvs@apache.org Subject: cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/iterators TestIterator.java X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N scolebourne 2002/12/13 04:03:46 Modified: collections/src/test/org/apache/commons/collections/iterators TestIterator.java Log: Add test for remove on an iterator Revision Changes Path 1.2 +52 -16 jakarta-commons/collections/src/test/org/apache/commons/collections/iterators/TestIterator.java Index: TestIterator.java =================================================================== RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/iterators/TestIterator.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- TestIterator.java 15 Aug 2002 23:13:52 -0000 1.1 +++ TestIterator.java 13 Dec 2002 12:03:46 -0000 1.2 @@ -58,17 +58,16 @@ * . * */ - package org.apache.commons.collections.iterators; import java.util.Iterator; import java.util.NoSuchElementException; import org.apache.commons.collections.TestObject; - /** * Base class for tetsing Iterator interface * * @author Morgan Delagrange + * @author Stephen Colebourne */ public abstract class TestIterator extends TestObject { @@ -101,6 +100,16 @@ } /** + * Whether or not we are testing an iterator that supports + * remove(). Default is true. + * + * @return true if Iterators can be empty + */ + public boolean supportsRemove() { + return true; + } + + /** * Should throw a NoSuchElementException. */ public void testEmptyIterator() { @@ -109,12 +118,12 @@ } Iterator iter = makeEmptyIterator(); - assertTrue("hasNext() should return false for empty iterators",iter.hasNext() == false); + assertTrue("hasNext() should return false for empty iterators", iter.hasNext() == false); try { - iter.next(); + iter.next(); fail("NoSuchElementException must be thrown when Iterator is exhausted"); - } catch (NoSuchElementException e) { - } + } catch (NoSuchElementException e) { + } } /** @@ -130,23 +139,50 @@ Iterator iter = makeFullIterator(); - assertTrue("hasNext() should return true for at least one element",iter.hasNext()); + assertTrue("hasNext() should return true for at least one element", iter.hasNext()); try { - iter.next(); - } catch (NoSuchElementException e) { + iter.next(); + } catch (NoSuchElementException e) { fail("Full iterators must have at least one element"); - } + } while (iter.hasNext()) { iter.next(); } try { - iter.next(); + iter.next(); fail("NoSuchElementException must be thrown when Iterator is exhausted"); - } catch (NoSuchElementException e) { - } + } catch (NoSuchElementException e) { + } } + /** + * Test remove + */ + public void testRemove() { + Iterator it = makeFullIterator(); + + if (supportsRemove() == false) { + try { + it.remove(); + } catch (UnsupportedOperationException ex) {} + return; + } + + try { + it.remove(); + fail(); + } catch (IllegalStateException ex) {} + + it.next(); + it.remove(); + + try { + it.remove(); + fail(); + } catch (IllegalStateException ex) {} + } + } -- To unsubscribe, e-mail: For additional commands, e-mail: