/** * Tests constructor exception. */ public void testConstructorEx() throws Exception { try { new LoopingListIterator(null); fail(); } catch (NullPointerException ex) { } }
/** * Tests whether an empty looping list iterator works. */ public void testLooping0() throws Exception { List list = new ArrayList(); LoopingListIterator loop = new LoopingListIterator(list); assertFalse(loop.hasNext()); assertFalse(loop.hasPrevious()); try { loop.next(); fail(); } catch (NoSuchElementException ex) { } try { loop.previous(); fail(); } catch (NoSuchElementException ex) { } }
/** * Tests removing an element from a wrapped ArrayList. */ public void testRemovingElementsAndIteratingForward() { List list = new ArrayList(Arrays.asList(new String[] { "a", "b", "c" })); LoopingListIterator loop = new LoopingListIterator(list); // <a> b c assertTrue(loop.hasNext()); assertEquals("a", loop.next()); // a <b> c loop.remove(); // <b> c assertEquals(2, list.size()); assertTrue(loop.hasNext()); assertEquals("b", loop.next()); // b <c> loop.remove(); // <c> assertEquals(1, list.size()); assertTrue(loop.hasNext()); assertEquals("c", loop.next()); // <c> loop.remove(); // --- assertEquals(0, list.size()); assertFalse(loop.hasNext()); try { loop.next(); fail(); } catch (NoSuchElementException ex) { } }
/** * Tests removing an element from a wrapped ArrayList. */ public void testRemovingElementsAndIteratingBackwards() { List list = new ArrayList(Arrays.asList(new String[] { "a", "b", "c" })); LoopingListIterator loop = new LoopingListIterator(list); // <a> b c assertTrue(loop.hasPrevious()); assertEquals("c", loop.previous()); // a b <c> loop.remove(); // <a> b assertEquals(2, list.size()); assertTrue(loop.hasPrevious()); assertEquals("b", loop.previous()); // a <b> loop.remove(); // <a> assertEquals(1, list.size()); assertTrue(loop.hasPrevious()); assertEquals("a", loop.previous()); // <a> loop.remove(); // --- assertEquals(0, list.size()); assertFalse(loop.hasPrevious()); try { loop.previous(); fail(); } catch (NoSuchElementException ex) { } }