1 package com.atlassian.user.search.page;
2
3 import com.atlassian.user.EntityException;
4 import com.atlassian.user.Entity;
5 import com.atlassian.user.impl.RepositoryException;
6 import com.atlassian.user.impl.ldap.LDAPEntityFactory;
7 import com.atlassian.user.impl.ldap.search.page.AbstractLDAPPager;
8
9 import javax.naming.NamingEnumeration;
10 import javax.naming.NamingException;
11 import javax.naming.directory.*;
12 import java.util.ArrayList;
13 import java.util.Iterator;
14 import java.util.List;
15
16 import net.sf.ldaptemplate.support.filter.Filter;
17
18 class MockLDAPPager extends AbstractLDAPPager
19 {
20 private List<SearchResult> dummyList;
21 private LDAPEntityFactory<Entity> entityFactory;
22
23 public MockLDAPPager(List<?> list)
24 {
25 dummyList = new ArrayList<SearchResult>();
26
27 for (Iterator iterator = list.iterator(); iterator.hasNext();)
28 {
29 Object o = iterator.next();
30 if (!(o instanceof MockSearchResult))
31 dummyList.add(new MockSearchResult(o.toString()));
32 else
33 dummyList.add((MockSearchResult) o);
34 }
35
36 this.enume = new MockNamingEnumeration<SearchResult>(dummyList);
37 this.repository = new MockLdapContextFactory(dummyList);
38 originalQuery = new MockFilter();
39 }
40
41 protected List preloadSearchResult(SearchResult result, List prefetched) throws EntityException
42 {
43 Object entity = result;
44
45 if (entityFactory != null)
46 entity = entityFactory.getEntity(result.getAttributes(), result.getName());
47
48 prefetched.add(entity);
49 return prefetched;
50 }
51
52 public void setEntityFactory(LDAPEntityFactory<Entity> entityFactory)
53 {
54 this.entityFactory = entityFactory;
55 }
56
57 private class MockFilter implements Filter
58 {
59 public String encode()
60 {
61 return null;
62 }
63
64 public StringBuffer encode(StringBuffer stringBuffer)
65 {
66 return null;
67 }
68 }
69 }