@Test(expected = NoSuchElementException.class) public void Deque_iterator_throwsNoSuchElement() { deque.addFirst("firstString"); deque.addFirst("secondString"); Iterator<String> dequeIterator = deque.iterator(); dequeIterator.next(); dequeIterator.next(); dequeIterator.next(); }
@Test public void Deque_iterator_hasNextIsFalse() { deque.addFirst("firstString"); deque.addFirst("secondString"); Iterator<String> dequeIterator = deque.iterator(); dequeIterator.next(); dequeIterator.next(); assertFalse(dequeIterator.hasNext()); }
@Test(expected = NoSuchElementException.class) public void testNextFromEmptyIterator() { Deque<String> deque = new Deque<String>(); deque.addLast("last"); deque.addFirst("first"); Iterator<String> i = deque.iterator(); i.next(); i.next(); i.next(); // should throw exception }
@Test(expected = UnsupportedOperationException.class) public void testRemoveFromIterator() { Deque<String> deque = new Deque<String>(); deque.addFirst("middle"); deque.addLast("last"); deque.addFirst("first"); Iterator<String> i = deque.iterator(); i.next(); i.remove(); // should throw exception }
@Test public void Deque_iterator_iterates() { deque.addFirst("firstString"); deque.addFirst("secondString"); deque.addLast("thirdString"); Iterator<String> dequeIterator = deque.iterator(); assertEquals(dequeIterator.next(), "secondString"); assertEquals(dequeIterator.next(), "firstString"); assertEquals(dequeIterator.next(), "thirdString"); }
@Test public void testIterator() { deque.addBack(3); deque.addBack(7); deque.addBack(4); Iterator<Integer> iterator = deque.iterator(); assertTrue(iterator.hasNext()); assertEquals(new Integer(3), iterator.next()); assertTrue(iterator.hasNext()); assertEquals(new Integer(7), iterator.next()); assertTrue(iterator.hasNext()); assertEquals(new Integer(4), iterator.next()); assertFalse(iterator.hasNext()); // The deque should not have been modified by the iteration assertEquals("<3, 7, 4>", deque.toString()); }