@Test public void testToList() { final List<Integer> expected = Arrays.asList(1,2,3,4,5); final PeekableIterator<Integer> peeky = new PeekableIterator<>(expected.iterator()); final List<Integer> actual = peeky.toList(); Assert.assertEquals(actual, expected); Assert.assertEquals(peeky.toList(), new ArrayList<>()); // Should be empty the second time }