1   package com.atlassian.user.impl.osuser;
2   
3   import com.atlassian.user.EntityException;
4   import com.atlassian.user.UserManager;
5   import com.atlassian.user.impl.osuser.properties.OSUPropertySetFactory;
6   import com.atlassian.user.properties.PropertySetFactory;
7   import com.atlassian.user.repository.DefaultRepositoryIdentifier;
8   import com.opensymphony.module.propertyset.PropertySet;
9   import com.opensymphony.user.provider.AccessProvider;
10  import com.opensymphony.user.provider.CredentialsProvider;
11  import com.opensymphony.user.provider.ProfileProvider;
12  import com.opensymphony.user.provider.memory.MemoryAccessProvider;
13  import com.opensymphony.user.provider.memory.MemoryCredentialsProvider;
14  import com.opensymphony.user.provider.memory.MemoryProfileProvider;
15  import junit.framework.TestCase;
16  
17  public class TestOSUserPropertySetFactory extends TestCase
18  {
19      private UserManager userManager;
20      private PropertySet propertySet;
21      private PropertySetFactory propertySetFactory;
22  
23      protected CredentialsProvider credentialsProvider;
24      protected ProfileProvider profileProvider;
25      protected AccessProvider accessProvider;
26      DefaultOSUAccessor accessor;
27  
28      public void setUp() throws Exception
29      {
30          super.setUp();
31  
32          DefaultRepositoryIdentifier OSUConfig = new DefaultRepositoryIdentifier("OSUser1", "My OSUser repository");
33  
34          credentialsProvider = new MemoryCredentialsProvider();
35          credentialsProvider.init(null);
36          profileProvider = new MemoryProfileProvider();
37          profileProvider.init(null);
38          accessProvider = new MemoryAccessProvider();
39          accessProvider.init(null);
40  
41          accessor = new DefaultOSUAccessor();
42          accessor.setCredentialsProvider(credentialsProvider);
43          accessor.setProfileProvider(profileProvider);
44          accessor.setAccessProvider(accessProvider);
45  
46          userManager = new OSUUserManager(OSUConfig, accessor);
47  
48          propertySetFactory = new OSUPropertySetFactory(profileProvider);
49      }
50  
51      public void tearDown() throws Exception
52      {
53          super.tearDown();
54      }
55  
56      public void testGetPropertySetForUser() throws EntityException
57      {
58          assertNotNull(userManager.createUser("user"));
59          propertySet = getPropertySetForUser("user");
60  
61          assertNotNull(propertySet);
62      }
63  
64      private PropertySet getPropertySetForUser(String username) throws EntityException
65      {
66          return propertySetFactory.getPropertySet(userManager.getUser(username));
67      }
68  
69      public void testAddPropertyForUser() throws EntityException
70      {
71          userManager.createUser("user");
72          propertySet = getPropertySetForUser("user");
73  
74          propertySet.setString("testString", "helloworld");
75          propertySet.setBoolean("test", true);
76  
77          PropertySet propertySet2 = getPropertySetForUser("user");
78          assertTrue("Propertyset for external user is not recording data.", propertySet2.getBoolean("test"));
79          assertEquals("Propertyset for external user is not recording data.", "helloworld", propertySet2.getString("testString"));
80      }
81  }