Index: src/rttest/org/apache/torque/util/LargeSelectTest.java =================================================================== RCS file: /home/cvspublic/jakarta-turbine-torque/src/rttest/org/apache/torque/util/LargeSelectTest.java,v retrieving revision 1.2 diff -u -r1.2 LargeSelectTest.java --- src/rttest/org/apache/torque/util/LargeSelectTest.java 2 Oct 2002 14:34:45 -0000 1.2 +++ src/rttest/org/apache/torque/util/LargeSelectTest.java 14 Oct 2002 02:45:54 -0000 @@ -472,7 +472,135 @@ assertEquals("Record progress text", "1 - 9 of > 45", ls.getRecordProgressText()); } + /** + * This test case checks for a problem reported by resoli@tiscali.it on + * turbine-dev (2002-10-07). Presently this finds no problem, but if it can + * be tweaked to produce the problem I can then look at fixing LargeSelect + * (assuming there is actually a problem). + * @throws Exception + */ + public void testForPaginationCycle() throws Exception + { + LargeSelect ls = new LargeSelect(criteria, TEST_PAGE_SIZE, 1, + "org.apache.torque.test.AuthorPeer"); + + assertEquals("Page size", TEST_PAGE_SIZE, ls.getPageSize()); + assertTrue("Paginated", ls.getPaginated()); + + // Page 0 + assertEquals("Current page number", 0, ls.getCurrentPageNumber()); + assertEquals("Previous results available", false, ls.getPreviousResultsAvailable()); + assertTrue("Next results available", ls.getNextResultsAvailable()); + assertEquals("Current page size", 0, ls.getCurrentPageSize()); + assertEquals("First record for page", 0, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 0, ls.getLastRecordNoForPage()); + assertEquals("Totals finalised", false, ls.getTotalsFinalized()); + assertEquals("Total pages", 0, ls.getTotalPages()); + assertEquals("Total records", 0, ls.getTotalRecords()); + assertEquals("Page progress text", "0 of > 0", ls.getPageProgressText()); + assertEquals("Record progress text", "0 - 0 of > 0", ls.getRecordProgressText()); + + List results = ls.getNextResults(); + // Page 1 + assertEquals("results.size()", TEST_PAGE_SIZE, results.size()); + assertEquals("Current page number", 1, ls.getCurrentPageNumber()); + assertEquals("Previous results available", false, ls.getPreviousResultsAvailable()); + assertTrue("Next results available", ls.getNextResultsAvailable()); + assertEquals("Current page size", TEST_PAGE_SIZE, ls.getCurrentPageSize()); + assertEquals("First record for page", 1, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 9, ls.getLastRecordNoForPage()); + assertEquals("Totals finalised", false, ls.getTotalsFinalized()); + assertEquals("Total pages", 1, ls.getTotalPages()); + assertEquals("Total records", 9, ls.getTotalRecords()); + assertEquals("Page progress text", "1 of > 1", ls.getPageProgressText()); + assertEquals("Record progress text", "1 - 9 of > 9", ls.getRecordProgressText()); + + results = ls.getPage(5); + // Page 5 + assertEquals("results.size()", TEST_PAGE_SIZE, results.size()); + assertEquals("Current page number", 5, ls.getCurrentPageNumber()); + assertTrue("Previous results available", ls.getPreviousResultsAvailable()); + assertTrue("Next results available", ls.getNextResultsAvailable()); + assertEquals("Current page size", TEST_PAGE_SIZE, ls.getCurrentPageSize()); + assertEquals("First record for page", 37, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 45, ls.getLastRecordNoForPage()); + assertEquals("Totals finalised", false, ls.getTotalsFinalized()); + assertEquals("Total pages", 5, ls.getTotalPages()); + assertEquals("Total records", 45, ls.getTotalRecords()); + assertEquals("Page progress text", "5 of > 5", ls.getPageProgressText()); + assertEquals("Record progress text", "37 - 45 of > 45", ls.getRecordProgressText()); + + results = ls.getNextResults(); + // Page 6 + assertEquals("results.size()", TEST_PAGE_SIZE, results.size()); + assertEquals("Current page number", 6, ls.getCurrentPageNumber()); + assertTrue("Previous results available", ls.getPreviousResultsAvailable()); + assertTrue("Next results available", ls.getNextResultsAvailable()); + assertEquals("Current page size", TEST_PAGE_SIZE, ls.getCurrentPageSize()); + assertEquals("First record for page", 46, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 54, ls.getLastRecordNoForPage()); + assertFalse("Totals not finalised", ls.getTotalsFinalized()); + assertEquals("Total pages", 6, ls.getTotalPages()); + assertEquals("Total records", 54, ls.getTotalRecords()); + assertEquals("Page progress text", "6 of > 6", ls.getPageProgressText()); + assertEquals("Record progress text", "46 - 54 of > 54", ls.getRecordProgressText()); + + results = ls.getNextResults(); + // Page 7 + results = ls.getNextResults(); + // Page 8 + results = ls.getNextResults(); + // Page 9 + assertEquals("results.size()", TEST_PAGE_SIZE, results.size()); + assertEquals("Current page number", 9, ls.getCurrentPageNumber()); + assertTrue("Previous results available", ls.getPreviousResultsAvailable()); + assertEquals("Next results available", false, ls.getNextResultsAvailable()); + assertEquals("Current page size", TEST_PAGE_SIZE, ls.getCurrentPageSize()); + assertEquals("First record for page", 73, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 81, ls.getLastRecordNoForPage()); + assertTrue("Totals finalised", ls.getTotalsFinalized()); + assertEquals("Total pages", TEST_PAGES, ls.getTotalPages()); + assertEquals("Total records", TEST_ROWS, ls.getTotalRecords()); + assertEquals("Page progress text", "9 of 9", ls.getPageProgressText()); + assertEquals("Record progress text", "73 - 81 of 81", ls.getRecordProgressText()); + + results = ls.getPage(2); + // Page 2 + assertEquals("results.size()", TEST_PAGE_SIZE, results.size()); + assertEquals("Current page number", 2, ls.getCurrentPageNumber()); + assertTrue("Previous results available", ls.getPreviousResultsAvailable()); + assertTrue("Next results available", ls.getNextResultsAvailable()); + assertEquals("Current page size", TEST_PAGE_SIZE, ls.getCurrentPageSize()); + assertEquals("First record for page", 10, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 18, ls.getLastRecordNoForPage()); + assertTrue("Totals finalised", ls.getTotalsFinalized()); + assertEquals("Total pages", 9, ls.getTotalPages()); + assertEquals("Total records", 81, ls.getTotalRecords()); + assertEquals("Page progress text", "2 of 9", ls.getPageProgressText()); + assertEquals("Record progress text", "10 - 18 of 81", ls.getRecordProgressText()); + + List sameResults = ls.getCurrentPageResults(); + // Page 2 + assertSame("Same results", results, sameResults); + + results = ls.getPreviousResults(); + // Page 1 + assertEquals("results.size()", TEST_PAGE_SIZE, results.size()); + assertEquals("Current page number", 1, ls.getCurrentPageNumber()); + assertEquals("Previous results available", false, ls.getPreviousResultsAvailable()); + assertTrue("Next results available", ls.getNextResultsAvailable()); + assertEquals("Current page size", TEST_PAGE_SIZE, ls.getCurrentPageSize()); + assertEquals("First record for page", 1, ls.getFirstRecordNoForPage()); + assertEquals("Last record for page", 9, ls.getLastRecordNoForPage()); + assertTrue("Totals finalised", ls.getTotalsFinalized()); + assertEquals("Total pages", 9, ls.getTotalPages()); + assertEquals("Total records", 81, ls.getTotalRecords()); + assertEquals("Page progress text", "1 of 9", ls.getPageProgressText()); + assertEquals("Record progress text", "1 - 9 of 81", ls.getRecordProgressText()); + } + // todo Add a test for getPaginated() - was previously returning false when 6 results and pageSize 5 // todo Add test for parameter storage + }