package org.infoglue.cms.entities.publishing;
import java.util.ArrayList;
import org.infoglue.cms.entities.ValidationTestCase;
/**
* Test the EditionBrowser calculations
*
* @author Frank Febbraro (frank@phase2technology.com)
*/
public class EditionBrowserTest extends ValidationTestCase
{
private EditionBrowser testBrowser;
public void testPlainCalculations() throws Exception
{
testBrowser = createBrowser(100, 10, 21);
assertEquals("Wrong total pages", 10, testBrowser.getTotalPages());
assertEquals("Wrong current page", 3, testBrowser.getCurrentPage());
assertEquals("Wrong next page size", 10, testBrowser.getNextPageSize());
assertEquals("Wrong previous page size", 10, testBrowser.getPreviousPageSize());
assertTrue("Wrong hasPreviousPage", testBrowser.hasPreviousPage());
assertTrue("Wrong hasNextPage", testBrowser.hasNextPage());
assertEquals("Wrong previous page index", 11, testBrowser.getPreviousPageIndex());
assertEquals("Wrong next page index", 31, testBrowser.getNextPageIndex());
}
public void testCurrentPage() throws Exception
{
testBrowser = createBrowser(14, 5, 0);
assertEquals("Wrong current page for index 0", 1, testBrowser.getCurrentPage());
testBrowser = createBrowser(14, 5, 1);
assertEquals("Wrong current page for index 1", 1, testBrowser.getCurrentPage());
testBrowser = createBrowser(14, 5, 5);
assertEquals("Wrong current page for index 5", 2, testBrowser.getCurrentPage());
testBrowser = createBrowser(14, 5, 6);
assertEquals("Wrong current page for index 6", 2, testBrowser.getCurrentPage());
testBrowser = createBrowser(14, 5, 10);
assertEquals("Wrong current page for index 10", 3, testBrowser.getCurrentPage());
testBrowser = createBrowser(14, 5, 11);
assertEquals("Wrong current page for index 11", 3, testBrowser.getCurrentPage());
}
public void testTotalPages() throws Exception
{
testBrowser = createBrowser(0, 5, 0);
assertEquals("Wrong total pages for size zero", 1, testBrowser.getTotalPages());
testBrowser = createBrowser(1, 5, 0);
assertEquals("Wrong total pages for size one", 1, testBrowser.getTotalPages());
testBrowser = createBrowser(5, 5, 0);
assertEquals("Wrong total pages for size five", 1, testBrowser.getTotalPages());
testBrowser = createBrowser(6, 5, 0);
assertEquals("Wrong total pages for size six", 2, testBrowser.getTotalPages());
testBrowser = createBrowser(101, 5, 0);
assertEquals("Wrong total pages for size 101", 21, testBrowser.getTotalPages());
}
public void testPrevious() throws Exception
{
testBrowser = createBrowser(10, 5, 0);
assertEquals("Wrong previous page size for index 0", 0, testBrowser.getPreviousPageSize());
assertEquals("Wrong previous page index for index 0 ", 0, testBrowser.getPreviousPageIndex());
assertFalse("Has previous page for index 0", testBrowser.hasPreviousPage());
testBrowser = createBrowser(10, 5, 1);
assertEquals("Wrong previous page size for index 1", 1, testBrowser.getPreviousPageSize());
assertEquals("Wrong previous page index for index 1 ", 0, testBrowser.getPreviousPageIndex());
assertTrue("Does not have previous page for index 1", testBrowser.hasPreviousPage());
testBrowser = createBrowser(10, 5, 5);
assertEquals("Wrong previous page size for index 5", 5, testBrowser.getPreviousPageSize());
assertEquals("Wrong previous page index for index 5 ", 0, testBrowser.getPreviousPageIndex());
assertTrue("Does not have previous page for index 5", testBrowser.hasPreviousPage());
testBrowser = createBrowser(10, 5, 6);
assertEquals("Wrong previous page size for index 6", 5, testBrowser.getPreviousPageSize());
assertEquals("Wrong previous page index for index 6 ", 1, testBrowser.getPreviousPageIndex());
assertTrue("Does not have previous page for index 6", testBrowser.hasPreviousPage());
}
public void testNext() throws Exception
{
testBrowser = createBrowser(10, 5, 0);
assertEquals("Wrong next page size for index 0", 5, testBrowser.getNextPageSize());
assertEquals("Wrong next page index for index 0 ", 5, testBrowser.getNextPageIndex());
assertTrue("Does not have next page for index 0", testBrowser.hasNextPage());
testBrowser = createBrowser(10, 5, 1);
assertEquals("Wrong next page size for index 1", 4, testBrowser.getNextPageSize());
assertEquals("Wrong next page index for index 1 ", 6, testBrowser.getNextPageIndex());
assertTrue("Does not have next page for index 1", testBrowser.hasNextPage());
testBrowser = createBrowser(10, 5, 5);
assertEquals("Wrong next page size for index 5", 0, testBrowser.getNextPageSize());
assertEquals("Wrong next page index for index 5 ", 10, testBrowser.getNextPageIndex());
assertFalse("Has have next page for index 5", testBrowser.hasNextPage());
testBrowser = createBrowser(10, 5, 6);
assertEquals("Wrong next page size for index 6", 0, testBrowser.getNextPageSize());
assertEquals("Wrong next page index for index 6 ", 10, testBrowser.getNextPageIndex());
assertFalse("Has next page for index 6", testBrowser.hasNextPage());
}
private EditionBrowser createBrowser(int totalEditions, int pageSize, int startIndex)
{
EditionBrowser browser = new EditionBrowser(totalEditions, pageSize, startIndex);
int numOfEditions = Math.min(pageSize, totalEditions - startIndex);
ArrayList editions = new ArrayList();
for (int i = 0; i < numOfEditions; i++)
editions.add(new PublicationVO());
browser.setEditions(editions);
return browser;
}
}