Package siena.base.test

Source Code of siena.base.test.BaseTestNoAutoInc_5_PAGINATE

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);
  }
}
TOP

Related Classes of siena.base.test.BaseTestNoAutoInc_5_PAGINATE

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.