KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > service > UserManagerTest


1 package org.appfuse.service;
2
3 import org.appfuse.Constants;
4 import org.appfuse.dao.RoleDao;
5 import org.appfuse.dao.UserDao;
6 import org.appfuse.model.Role;
7 import org.appfuse.model.User;
8 import org.appfuse.service.impl.RoleManagerImpl;
9 import org.appfuse.service.impl.UserManagerImpl;
10 import org.jmock.Mock;
11 import org.springframework.dao.DataIntegrityViolationException;
12
13 import java.util.ArrayList JavaDoc;
14 import java.util.List JavaDoc;
15
16
17 public class UserManagerTest extends BaseManagerTestCase {
18     //~ Instance fields ========================================================
19

20     private UserManagerImpl userManager = new UserManagerImpl();
21     private RoleManagerImpl roleManager = new RoleManagerImpl();
22     private Mock userDao = null;
23     private Mock roleDao = null;
24
25     //~ Methods ================================================================
26

27     protected void setUp() throws Exception JavaDoc {
28         super.setUp();
29         userDao = new Mock(UserDao.class);
30         userManager.setUserDao((UserDao) userDao.proxy());
31         roleDao = new Mock(RoleDao.class);
32         roleManager.setRoleDao((RoleDao) roleDao.proxy());
33     }
34     
35     public void testGetUser() throws Exception JavaDoc {
36         User testData = new User("1");
37         testData.getRoles().add(new Role("user"));
38         // set expected behavior on dao
39
userDao.expects(once()).method("getUser")
40                .with(eq(new Long JavaDoc(1))).will(returnValue(testData));
41         
42         User user = userManager.getUser("1");
43         assertTrue(user != null);
44         assertTrue(user.getRoles().size() == 1);
45         userDao.verify();
46     }
47
48     public void testSaveUser() throws Exception JavaDoc {
49         User testData = new User("1");
50         testData.getRoles().add(new Role("user"));
51         // set expected behavior on dao
52
userDao.expects(once()).method("getUser")
53                .with(eq(new Long JavaDoc(1))).will(returnValue(testData));
54         
55         User user = userManager.getUser("1");
56         user.setPhoneNumber("303-555-1212");
57         userDao.verify();
58         
59         // reset expectations
60
userDao.reset();
61         userDao.expects(once()).method("saveUser").with(same(user));
62         
63         userManager.saveUser(user);
64         assertTrue(user.getPhoneNumber().equals("303-555-1212"));
65         assertTrue(user.getRoles().size() == 1);
66         userDao.verify();
67     }
68
69     public void testAddAndRemoveUser() throws Exception JavaDoc {
70         User user = new User();
71
72         // call populate method in super class to populate test data
73
// from a properties file matching this class name
74
user = (User) populate(user);
75         
76         // set expected behavior on role dao
77
roleDao.expects(once()).method("getRoleByName")
78                .with(eq("user")).will(returnValue(new Role("user")));
79         
80         Role role = roleManager.getRole(Constants.USER_ROLE);
81         roleDao.verify();
82         user.addRole(role);
83
84         // set expected behavior on user dao
85
userDao.expects(once()).method("saveUser").with(same(user));
86         
87         userManager.saveUser(user);
88         assertTrue(user.getUsername().equals("john"));
89         assertTrue(user.getRoles().size() == 1);
90         userDao.verify();
91         
92         // reset expectations
93
userDao.reset();
94         
95         userDao.expects(once()).method("removeUser").with(eq(new Long JavaDoc(5)));
96         userManager.removeUser("5");
97         userDao.verify();
98
99         // reset expectations
100
userDao.reset();
101         userDao.expects(once()).method("getUser").will(returnValue(null));
102         user = userManager.getUser("5");
103         assertNull(user);
104         userDao.verify();
105     }
106     
107     public void testUserExistsException() {
108         // set expectations
109
User user = new User("admin");
110         user.setEmail("matt@raibledesigns.com");
111         List JavaDoc users;
112         users = new ArrayList JavaDoc();
113
114         users.add(user);
115         Exception JavaDoc ex = new DataIntegrityViolationException("");
116         userDao.expects(once()).method("saveUser").with(same(user))
117                .will(throwException(ex));
118         
119         // run test
120
try {
121             userManager.saveUser(user);
122             fail("Expected UserExistsException not thrown");
123         } catch (UserExistsException e) {
124             log.debug("expected exception: " + e.getMessage());
125             assertNotNull(e);
126         }
127     }
128 }
129
Popular Tags