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 ; 14 import java.util.List ; 15 16 17 public class UserManagerTest extends BaseManagerTestCase { 18 20 private UserManagerImpl userManager = new UserManagerImpl(); 21 private RoleManagerImpl roleManager = new RoleManagerImpl(); 22 private Mock userDao = null; 23 private Mock roleDao = null; 24 25 27 protected void setUp() throws Exception { 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 { 36 User testData = new User("1"); 37 testData.getRoles().add(new Role("user")); 38 userDao.expects(once()).method("getUser") 40 .with(eq(new Long (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 { 49 User testData = new User("1"); 50 testData.getRoles().add(new Role("user")); 51 userDao.expects(once()).method("getUser") 53 .with(eq(new Long (1))).will(returnValue(testData)); 54 55 User user = userManager.getUser("1"); 56 user.setPhoneNumber("303-555-1212"); 57 userDao.verify(); 58 59 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 { 70 User user = new User(); 71 72 user = (User) populate(user); 75 76 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 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 userDao.reset(); 94 95 userDao.expects(once()).method("removeUser").with(eq(new Long (5))); 96 userManager.removeUser("5"); 97 userDao.verify(); 98 99 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 User user = new User("admin"); 110 user.setEmail("matt@raibledesigns.com"); 111 List users; 112 users = new ArrayList (); 113 114 users.add(user); 115 Exception ex = new DataIntegrityViolationException(""); 116 userDao.expects(once()).method("saveUser").with(same(user)) 117 .will(throwException(ex)); 118 119 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 |