opts = withStartCursor(cursor); } else { opts.startCursor(cursor);
@Test public void testStartCursor() { QueryResultList<Entity> results = executeQuery(withLimit(3)); Cursor cursor = results.getCursor(); // points to foo4 results = executeQuery(withStartCursor(cursor)); assertEquals(asList(foo4, foo5), results); }
@Test public void testStartCursorAndOffset() { QueryResultList<Entity> results = executeQuery(withLimit(3)); Cursor cursor = results.getCursor(); // points to foo4 results = executeQuery(withStartCursor(cursor).offset(1)); assertEquals(asList(foo5), results); }
@Test public void testCursor() throws Exception { Entity parent = createTestEntityWithUniqueMethodNameKey("Person", "testKeysOnly"); Key key = parent.getKey(); Entity john = createEntity("Person", key) .withProperty("name", "John") .withProperty("surname", "Doe") .store(); Query query = new Query("Person") .setAncestor(key) .setKeysOnly(); PreparedQuery preparedQuery = service.prepare(query); QueryResultIterator<Entity> iter = preparedQuery.asQueryResultIterator(); Assert.assertNotNull(iter.next()); Cursor cursor = iter.getCursor(); iter = service.prepare(query).asQueryResultIterator(FetchOptions.Builder.withStartCursor(cursor)); Assert.assertFalse(iter.hasNext()); }
@Test public void testReverse() { Query query = new Query(kindName, rootKey); query.addSort(Entity.KEY_RESERVED_PROPERTY); QueryResultIterator<Entity> iter = service.prepare(query).asQueryResultIterator(); Entity e1 = iter.next(); Entity e2 = iter.next(); Cursor cursor = iter.getCursor(); //reverse query = query.reverse(); cursor = cursor.reverse(); iter = service.prepare(query).asQueryResultIterator(FetchOptions.Builder.withStartCursor(cursor)); Assert.assertEquals(e2, iter.next()); Assert.assertEquals(e1, iter.next()); }
@Test public void testStartCursorAndLimit() { QueryResultList<Entity> results = executeQuery(withLimit(3)); Cursor cursor = results.getCursor(); // points to foo4 results = executeQuery(withStartCursor(cursor).limit(1)); assertEquals(asList(foo4), results); }