package siena.base.test; import java.util.Iterator; import java.util.List; import siena.Query; import siena.base.test.model.DiscoveryStringId; import siena.sdb.SdbPersistenceManager; public abstract class BaseTestNoAutoInc_5_PAGINATE extends BaseTestNoAutoInc_BASE { public void postInit() { //pm.createQuery(PersonStringID.class).delete(); pm.createQuery(DiscoveryStringId.class).delete(); //pm.insert(StringID_TESLA, StringID_CURIE, StringID_EINSTEIN); pm.option(SdbPersistenceManager.CONSISTENT_READ); } public void testFetchPaginateStatelessNextPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } } public void testFetchPaginateStatelessNextPageToEnd() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(0, res.size()); res = query.nextPage().fetch(); assertEquals(0, res.size()); res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(0, res.size()); } public void testFetchPaginateStatelessPreviousPageFromScratch() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.previousPage().fetch(); assertEquals(0, res.size()); res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.previousPage().fetch(); assertEquals(0, res.size()); res = query.previousPage().fetch(); assertEquals(0, res.size()); } public void testFetchPaginateStatelessPreviousPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } } public void testFetchPaginateStatelessSeveralTimes() { DiscoveryStringId[] discs = new DiscoveryStringId[15]; for(int i=0; i<15; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+10], res.get(i)); } res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } } public void testFetchPaginateStatefulNextPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(0, res.size()); } public void testFetchPaginateStatefulNextPageToEnd() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name").stateful(); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(0, res.size()); res = query.nextPage().fetch(); assertEquals(0, res.size()); res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(0, res.size()); } public void testFetchPaginateStatefulPreviousPageFromScratch() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.previousPage().fetch(); assertEquals(0, res.size()); res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.previousPage().fetch(); assertEquals(0, res.size()); res = query.previousPage().fetch(); assertEquals(0, res.size()); } public void testFetchPaginateStatefulPreviousPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } } public void testFetchPaginateStatefulPreviouPageSeveralTimes() { DiscoveryStringId[] discs = new DiscoveryStringId[15]; for(int i=0; i<15; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.nextPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+10], res.get(i)); } res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5], res.get(i)); } res = query.previousPage().fetch(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i], res.get(i)); } } public void testFetchKeysPaginateStatelessNextPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } } public void testFetchKeysPaginateStatelessPreviousPageFromScratch() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.previousPage().fetchKeys(); assertEquals(0, res.size()); res = query.previousPage().fetchKeys(); assertEquals(0, res.size()); } public void testFetchKeysPaginateStatelessPreviousPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.previousPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } } public void testFetchKeysPaginateStatelessPreviouPageSeveralTimes() { DiscoveryStringId[] discs = new DiscoveryStringId[15]; for(int i=0; i<15; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); List<DiscoveryStringId> res = query.fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+10].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.previousPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.previousPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } } public void testFetchKeysPaginateStatefulNextPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } } public void testFetchKeysPaginateStatefulPreviousPageFromScratch() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.previousPage().fetchKeys(); assertEquals(0, res.size()); res = query.previousPage().fetchKeys(); assertEquals(0, res.size()); } public void testFetchKeysPaginateStatefulPreviousPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } res = query.previousPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); assertTrue(res.get(i).isOnlyIdFilled()); } } public void testFetchKeysPaginateStatefulSeveralTimes() { DiscoveryStringId[] discs = new DiscoveryStringId[15]; for(int i=0; i<15; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); List<DiscoveryStringId> res = query.fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); } res = query.nextPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+10].name, res.get(i).name); } res = query.previousPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i+5].name, res.get(i).name); } res = query.previousPage().fetchKeys(); assertEquals(5, res.size()); for(int i=0; i<5; i++){ assertEquals(discs[i].name, res.get(i).name); } } public void testIterPaginateStatelessNextPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); try { Iterable<DiscoveryStringId> res = query.iter(); Iterator<DiscoveryStringId> it = res.iterator(); int i=0; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(5, i); res = query.nextPage().iter(); it = res.iterator(); while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(10, i); }finally { query.release(); } } public void testIterPaginateStatelessPreviousPageFromScratch() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); Iterable<DiscoveryStringId> iter = query.previousPage().iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=0; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(0, i); iter = query.previousPage().iter(); i=0; it = iter.iterator(); while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(0, i); } public void testIterPaginateStatelessPreviousPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); Iterable<DiscoveryStringId> iter = query.nextPage().iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=5; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(10, i); iter = query.previousPage().iter(); it = iter.iterator(); i=0; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(5, i); } public void testIterPaginateStatelessPreviouPageSeveralTimes() { DiscoveryStringId[] discs = new DiscoveryStringId[15]; for(int i=0; i<15; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).order("name"); Iterable<DiscoveryStringId> iter = query.iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=0; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(5, i); iter = query.nextPage().iter(); it = iter.iterator(); while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(10, i); iter = query.nextPage().iter(); it = iter.iterator(); while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(15, i); iter = query.previousPage().iter(); it = iter.iterator(); i=5; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(10, i); iter = query.previousPage().iter(); it = iter.iterator(); i=0; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(5, i); } public void testIterPaginateStatefulNextPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); Iterable<DiscoveryStringId> iter = query.iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=0; while(it.hasNext()){ assertEquals(discs[i++], it.next()); } iter = query.nextPage().iter(); it = iter.iterator(); while(it.hasNext()){ assertEquals(discs[i++], it.next()); } assertEquals(10, i); } public void testIterPaginateStatefulPreviousPageFromScratch() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); Iterable<DiscoveryStringId> iter = query.previousPage().iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=0; while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(0, i); it = iter.iterator(); i=0; while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(0, i); } public void testIterPaginateStatefulPreviousPage() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); Iterable<DiscoveryStringId> iter = query.iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=0; while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(5, i); iter = query.nextPage().iter(); it = iter.iterator(); while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(10, i); iter = query.previousPage().iter(); it = iter.iterator(); i=0; while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(5, i); } public void testIterPaginateStatefulPreviouPageSeveralTimes() { DiscoveryStringId[] discs = new DiscoveryStringId[15]; for(int i=0; i<15; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%02d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).paginate(5).stateful().order("name"); Iterable<DiscoveryStringId> iter = query.iter(); Iterator<DiscoveryStringId> it = iter.iterator(); int i=0; while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(5, i); iter = query.nextPage().iter(); it = iter.iterator(); while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(10, i); iter = query.nextPage().iter(); it = iter.iterator(); while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(15, i); iter = query.previousPage().iter(); i=5; it = iter.iterator(); while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(10, i); iter = query.previousPage().iter(); i=0; it = iter.iterator(); while(it.hasNext()){ DiscoveryStringId disc = it.next(); assertEquals(discs[i++], disc); } assertEquals(5, i); } }