1   package com.atlassian.user.impl.hibernate;
2   
3   import com.atlassian.cache.CacheFactory;
4   import com.atlassian.cache.memory.MemoryCacheManager;
5   import com.atlassian.user.EntityException;
6   import com.atlassian.user.User;
7   import com.atlassian.user.UserManager;
8   import com.atlassian.user.impl.cache.CachingUserManager;
9   
10  public class TestCachedHibernateUserManager extends TestHibernateUserManager    
11  {
12      private CachingUserManager cachingUserManager;
13  
14      protected void onSetUp() throws Exception
15      {
16          super.onSetUp();
17          CacheFactory cacheFactory = new MemoryCacheManager();
18          cachingUserManager = new CachingUserManager(hibernateUserManager, cacheFactory);
19      }
20  
21      protected UserManager getUserManager()
22      {
23          return cachingUserManager;
24      }
25  
26      public void testChangingCachedUser() throws EntityException
27      {
28          String userName = "andrew";
29          String fullName = "blah";
30          String mail = "mail@example.com";
31          getUserManager().createUser(userName);
32          setComplete();
33          endTransaction();
34          startNewTransaction();
35  
36          User cachedUser = getUserManager().getUser(userName);
37          User notCachedUser = hibernateUserManager.getUser(userName);
38          cachedUser.setFullName(fullName);
39          cachedUser.setEmail(mail);
40          getUserManager().saveUser(cachedUser);
41          assertNotSame(notCachedUser, cachedUser);
42          setComplete();
43          endTransaction();
44          startNewTransaction();
45  
46          User retrievedUser = hibernateUserManager.getUser(userName);
47          assertEquals(fullName, retrievedUser.getFullName());
48          assertEquals(mail, retrievedUser.getEmail());
49          getUserManager().removeUser(cachedUser);
50          setComplete();
51          endTransaction();        
52      }
53  }