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 }