/** * 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 java.util.Arrays; import java.util.List; import org.testng.annotations.Test; import com.opengamma.util.test.TestGroup; /** * Test PagingRequest. */ @Test(groups = TestGroup.UNIT) public final class PagingRequestTest { public void test_ALL() { PagingRequest test = PagingRequest.ALL; assertEquals(0, test.getFirstItem()); assertEquals(Integer.MAX_VALUE, test.getPagingSize()); } public void test_FIRST_PAGE() { PagingRequest test = PagingRequest.FIRST_PAGE; assertEquals(0, test.getFirstItem()); assertEquals(20, test.getPagingSize()); } public void test_ONE() { PagingRequest test = PagingRequest.ONE; assertEquals(0, test.getFirstItem()); assertEquals(1, test.getPagingSize()); } public void test_NONE() { PagingRequest test = PagingRequest.NONE; assertEquals(0, test.getFirstItem()); assertEquals(0, test.getPagingSize()); } //------------------------------------------------------------------------- public void test_ofPageDefaulted() { assertEquals(0, PagingRequest.ofPageDefaulted(1, 10).getFirstItem()); assertEquals(10, PagingRequest.ofPageDefaulted(1, 10).getPagingSize()); assertEquals(0, PagingRequest.ofPageDefaulted(0, 10).getFirstItem()); assertEquals(10, PagingRequest.ofPageDefaulted(0, 10).getPagingSize()); assertEquals(20, PagingRequest.ofPageDefaulted(2, 0).getFirstItem()); assertEquals(20, PagingRequest.ofPageDefaulted(2, 0).getPagingSize()); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_ofPageDefaulted_2ints_pageNegative() { PagingRequest.ofPageDefaulted(-1, 40); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_ofPageDefaulted_2ints_pagingSizeNegative() { PagingRequest.ofPageDefaulted(1, -1); } //------------------------------------------------------------------------- public void test_ofPage() { assertEquals(0, PagingRequest.ofPage(1, 10).getFirstItem()); assertEquals(10, PagingRequest.ofPage(1, 10).getPagingSize()); assertEquals(0, PagingRequest.ofPage(2, 0).getFirstItem()); assertEquals(0, PagingRequest.ofPage(2, 0).getPagingSize()); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_ofPage_2ints_page0() { PagingRequest.ofPage(0, 1); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_ofPage_2ints_pageNegative() { PagingRequest.ofPage(-1, 40); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_ofPage_2ints_pagingSizeNegative() { PagingRequest.ofPage(1, -1); } //------------------------------------------------------------------------- public void test_getItems_index() { PagingRequest test = PagingRequest.ofIndex(5, 25); assertEquals(5, test.getFirstItem()); assertEquals(30, test.getLastItem()); assertEquals(6, test.getFirstItemOneBased()); assertEquals(30, test.getLastItemOneBased()); } public void test_getItems_page1() { PagingRequest test = PagingRequest.ofPage(1, 20); assertEquals(0, test.getFirstItem()); assertEquals(20, test.getLastItem()); assertEquals(1, test.getFirstItemOneBased()); assertEquals(20, test.getLastItemOneBased()); } public void test_getItems_page2() { PagingRequest test = PagingRequest.ofPage(2, 20); assertEquals(20, test.getFirstItem()); assertEquals(40, test.getLastItem()); assertEquals(21, test.getFirstItemOneBased()); assertEquals(40, test.getLastItemOneBased()); } //------------------------------------------------------------------------- public void test_select_firstPage() { PagingRequest test = PagingRequest.ofPage(1, 2); List<String> coll = Arrays.asList("Hello", "World", "Test"); List<String> result = test.select(coll); assertEquals(Arrays.asList("Hello", "World"), result); } public void test_select_lastPage() { PagingRequest test = PagingRequest.ofPage(2, 2); List<String> coll = Arrays.asList("Hello", "World", "Test"); List<String> result = test.select(coll); assertEquals(Arrays.asList("Test"), result); } public void test_select_all() { PagingRequest test = PagingRequest.ofPage(1, 20); List<String> coll = Arrays.asList("Hello", "World", "Test"); List<String> result = test.select(coll); assertEquals(coll, result); } public void test_select_disconnected() { PagingRequest test = PagingRequest.ofPage(1, 2); List<String> coll = Arrays.asList("Hello", "World", "Test"); List<String> result = test.select(coll); result.set(0, "Changed"); assertEquals(Arrays.asList("Changed", "World"), result); assertEquals(Arrays.asList("Hello", "World", "Test"), coll); } public void test_select_beyondListSize() { PagingRequest test = PagingRequest.ofPage(3, 2); List<String> coll = Arrays.asList("Hello", "World", "Test"); List<String> result = test.select(coll); assertEquals(0, result.size()); assertEquals(Arrays.asList("Hello", "World", "Test"), coll); } //------------------------------------------------------------------------- public void test_equals_equal() { PagingRequest test1 = PagingRequest.ofPage(1, 20); PagingRequest test2 = PagingRequest.ofPage(1, 20); 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() { PagingRequest test1 = PagingRequest.ofPage(1, 20); PagingRequest test2 = PagingRequest.ofPage(2, 20); assertEquals(false, test1.equals(test2)); assertEquals(false, test2.equals(test1)); } public void test_equals_notEqualPagingSize() { PagingRequest test1 = PagingRequest.ofPage(1, 20); PagingRequest test2 = PagingRequest.ofPage(1, 30); assertEquals(false, test1.equals(test2)); assertEquals(false, test2.equals(test1)); } public void test_equals_other() { PagingRequest test = PagingRequest.ofPage(1, 20); assertEquals(false, test.equals("")); assertEquals(false, test.equals(null)); } //------------------------------------------------------------------------- public void test_hashCode_equal() { PagingRequest test1 = PagingRequest.ofPage(2, 40); PagingRequest test2 = PagingRequest.ofPage(2, 40); assertEquals(test1.hashCode(), test2.hashCode()); } //------------------------------------------------------------------------- public void test_toString() { PagingRequest test = PagingRequest.ofIndex(3, 40); assertEquals("PagingRequest[first=3, size=40]", test.toString()); } }