/**
   * 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
   }
 }
示例#4
0
 @Override
 public Iterator<Map<String, Object>> getData(String query) {
   ResultSetIterator r = new ResultSetIterator(query);
   return r.getIterator();
 }