1 package com.atlassian.user.search.page;
2
3 import junit.framework.TestCase;
4
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import org.apache.log4j.Logger;
9 import com.atlassian.user.impl.ldap.search.page.AbstractLDAPPager;
10
11 public class TestAbstractLDAPPager extends TestCase
12 {
13 private static final Logger log = Logger.getLogger(TestAbstractLDAPPager.class);
14
15 private void assertPagerWorks(AbstractLDAPPager pager, int size, boolean callHasNext)
16 {
17 String testDescription = "size == " + size + ", callHasNext == " + callHasNext;
18 for (int i = 0; i < size; ++i)
19 {
20 if (callHasNext)
21 assertTrue(testDescription + ", i == " + i, pager.hasNext());
22 assertEquals(testDescription + ", i == " + i, new MockSearchResult(i + ""), pager.next());
23 }
24 assertFalse(testDescription, pager.hasNext());
25 }
26
27 private AbstractLDAPPager buildPager(int size)
28 {
29 final List<String> data = new ArrayList<String>(size);
30 for (int i = 0; i < size; ++i)
31 {
32 data.add(String.valueOf(i));
33 }
34 return new MockLDAPPager(data);
35 }
36
37 public void testVariousSizesOfPager()
38 {
39 for (int i = 150; i < 1000; i+=97)
40 {
41 log.info("Testing i = " + i);
42 assertPagerWorks(buildPager(i), i, true);
43 assertPagerWorks(buildPager(i), i, false);
44 }
45 }
46 }