/** * Test that when the iterator is changed, the hasNext method returns the * correct response for the new iterator. */ public void testSetIterator() { Iterator iter1 = Collections.singleton(new Object()).iterator(); Iterator iter2 = Collections.EMPTY_LIST.iterator(); FilterIterator filterIterator = new FilterIterator(iter1); filterIterator.setPredicate(TruePredicate.getInstance()); // this iterator has elements assertEquals(true, filterIterator.hasNext()); // this iterator has no elements filterIterator.setIterator(iter2); assertEquals(false, filterIterator.hasNext()); }