1   package com.atlassian.user.impl.ldap;
2   
3   import com.atlassian.user.User;
4   import com.atlassian.user.search.page.PagerUtils;
5   
6   import java.util.List;
7   
8   public abstract class AbstractTestLdapUserManager extends AbstractLdapTest
9   {
10      private LDAPUserManagerReadOnly userManager;
11  
12      public void setLdapUserManager(LDAPUserManagerReadOnly userManager)
13      {
14          this.userManager = userManager;
15      }
16  
17      public void testGetUser() throws Exception
18      {
19          for (int i = 1; i <= 8; i++)
20          {
21              String userName = "user" + i;
22              User user = userManager.getUser(userName);
23              assertNotNull("User should exist: " + userName, user);
24              assertEquals(userName, user.getName());
25              assertEquals(userName + "@example.com", user.getEmail());
26              assertEquals("givenname" + i + " sn" + i, user.getFullName());
27          }
28      }
29  
30      public void testGetUserNames() throws Exception
31      {
32          List userNames = PagerUtils.toList(userManager.getUserNames());
33          assertEquals(8, userNames.size());
34          for (int i = 1; i <= 8; i++)
35          {
36              String userName = "user" + i;
37              assertTrue("User should be included: " + userName, userNames.contains(userName));
38          }
39      }
40  
41      public void testGetUsers() throws Exception
42      {
43          List users = PagerUtils.toList(userManager.getUsers());
44          assertEquals(8, users.size());
45          for (int i = 1; i <= 8; i++)
46          {
47              String userName = "user" + i;
48              User retrievedUser = userManager.getUser(userName);
49              assertNotNull("Should be able to retrieve user: " + userName, retrievedUser);
50              assertTrue("User should be included: " + userName, users.contains(retrievedUser));
51          }
52      }
53  
54      public void testCreateUserFails() throws Exception
55      {
56          try
57          {
58              userManager.createUser("testuser");
59              fail("expected UnsupportedOperationException from read-only manager");
60          }
61          catch (UnsupportedOperationException e)
62          {
63              // ignore
64          }
65      }
66  
67      public void testRemoveUserFails() throws Exception
68      {
69          try
70          {
71              userManager.removeUser(userManager.getUser("user1"));
72              fail("expected UnsupportedOperationException from read-only manager");
73          }
74          catch (UnsupportedOperationException e)
75          {
76              // ignore
77          }
78      }
79  }
80