1   package com.atlassian.user.impl.osuser;
2   
3   import junit.framework.TestCase;
4   import com.opensymphony.user.provider.UserProvider;
5   import com.opensymphony.user.provider.ProfileProvider;
6   import com.opensymphony.user.provider.CredentialsProvider;
7   import com.opensymphony.user.provider.AccessProvider;
8   import com.opensymphony.user.provider.memory.MemoryCredentialsProvider;
9   import com.opensymphony.user.provider.memory.MemoryProfileProvider;
10  import com.opensymphony.user.provider.memory.MemoryAccessProvider;
11  import com.opensymphony.user.*;
12  import com.atlassian.user.repository.DefaultRepositoryIdentifier;
13  import com.atlassian.user.properties.PropertySetFactory;
14  
15  public class TestDefaultOSUserAccessor extends TestCase
16  {
17      DefaultRepositoryIdentifier config = new DefaultRepositoryIdentifier("osuser1", "OSUser Config");
18      PropertySetFactory propertySetFactory;
19      protected CredentialsProvider credentialsProvider;
20      protected ProfileProvider profileProvider;
21      protected AccessProvider accessProvider;
22      protected DefaultOSUAccessor accessor;
23  
24      public void setUp() throws Exception
25      {
26          accessor = new DefaultOSUAccessor();
27  
28          credentialsProvider = new MemoryCredentialsProvider();
29          credentialsProvider.init(null);
30          profileProvider = new MemoryProfileProvider();
31          profileProvider.init(null);
32          accessProvider = new MemoryAccessProvider();
33          accessProvider.init(null);
34          accessor.setCredentialsProvider(credentialsProvider);
35          accessor.setProfileProvider(profileProvider);
36          accessor.setAccessProvider(accessProvider);
37  
38          super.setUp();
39      }
40  
41      public void tearDown() throws Exception
42      {
43          super.tearDown();
44      }
45  
46      public void testGetNullProviderForProfile()
47      {
48          UserProvider provider = accessor.getProfileProvider(null);
49          assertNull("The DefaultOSUAccessor is matching non-existent entities to real providers", provider);
50      }
51  
52      public void testGetProviderForProfile()
53      {
54          profileProvider.create("user");
55  
56          assertNotNull("The DefaultOSUAccessor isn't recording profileProvider to entity relations (it can't handle(..) legit entities)",
57                  accessor.getProfileProvider("user"));
58      }
59  
60      public void testGetProviderForCredential()
61      {
62          credentialsProvider.create("passa");
63  
64          UserProvider result = accessor.getCredentialsProvider("passa");
65          assertNotNull("The DefaultOSUAccessor isn't recording profileProvider to entity relations (it can't handle(..) legit entities)",
66                 result );
67      }
68  
69      public void testGetProviderForAccess()
70      {
71          accessProvider.create("group");
72  
73          UserProvider result = accessor.getAccessProvider("group");
74          assertNotNull("The DefaultOSUAccessor isn't recording profileProvider to entity relations (it can't handle(..) legit entities)",
75                 result );
76      }
77  
78      public void testBuildOSUserGroup() throws EntityNotFoundException, ImmutableException, DuplicateEntityException
79      {
80          assertTrue(accessProvider.create("group"));
81  
82          Group group1 = new Group("group", accessor);
83  
84          UserManager osuserManager = new UserManager("osuser-test.xml");
85          osuserManager.createGroup("group");
86          Group group2 = osuserManager.getGroup("group");
87  
88          assertEquals("OSUUser group constructed by Atlassian User code is failing on equality test when compared to an original osuser group obj",
89                  group1, group2);
90      }
91  
92      public void testBuildOSUserUser() throws EntityNotFoundException, ImmutableException, DuplicateEntityException
93      {
94          assertTrue(credentialsProvider.create("user"));
95  
96          User user1 = new User("user", accessor);
97  
98          UserManager osuserManager = new UserManager("osuser-test.xml");
99          osuserManager.createUser("user");
100         User user2 = osuserManager.getUser("user");
101 
102         assertEquals("OSUUser user constructed by Atlassian User code is failing on equality test when compared to an original osuser user obj",
103                 user1, user2);
104     }
105 }