public void testRemoving1() throws Exception {
List list = new ArrayList(Arrays.asList(new String[] { "a", "b", "c" }));
LoopingIterator loop = new LoopingIterator(list);
assertEquals("list should have 3 elements.", 3, list.size());
assertTrue("1st hasNext should return true", loop.hasNext());
assertEquals("a", loop.next());
loop.remove();
assertEquals("list should have 2 elements.", 2, list.size());
assertTrue("2nd hasNext should return true", loop.hasNext());
assertEquals("b", loop.next());
loop.remove();
assertEquals("list should have 1 elements.", 1, list.size());
assertTrue("3rd hasNext should return true", loop.hasNext());
assertEquals("c", loop.next());
loop.remove();
assertEquals("list should have 0 elements.", 0, list.size());
assertTrue("4th hasNext should return false", loop.hasNext() == false);
try {
loop.next();
fail("Expected NoSuchElementException to be thrown.");
} catch (NoSuchElementException ex) {
}
}