1 package com.atlassian.user.generic;
2
3 import com.atlassian.user.EntityException;
4 import com.atlassian.user.Group;
5 import com.atlassian.user.GroupManager;
6 import com.atlassian.user.User;
7 import com.atlassian.user.impl.DefaultUser;
8 import com.atlassian.user.search.page.Pager;
9 import com.atlassian.user.search.page.PagerUtils;
10 import net.sf.hibernate.HibernateException;
11
12 import java.util.List;
13
14
15
16
17
18 public abstract class AbstractTestExternalGroupManager extends AbstractTestGroupManager
19 {
20
21
22
23
24
25
26
27 protected GroupManager getExternalGroupManager()
28 {
29 return getGroupManager();
30 }
31
32 public void testSupportsExternalMembership() throws Exception
33 {
34 assertTrue(getGroupManager().supportsExternalMembership());
35 assertTrue(getExternalGroupManager().supportsExternalMembership());
36 }
37
38 public void testAddExternalMembership() throws Exception
39 {
40 User externalUser = new DefaultUser("externalUser");
41 Group group = getExternalGroupManager().createGroup("group");
42 getGroupManager().addMembership(group, externalUser);
43 boolean result = getExternalGroupManager().hasMembership(group, externalUser);
44 assertTrue(result);
45 }
46
47 public void testRemoveExternalMembership() throws Exception
48 {
49 User externalUser = new DefaultUser("externalUser");
50 Group group = getExternalGroupManager().createGroup("group");
51 getGroupManager().addMembership(group, externalUser);
52
53 assertTrue(getExternalGroupManager().getLocalMemberNames(group).isEmpty());
54 assertFalse(getExternalGroupManager().getExternalMemberNames(group).isEmpty());
55
56 getExternalGroupManager().removeMembership(group, externalUser);
57 assertTrue(getExternalGroupManager().getLocalMemberNames(group).isEmpty());
58 assertTrue(getExternalGroupManager().getExternalMemberNames(group).isEmpty());
59 }
60
61 public void testGetExternalMemberNames() throws EntityException
62 {
63 User externalUser1 = new DefaultUser("externalUser1");
64 Group group = getExternalGroupManager().createGroup("group");
65 getGroupManager().addMembership(group, externalUser1);
66
67 Pager<String> pager = getExternalGroupManager().getMemberNames(group);
68 List<String> results = PagerUtils.toList(pager);
69
70 assertEquals(1, results.size());
71 assertEquals("externalUser1", results.get(0));
72 }
73
74 public void testGetExternalMemberNamesIsOrdered() throws EntityException
75 {
76 User externalUser1 = new DefaultUser("externalUser1");
77 User externalUser2 = new DefaultUser("externalUser2");
78 Group group = getExternalGroupManager().createGroup("group");
79 getGroupManager().addMembership(group, externalUser2);
80 getGroupManager().addMembership(group, externalUser1);
81 Pager<String> pager = getExternalGroupManager().getMemberNames(group);
82 List<String> results = PagerUtils.toList(pager);
83
84 assertEquals(2, results.size());
85 assertEquals("externalUser1", results.get(0));
86 assertEquals("externalUser2", results.get(1));
87 }
88
89 public void testGetMemberNamesIncludesExternalMembers() throws EntityException, HibernateException
90 {
91 User externalUser = new DefaultUser("externalUser");
92 Group group = getExternalGroupManager().createGroup("group");
93 getGroupManager().addMembership(group, externalUser);
94
95 User user = getUserManager().createUser("user");
96 this.getExternalGroupManager().addMembership(group, user);
97 Pager<String> pager = getExternalGroupManager().getMemberNames(group);
98 List<String> results = PagerUtils.toList(pager);
99
100 assertEquals(2, results.size());
101 assertEquals("externalUser", results.get(0));
102 assertEquals("user", results.get(1));
103 }
104
105 public void testGetGroupsForExternalEntity() throws EntityException
106 {
107 User externalUser = new DefaultUser("externalUser");
108 Group group = getExternalGroupManager().createGroup("group");
109 getGroupManager().addMembership(group, externalUser);
110
111 Pager<Group> pager = getExternalGroupManager().getGroups(new DefaultUser("externalUser"));
112 List<Group> results = PagerUtils.toList(pager);
113
114 assertEquals(1, results.size());
115 assertEquals(group, results.get(0));
116 }
117 }