You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by dc...@apache.org on 2010/04/16 16:07:12 UTC
svn commit: r934889 [5/5] - in
/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src:
main/java/org/apache/chemistry/opencmis/client/
main/java/org/apache/chemistry/opencmis/client/runtime/
main/java/org/apach...
Modified: incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/PagingListTest.java
URL: http://svn.apache.org/viewvc/incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/PagingListTest.java?rev=934889&r1=934888&r2=934889&view=diff
==============================================================================
--- incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/PagingListTest.java (original)
+++ incubator/chemistry/opencmis/trunk/chemistry-opencmis-client/chemistry-opencmis-client-impl/src/test/java/org/apache/chemistry/opencmis/client/runtime/PagingListTest.java Fri Apr 16 14:07:11 2010
@@ -35,175 +35,173 @@ import org.junit.Test;
public class PagingListTest {
- private static final int ITEMS = 201;
- private static final int MAX_ITEMS_PER_PAGE = 20;
+ private static final int ITEMS = 201;
+ private static final int MAX_ITEMS_PER_PAGE = 20;
- private static final String PREFIX_1 = "1$";
- private static final String PREFIX_2 = "2$";
+ private static final String PREFIX_1 = "1$";
+ private static final String PREFIX_2 = "2$";
- private String[] sourceData;
- private PagingList<String> testList;
- private PagingList<String> testCacheList;
-
- @Before
- public void setUp() throws Exception {
- sourceData = new String[ITEMS];
- for (int i = 0; i < sourceData.length; i++) {
- sourceData[i] = PREFIX_1 + i;
- }
-
- testList = new TestPagingList(0);
- testCacheList = new TestPagingList(2);
- }
-
- @Test
- public void testPagingList() {
- // test setup
- assertNotNull(testList);
-
- // test number of items per pages
- assertEquals(MAX_ITEMS_PER_PAGE, testList.getMaxItemsPerPage());
-
- // we haven't fetched data yet -> number of item should be unknown
- assertEquals(-1, testList.getNumItems());
-
- // fetch first page and check it
- List<String> page = testList.get(0);
- assertPage(page, 0, MAX_ITEMS_PER_PAGE, PREFIX_1);
-
- // number of item should be known now
- assertEquals(sourceData.length, testList.getNumItems());
-
- // number of pages should be known too
- assertEquals(11, testList.size());
-
- // check all pages
- for (int i = 0; i < testList.size(); i++) {
- page = testList.get(i);
-
- int pageSize = (i == testList.size() - 1 ? ITEMS % MAX_ITEMS_PER_PAGE : MAX_ITEMS_PER_PAGE);
- assertPage(page, i, pageSize, PREFIX_1);
- }
- }
-
- @Test
- public void testPagingListIterator() {
- // test setup
- assertNotNull(testList);
-
- // test iterator
- int pageNumber = 0;
- for (List<String> page : testList) {
- assertTrue(pageNumber < testList.size());
-
- int pageSize = (pageNumber == testList.size() - 1 ? ITEMS % MAX_ITEMS_PER_PAGE
- : MAX_ITEMS_PER_PAGE);
-
- assertPage(page, pageNumber, pageSize, PREFIX_1);
-
- pageNumber++;
- }
- }
-
- @Test
- public void testPagingListExceptions() {
- // test setup
- assertNotNull(testList);
-
- // check negative page numbers
- try {
- testList.get(-1);
- fail("Should throw a IllegalArgumentException!");
- }
- catch (IllegalArgumentException e) {
- }
-
- // check page numbers greater than the last page
- try {
- testList.get(12);
- fail("Should throw a NoSuchElementException!");
- }
- catch (NoSuchElementException e) {
- }
- }
-
- @Test
- public void testPagingCache() {
- // test setup
- assertNotNull(testList);
-
- // read first page, should be cached now
- List<String> firstPage = testCacheList.get(0);
- assertPage(firstPage, 0, MAX_ITEMS_PER_PAGE, PREFIX_1);
-
- // change original data
- for (int i = 0; i < sourceData.length; i++) {
- sourceData[i] = PREFIX_2 + i;
- }
-
- // get second page with new content
- List<String> secondPage = testCacheList.get(1);
- assertPage(secondPage, 1, MAX_ITEMS_PER_PAGE, PREFIX_2);
-
- // fetch first page again, should have the old values since it is cached
- firstPage = testCacheList.get(0);
- assertPage(firstPage, 0, MAX_ITEMS_PER_PAGE, PREFIX_1);
-
- // read a few more pages
- testCacheList.get(2);
- testCacheList.get(3);
-
- // fetch first page again, should have the new values since it is not cached anymore
- firstPage = testCacheList.get(0);
- assertPage(firstPage, 0, MAX_ITEMS_PER_PAGE, PREFIX_2);
- }
-
- void assertPage(List<String> page, int pageNumber, int size, String prefix) {
- assertNotNull(page);
-
- // the first page should be full
- assertEquals(size, page.size());
-
- // check page content
- int counter = 0;
- for (String s : page) {
- assertEquals(prefix + ((pageNumber * MAX_ITEMS_PER_PAGE) + counter), s);
- counter++;
- }
- }
-
- // --- Test PagingList ---
-
- class TestPagingList extends AbstractPagingList<String> {
-
- public TestPagingList(int cacheSize) {
- setCacheSize(cacheSize);
- }
-
- @Override
- protected FetchResult fetchPage(int pageNumber) {
- int skipCount = pageNumber * getMaxItemsPerPage();
- int lastIndex = skipCount + getMaxItemsPerPage() - 1;
- if (lastIndex >= sourceData.length) {
- lastIndex = sourceData.length - 1;
- }
-
- if (skipCount >= sourceData.length) {
- throw new NoSuchElementException();
- }
-
- List<String> page = new ArrayList<String>();
- for (int i = skipCount; i <= lastIndex; i++) {
- page.add(sourceData[i]);
- }
-
- return new FetchResult(page, BigInteger.valueOf(sourceData.length), skipCount
- + getMaxItemsPerPage() < sourceData.length);
- }
-
- @Override
- public int getMaxItemsPerPage() {
- return MAX_ITEMS_PER_PAGE;
- }
- }
+ private String[] sourceData;
+ private PagingList<String> testList;
+ private PagingList<String> testCacheList;
+
+ @Before
+ public void setUp() throws Exception {
+ sourceData = new String[ITEMS];
+ for (int i = 0; i < sourceData.length; i++) {
+ sourceData[i] = PREFIX_1 + i;
+ }
+
+ testList = new TestPagingList(0);
+ testCacheList = new TestPagingList(2);
+ }
+
+ @Test
+ public void testPagingList() {
+ // test setup
+ assertNotNull(testList);
+
+ // test number of items per pages
+ assertEquals(MAX_ITEMS_PER_PAGE, testList.getMaxItemsPerPage());
+
+ // we haven't fetched data yet -> number of item should be unknown
+ assertEquals(-1, testList.getNumItems());
+
+ // fetch first page and check it
+ List<String> page = testList.get(0);
+ assertPage(page, 0, MAX_ITEMS_PER_PAGE, PREFIX_1);
+
+ // number of item should be known now
+ assertEquals(sourceData.length, testList.getNumItems());
+
+ // number of pages should be known too
+ assertEquals(11, testList.size());
+
+ // check all pages
+ for (int i = 0; i < testList.size(); i++) {
+ page = testList.get(i);
+
+ int pageSize = (i == testList.size() - 1 ? ITEMS % MAX_ITEMS_PER_PAGE : MAX_ITEMS_PER_PAGE);
+ assertPage(page, i, pageSize, PREFIX_1);
+ }
+ }
+
+ @Test
+ public void testPagingListIterator() {
+ // test setup
+ assertNotNull(testList);
+
+ // test iterator
+ int pageNumber = 0;
+ for (List<String> page : testList) {
+ assertTrue(pageNumber < testList.size());
+
+ int pageSize = (pageNumber == testList.size() - 1 ? ITEMS % MAX_ITEMS_PER_PAGE : MAX_ITEMS_PER_PAGE);
+
+ assertPage(page, pageNumber, pageSize, PREFIX_1);
+
+ pageNumber++;
+ }
+ }
+
+ @Test
+ public void testPagingListExceptions() {
+ // test setup
+ assertNotNull(testList);
+
+ // check negative page numbers
+ try {
+ testList.get(-1);
+ fail("Should throw a IllegalArgumentException!");
+ } catch (IllegalArgumentException e) {
+ }
+
+ // check page numbers greater than the last page
+ try {
+ testList.get(12);
+ fail("Should throw a NoSuchElementException!");
+ } catch (NoSuchElementException e) {
+ }
+ }
+
+ @Test
+ public void testPagingCache() {
+ // test setup
+ assertNotNull(testList);
+
+ // read first page, should be cached now
+ List<String> firstPage = testCacheList.get(0);
+ assertPage(firstPage, 0, MAX_ITEMS_PER_PAGE, PREFIX_1);
+
+ // change original data
+ for (int i = 0; i < sourceData.length; i++) {
+ sourceData[i] = PREFIX_2 + i;
+ }
+
+ // get second page with new content
+ List<String> secondPage = testCacheList.get(1);
+ assertPage(secondPage, 1, MAX_ITEMS_PER_PAGE, PREFIX_2);
+
+ // fetch first page again, should have the old values since it is cached
+ firstPage = testCacheList.get(0);
+ assertPage(firstPage, 0, MAX_ITEMS_PER_PAGE, PREFIX_1);
+
+ // read a few more pages
+ testCacheList.get(2);
+ testCacheList.get(3);
+
+ // fetch first page again, should have the new values since it is not
+ // cached anymore
+ firstPage = testCacheList.get(0);
+ assertPage(firstPage, 0, MAX_ITEMS_PER_PAGE, PREFIX_2);
+ }
+
+ void assertPage(List<String> page, int pageNumber, int size, String prefix) {
+ assertNotNull(page);
+
+ // the first page should be full
+ assertEquals(size, page.size());
+
+ // check page content
+ int counter = 0;
+ for (String s : page) {
+ assertEquals(prefix + ((pageNumber * MAX_ITEMS_PER_PAGE) + counter), s);
+ counter++;
+ }
+ }
+
+ // --- Test PagingList ---
+
+ class TestPagingList extends AbstractPagingList<String> {
+
+ public TestPagingList(int cacheSize) {
+ setCacheSize(cacheSize);
+ }
+
+ @Override
+ protected FetchResult fetchPage(int pageNumber) {
+ int skipCount = pageNumber * getMaxItemsPerPage();
+ int lastIndex = skipCount + getMaxItemsPerPage() - 1;
+ if (lastIndex >= sourceData.length) {
+ lastIndex = sourceData.length - 1;
+ }
+
+ if (skipCount >= sourceData.length) {
+ throw new NoSuchElementException();
+ }
+
+ List<String> page = new ArrayList<String>();
+ for (int i = skipCount; i <= lastIndex; i++) {
+ page.add(sourceData[i]);
+ }
+
+ return new FetchResult(page, BigInteger.valueOf(sourceData.length),
+ skipCount + getMaxItemsPerPage() < sourceData.length);
+ }
+
+ @Override
+ public int getMaxItemsPerPage() {
+ return MAX_ITEMS_PER_PAGE;
+ }
+ }
}