1   package com.atlassian.user.search.page;
2   
3   import com.atlassian.user.EntityException;
4   import junit.framework.TestCase;
5   
6   import java.util.ArrayList;
7   import java.util.Collections;
8   import java.util.LinkedList;
9   import java.util.List;
10  
11  public class TestDefaultPager extends TestCase
12  {
13      public void testMerge()
14      {
15          List<String> list1 = new ArrayList<String>();
16          List<String> list2 = new ArrayList<String>();
17  
18          list1.add("1a");
19          list1.add("1b");
20          list2.add("2a");
21          list2.add("2b");
22  
23          List<DefaultPager<String>> pagers = new LinkedList<DefaultPager<String>>();
24          pagers.add(new DefaultPager<String>(list1));
25          pagers.add(new DefaultPager<String>(list2));
26  
27          Pager<String> pager = new MergedListPager<String>(pagers);
28  
29          List<String> masterList = PagerUtils.toList(pager);
30          assertTrue(masterList.containsAll(list1));
31          assertTrue(masterList.containsAll(list2));
32      }
33  
34      public void testMergeWithFirstListEmpty()
35      {
36          List<String> list2 = new ArrayList<String>();
37  
38          list2.add("2a");
39          list2.add("2b");
40  
41          List<DefaultPager<String>> pagers = new LinkedList<DefaultPager<String>>();
42          pagers.add(DefaultPager.<String>emptyPager());
43          pagers.add(new DefaultPager<String>(list2));
44  
45          Pager<String> pager = new MergedListPager<String>(pagers);
46  
47          List<String> masterList = PagerUtils.toList(pager);
48          assertTrue(masterList.containsAll(list2));
49      }
50  
51      public void testIterationCycle() throws EntityException
52      {
53          List<Integer> list1 = new ArrayList<Integer>();
54  
55          int i = 0;
56          while (i++ < 1000)
57              list1.add(i);
58  
59          DefaultPager<Integer> iter = new DefaultPager<Integer>(list1);
60  
61          ArrayList<Integer> elements = new ArrayList<Integer>();
62  
63          while (iter.hasNext())
64          {
65              Integer o = iter.next();
66              if (o != null)
67                  elements.add(o);
68          }
69  
70          assertEquals(1000, elements.size());
71  
72      }
73  
74  }