/**
   * 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);
  }