/** * Verifies iteration for the specified object count and page size. * * @param count the no. of objects to test with * @param pageSize the page size */ private void checkIteration(int count, int pageSize) { List<Integer> objects = new ArrayList<Integer>(); for (int i = 0; i < count; ++i) { objects.add(i); } ResultSet<Integer> set = new ListResultSet<Integer>(objects, pageSize); ResultSetIterator<Integer> iterator = new ResultSetIterator<Integer>(set); int expected = -1; while (iterator.hasNext()) { ++expected; assertEquals(expected, iterator.nextIndex()); assertEquals(expected, iterator.next().intValue()); assertEquals(expected, iterator.lastIndex()); } assertEquals(count - 1, expected); while (iterator.hasPrevious()) { assertEquals(expected, iterator.previousIndex()); assertEquals(expected, iterator.previous().intValue()); assertEquals(expected, iterator.lastIndex()); --expected; } assertEquals(-1, expected); }
/** Tests iteration part way through a result set, in both directions. */ @Test public void testPartialIteration() { List<Integer> objects = new ArrayList<Integer>(); int count = 3; for (int i = 0; i < count; ++i) { objects.add(i); } ResultSet<Integer> set = new ListResultSet<Integer>(objects, 20); ResultSetIterator<Integer> iterator = new ResultSetIterator<Integer>(set); assertTrue(iterator.hasNext()); assertEquals(0, iterator.next().intValue()); assertTrue(iterator.hasNext()); assertEquals(1, iterator.next().intValue()); assertTrue(iterator.hasPrevious()); assertEquals(1, iterator.previous().intValue()); assertTrue(iterator.hasPrevious()); assertEquals(0, iterator.previous().intValue()); assertFalse(iterator.hasPrevious()); }
/** Tests the behaviour of iterating an empty result set. */ @Test public void testEmpty() { List<Object> objects = new ArrayList<Object>(); ListResultSet<Object> set = new ListResultSet<Object>(objects, 10); ResultSetIterator<Object> iterator = new ResultSetIterator<Object>(set); assertFalse(iterator.hasNext()); assertFalse(iterator.hasPrevious()); try { iterator.next(); fail("Expected NoSuchElementException to be thrown"); } catch (NoSuchElementException expected) { // expected behaviour } try { iterator.previous(); fail("Expected NoSuchElementException to be thrown"); } catch (NoSuchElementException expected) { // expected behaviour } }