further pagination testing work

This commit is contained in:
eugenp 2014-04-10 20:21:05 +02:00
parent 3e87601c17
commit 0552363098

View File

@ -17,7 +17,6 @@ import org.hibernate.Session;
import org.hibernate.SessionFactory; import org.hibernate.SessionFactory;
import org.hibernate.criterion.Order; import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections; import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@ -149,49 +148,32 @@ public class FooServicePaginationPersistenceIntegrationTest {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Test @Test
public final void givenUsingTheScrollableApi_whenRetrievingPaginatedData_thenCorrect2() { public final void givenUsingTheCriteriaApi_whenRetrievingFirstPage_thenCorrect() {
final int minId = 0;
final int maxId = 10;
final Criteria criteriaCount = session.createCriteria(Foo.class, "FOO");
criteriaCount.add(Restrictions.between("id", minId, maxId));
criteriaCount.addOrder(Order.asc("id"));
criteriaCount.setProjection(Projections.rowCount());
final Long count = (Long) criteriaCount.uniqueResult();
int pageNumber = 1;
final int pageSize = 10; final int pageSize = 10;
final List<Foo> fooList = Lists.newArrayList();
final Criteria criteria = session.createCriteria(Foo.class, "FOO"); final Criteria criteria = session.createCriteria(Foo.class);
criteria.add(Restrictions.between("id", minId, maxId));
criteria.addOrder(Order.asc("id")); criteria.addOrder(Order.asc("id"));
int totalEntities = 0; criteria.setFirstResult(0);
while (totalEntities < count.intValue()) {
criteria.setFirstResult((pageNumber - 1) * pageSize);
criteria.setMaxResults(pageSize); criteria.setMaxResults(pageSize);
fooList.addAll(criteria.list()); final List<Foo> firstPage = criteria.list();
totalEntities = fooList.size();
pageNumber++; assertThat(firstPage, hasSize(pageSize));
}
} }
@SuppressWarnings("unchecked")
@Test @Test
public final void givenUsingTheScrollableApi_whenRetrievingPaginatedData_thenCorrect3() { public final void givenUsingTheCriteriaApi_whenRetrievingPaginatedData_thenCorrect() {
final int minId = 0; final Criteria criteriaCount = session.createCriteria(Foo.class);
final int maxId = 10; criteriaCount.addOrder(Order.asc("id"));
criteriaCount.setProjection(Projections.rowCount());
final Long count = (Long) criteriaCount.uniqueResult();
int pageNumber = 1; int pageNumber = 1;
final int pageSize = 10; final int pageSize = 10;
final List<Foo> fooList = Lists.newArrayList(); final List<Foo> fooList = Lists.newArrayList();
final Criteria criteria = session.createCriteria(Foo.class, "FOO"); final Criteria criteria = session.createCriteria(Foo.class);
final Criteria criteriaCount = session.createCriteria(Foo.class, "FOO");
criteria.add(Restrictions.between("id", minId, maxId));
criteria.addOrder(Order.asc("id")); criteria.addOrder(Order.asc("id"));
criteriaCount.add(Restrictions.between("id", minId, maxId));
criteriaCount.addOrder(Order.asc("id"));
criteriaCount.setProjection(Projections.rowCount());
final Long count = (Long) criteriaCount.uniqueResult();
int totalEntities = 0; int totalEntities = 0;
while (totalEntities < count.intValue()) { while (totalEntities < count.intValue()) {
criteria.setFirstResult((pageNumber - 1) * pageSize); criteria.setFirstResult((pageNumber - 1) * pageSize);