1   package com.atlassian.user.impl.memory.provider;
2   
3   import junit.framework.TestCase;
4   import com.atlassian.user.impl.DefaultUser;
5   import com.atlassian.user.impl.DefaultGroup;
6   import com.atlassian.user.User;
7   import com.atlassian.user.Group;
8   import com.atlassian.user.EntityException;
9   import com.atlassian.user.search.page.PagerUtils;
10  
11  public class TestMemoryProvider extends TestCase
12  {
13      MemoryProvider provider;
14      public User user;
15      public Group group;
16      public Group group2;
17  
18      public void setUp() throws Exception
19      {
20          provider = new MemoryProvider();
21          super.setUp();
22      }
23  
24      public void tearDown() throws Exception
25      {
26          super.tearDown();
27      }
28  
29      public void testRemoveUserRemovesAllMembershipForUser() throws Exception
30      {
31          setupTestEntities();
32  
33          provider.addMembership(group, user);
34          provider.addMembership(group2, user);
35  
36          provider.removeUser(user);
37  
38          assertEquals("memoryProvider is not removing membership information when users are removed",
39                  0, PagerUtils.count(provider.getMemberNames(group)));
40  
41          assertEquals("memoryProvider is not removing membership information when users are removed",
42                  0, PagerUtils.count(provider.getMemberNames(group2)));
43      }
44  
45      public void testRemoveMembership() throws Exception
46      {
47          setupTestEntities();
48          provider.addMembership(group, user);
49          provider.addMembership(group, user);
50          provider.addMembership(group, user);
51          provider.addMembership(group2, user);
52          provider.removeMembership(group, user);
53          assertFalse("memoryProvider is not removing membership", provider.hasMembership(group, user));
54          assertTrue("memoryProvider is removing membership indiscriminately!", provider.hasMembership(group2, user));
55  
56          provider.removeMembership(group2, user);
57  
58          assertFalse("memoryProvider is not removing membership", provider.hasMembership(group2, user));
59       }
60  
61      public void testRemoveGroupRemovesMembership() throws Exception
62      {
63          setupTestEntities();
64          provider.addMembership(group, user);
65          provider.addMembership(group2, user);
66          assertTrue(provider.hasMembership(group, user));
67          assertTrue(provider.hasMembership(group2, user));
68  
69          provider.removeGroup(group2);
70          assertTrue(provider.hasMembership(group, user));
71          assertFalse(provider.hasMembership(group2, user));
72      }
73  
74  
75      private void setupTestEntities() throws EntityException
76      {
77          user = new DefaultUser("u1");
78          provider.addUser(user);
79          group = new DefaultGroup("g1");
80          provider.addGroup(group);
81          group2 = new DefaultGroup("g2");
82          provider.addGroup(group2);
83      }
84  
85  
86  }