/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.util.paging;
import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertFalse;
import static org.testng.AssertJUnit.assertTrue;
import java.util.Arrays;
import java.util.NoSuchElementException;
import org.testng.annotations.Test;
import com.opengamma.util.test.TestGroup;
/**
* Test Paging.
*/
@Test(groups = TestGroup.UNIT)
public final class PagingTest {
public void test_factory_of_Collection_empty() {
Paging test = Paging.ofAll(Arrays.asList());
assertEquals(PagingRequest.ALL, test.getRequest());
assertEquals(0, test.getTotalItems());
}
public void test_factory_of_Collection_sizeTwo() {
Paging test = Paging.ofAll(Arrays.asList("Hello", "There"));
assertEquals(PagingRequest.ALL, test.getRequest());
assertEquals(2, test.getTotalItems());
}
//-------------------------------------------------------------------------
public void test_factory_of_Collection_PagingRequest_empty() {
PagingRequest request = PagingRequest.ofPage(1, 20);
Paging test = Paging.of(request, Arrays.asList());
assertEquals(request, test.getRequest());
assertEquals(0, test.getTotalItems());
}
public void test_factory_of_Collection_PagingRequest_sizeTwo() {
PagingRequest request = PagingRequest.ofPage(1, 20);
Paging test = Paging.of(request, Arrays.asList("Hello", "There"));
assertEquals(request, test.getRequest());
assertEquals(2, test.getTotalItems());
}
//-------------------------------------------------------------------------
public void test_factory_of_PagingRequest_int() {
PagingRequest request = PagingRequest.ofPage(1, 20);
Paging test = Paging.of(request, 32);
assertEquals(request, test.getRequest());
assertEquals(32, test.getTotalItems());
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_factory_of_PagingRequest_int_totalItemsNegative() {
Paging.of(PagingRequest.ofPage(1, 20), -1);
}
@Test(expectedExceptions = IllegalArgumentException.class)
public void test_factory_of_PagingRequest_int_null() {
Paging.of(null, 0);
}
//-------------------------------------------------------------------------
public void test_getItems_page1() {
Paging test = Paging.of(PagingRequest.ofPage(1, 20), 52);
assertEquals(1, test.getPageNumber());
assertEquals(0, test.getFirstItem());
assertEquals(1, test.getFirstItemOneBased());
assertEquals(20, test.getLastItem());
assertEquals(20, test.getLastItemOneBased());
}
public void test_getItems_page2() {
Paging test = Paging.of(PagingRequest.ofPage(2, 20), 52);
assertEquals(2, test.getPageNumber());
assertEquals(20, test.getFirstItem());
assertEquals(21, test.getFirstItemOneBased());
assertEquals(40, test.getLastItem());
assertEquals(40, test.getLastItemOneBased());
}
public void test_getItems_page3() {
Paging test = Paging.of(PagingRequest.ofPage(3, 20), 52);
assertEquals(3, test.getPageNumber());
assertEquals(40, test.getFirstItem());
assertEquals(41, test.getFirstItemOneBased());
assertEquals(52, test.getLastItem());
assertEquals(52, test.getLastItemOneBased());
}
public void test_getTotalPages() {
assertEquals(2, Paging.of(PagingRequest.ofPage(1, 20), 39).getTotalPages());
assertEquals(2, Paging.of(PagingRequest.ofPage(1, 20), 40).getTotalPages());
assertEquals(3, Paging.of(PagingRequest.ofPage(1, 20), 41).getTotalPages());
}
//-------------------------------------------------------------------------
public void test_isSizeOnly() {
assertTrue(Paging.of(PagingRequest.NONE, 39).isSizeOnly());
assertFalse(Paging.of(PagingRequest.ofPage(1, 20), 39).isSizeOnly());
}
public void test_isNextPage() {
assertFalse(Paging.of(PagingRequest.ofPage(2, 20), 39).isNextPage());
assertFalse(Paging.of(PagingRequest.ofPage(2, 20), 40).isNextPage());
assertTrue(Paging.of(PagingRequest.ofPage(2, 20), 41).isNextPage());
assertTrue(Paging.of(PagingRequest.ofPage(1, 20), 39).isNextPage());
assertTrue(Paging.of(PagingRequest.ofPage(1, 20), 40).isNextPage());
}
public void test_isLastPage() {
assertTrue(Paging.of(PagingRequest.ofPage(2, 20), 39).isLastPage());
assertTrue(Paging.of(PagingRequest.ofPage(2, 20), 40).isLastPage());
assertFalse(Paging.of(PagingRequest.ofPage(2, 20), 41).isLastPage());
assertFalse(Paging.of(PagingRequest.ofPage(1, 20), 39).isLastPage());
assertFalse(Paging.of(PagingRequest.ofPage(1, 20), 40).isLastPage());
}
public void test_isPreviousPage() {
assertTrue(Paging.of(PagingRequest.ofPage(2, 20), 39).isPreviousPage());
assertTrue(Paging.of(PagingRequest.ofPage(2, 20), 40).isPreviousPage());
assertTrue(Paging.of(PagingRequest.ofPage(2, 20), 41).isPreviousPage());
assertFalse(Paging.of(PagingRequest.ofPage(1, 20), 39).isPreviousPage());
assertFalse(Paging.of(PagingRequest.ofPage(1, 20), 40).isPreviousPage());
}
public void test_isFirstPage() {
assertFalse(Paging.of(PagingRequest.ofPage(2, 20), 39).isFirstPage());
assertFalse(Paging.of(PagingRequest.ofPage(2, 20), 40).isFirstPage());
assertFalse(Paging.of(PagingRequest.ofPage(2, 20), 41).isFirstPage());
assertTrue(Paging.of(PagingRequest.ofPage(1, 20), 39).isFirstPage());
assertTrue(Paging.of(PagingRequest.ofPage(1, 20), 40).isFirstPage());
}
//-------------------------------------------------------------------------
public void test_toPagingRequest() {
assertEquals(PagingRequest.ofPage(2, 20), Paging.of(PagingRequest.ofPage(2, 20), 39).toPagingRequest());
assertEquals(PagingRequest.NONE, Paging.of(PagingRequest.NONE, 349).toPagingRequest());
}
public void test_nextPagingRequest() {
assertEquals(PagingRequest.ofPage(2, 20), Paging.of(PagingRequest.ofPage(1, 20), 39).nextPagingRequest());
}
@Test(expectedExceptions = IllegalStateException.class)
public void test_nextPagingRequest_pagingSizeZero() {
Paging.of(PagingRequest.NONE, 39).nextPagingRequest();
}
@Test(expectedExceptions = NoSuchElementException.class)
public void test_nextPagingRequest_lastPage() {
Paging.of(PagingRequest.ofPage(2, 20), 39).nextPagingRequest();
}
public void test_previousPagingRequest() {
assertEquals(PagingRequest.ofPage(1, 20), Paging.of(PagingRequest.ofPage(2, 20), 39).previousPagingRequest());
}
@Test(expectedExceptions = IllegalStateException.class)
public void test_previousPagingRequest_pagingSizeZero() {
Paging.of(PagingRequest.NONE, 39).previousPagingRequest();
}
@Test(expectedExceptions = NoSuchElementException.class)
public void test_previousPagingRequest_lastPage() {
Paging.of(PagingRequest.ofPage(1, 20), 39).previousPagingRequest();
}
//-------------------------------------------------------------------------
public void test_equals_equal() {
Paging test1 = Paging.of(PagingRequest.ofPage(1, 20), 52);
Paging test2 = Paging.of(PagingRequest.ofPage(1, 20), 52);
assertEquals(true, test1.equals(test1));
assertEquals(true, test1.equals(test2));
assertEquals(true, test2.equals(test1));
assertEquals(true, test2.equals(test2));
}
public void test_equals_notEqualPage() {
Paging test1 = Paging.of(PagingRequest.ofPage(1, 20), 52);
Paging test2 = Paging.of(PagingRequest.ofPage(2, 20), 52);
assertEquals(false, test1.equals(test2));
assertEquals(false, test2.equals(test1));
}
public void test_equals_notEqualPagingSize() {
Paging test1 = Paging.of(PagingRequest.ofPage(1, 20), 52);
Paging test2 = Paging.of(PagingRequest.NONE, 52);
assertEquals(false, test1.equals(test2));
assertEquals(false, test2.equals(test1));
}
public void test_equals_notEqualTotalItems() {
Paging test1 = Paging.of(PagingRequest.ofPage(1, 20), 52);
Paging test2 = Paging.of(PagingRequest.ofPage(1, 20), 12);
assertEquals(false, test1.equals(test2));
assertEquals(false, test2.equals(test1));
}
public void test_equals_other() {
Paging test = Paging.of(PagingRequest.ofPage(1, 20), 52);
assertEquals(false, test.equals(""));
assertEquals(false, test.equals(null));
}
//-------------------------------------------------------------------------
public void test_hashCode_equal() {
Paging test1 = Paging.of(PagingRequest.ofPage(1, 20), 52);
Paging test2 = Paging.of(PagingRequest.ofPage(1, 20), 52);
assertEquals(test1.hashCode(), test2.hashCode());
}
//-------------------------------------------------------------------------
public void test_toString() {
Paging test = Paging.of(PagingRequest.ofPage(1, 20), 52);
assertEquals("Paging[first=0, size=20, totalItems=52]", test.toString());
}
}