package org.sculptor.framework.domain; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import org.sculptor.framework.domain.PagedResult; @RunWith(Parameterized.class) public class PagedResultTest { private final PagedResult<Object> pagedResult; private final int expectedPage; private final int expectedTotalPages; private final int expectedAdditionalResultPages; @Parameters public static Collection<Object[]> data() { return Arrays.asList(new Object[][] { { 0, 0, 10, 0, 0, 1, 0, 0 }, { 0, 10, 10, 26, 3, 1, 3, 1 }, { 1, 10, 10, 26, 3, 1, 3, 1 }, { 9, 10, 10, 26, 3, 1, 3, 1 }, { 10, 10, 10, 26, 3, 2, 3, 1 }, { 10, 10, 10, 30, 3, 2, 3, 1 }, { 10, 10, 10, 31, 3, 2, 4, 1 } }); } public PagedResultTest(int startRow, int rowCount, int pageSize, int totalRows, int additionalResultRows, int expectedPage, int expectedTotalPages, int expectedAdditionalResultPages) { this.expectedPage = expectedPage; this.expectedTotalPages = expectedTotalPages; this.expectedAdditionalResultPages = expectedAdditionalResultPages; pagedResult = new PagedResult<Object>(new ArrayList<Object>(), startRow, rowCount, pageSize, totalRows, additionalResultRows); } @Test public void shouldCalculatePageCorrect() throws Exception { assertEquals(expectedPage, pagedResult.getPage()); } @Test public void shouldCalculateTotalPagesCorrect() throws Exception { assertEquals(expectedTotalPages, pagedResult.getTotalPages()); } @Test public void shouldCalculateAdditionalResultPagesCorrect() throws Exception { assertEquals(expectedAdditionalResultPages, pagedResult.getAdditionalResultPages()); } }