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 }