1   package com.atlassian.user.impl.memory.properties;
2   
3   import com.atlassian.user.EntityException;
4   import com.atlassian.user.impl.DefaultUser;
5   import com.opensymphony.module.propertyset.PropertySet;
6   import junit.framework.TestCase;
7   
8   public class TestMemoryPropertySetFactory extends TestCase
9   {
10      MemoryPropertySetFactory propertySetFactory;
11  
12  
13      public void setUp() throws Exception
14      {
15          propertySetFactory = new MemoryPropertySetFactory();
16      }
17  
18      public void testGetPropertySet() throws EntityException
19      {
20          DefaultUser entity = new DefaultUser("test");
21          assertNotNull(entity);
22  
23          PropertySet ps = propertySetFactory.getPropertySet(entity);
24  
25          assertNotNull("memoryPropertySetFactory is returning nulls", ps);
26      }
27  
28      public void testRetrieveProperty() throws EntityException
29      {
30          DefaultUser entity = new DefaultUser("test");
31          assertNotNull(entity);
32  
33          PropertySet ps = propertySetFactory.getPropertySet(entity);
34          ps.setString("testProp", "foo");
35  
36          ps = propertySetFactory.getPropertySet(entity);
37          String propVal = ps.getString("testProp");
38  
39          assertEquals("memoryPropertySetFactory is not retrieving the correct propertyset",
40                  "foo", propVal);
41      }
42  
43      public void testMutatingEntity() throws EntityException
44      {
45          DefaultUser testUser = new DefaultUser("name");
46          testUser.setFullName("full name");
47          testUser.setEmail("email");
48          PropertySet ps1 = propertySetFactory.getPropertySet(testUser);
49          testUser.setFullName("changed full name");
50          testUser.setEmail("changed email");
51          PropertySet ps2 = propertySetFactory.getPropertySet(testUser);
52          assertSame("received different property sets for an updated user object", ps1, ps2);
53  
54      }
55  
56  }