1   package com.atlassian.user.search;
2   
3   import com.atlassian.user.User;
4   import com.atlassian.user.impl.DefaultUser;
5   import com.atlassian.user.search.page.DefaultPager;
6   import com.atlassian.user.search.page.Pager;
7   import com.atlassian.user.search.page.MergedListPager;
8   import junit.framework.TestCase;
9   
10  import java.util.Arrays;
11  import java.util.Iterator;
12  
13  public class TestDefaultSearchResult extends TestCase
14  {
15      private DefaultSearchResult<User> searchResult;
16      private DefaultUser fred;
17      private DefaultUser bob;
18      private DefaultUser mary;
19  
20      public void testOrderThatRepositoryResultsAreAddedIsRespected()
21      {
22          searchResult.addToResults("first.repo", new DefaultPager<User>(Arrays.<User>asList(fred, bob)));
23          searchResult.addToResults("second.repo", new DefaultPager<User>(Arrays.<User>asList(mary)));
24  
25          Pager<User> pager = searchResult.pager();
26          
27          final Iterator<User> iterator = pager.iterator();
28          assertEquals(fred, iterator.next());
29          assertEquals(bob, iterator.next());
30          assertEquals(mary, iterator.next());
31      }
32  
33      public void testMergedListPagerOnlyReturnedOnMultipleRepos()
34      {
35          searchResult.addToResults("first.repo", new DefaultPager<User>(Arrays.<User>asList(fred, bob)));
36          assertFalse(searchResult.pager() instanceof MergedListPager); 
37  
38          searchResult.addToResults("second.repo", new DefaultPager<User>(Arrays.<User>asList(mary)));
39          assertTrue(searchResult.pager() instanceof MergedListPager);
40      }
41  
42      protected void setUp() throws Exception
43      {
44          super.setUp();
45  
46          searchResult = new DefaultSearchResult<User>();
47          fred = new DefaultUser("fred");
48          bob = new DefaultUser("bob");
49          mary = new DefaultUser("mary");
50      }
51  
52      @Override
53      protected void tearDown() throws Exception
54      {
55          searchResult = null;
56  
57          super.tearDown();
58      }
59  }