1 package org.appfuse.dao; 2 3 import org.appfuse.Constants; 4 import org.appfuse.model.Address; 5 import org.appfuse.model.Role; 6 import org.appfuse.model.User; 7 import org.springframework.dao.DataAccessException; 8 import org.springframework.dao.DataIntegrityViolationException; 9 10 public class UserDaoTest extends BaseDaoTestCase { 11 private UserDao dao = null; 12 private RoleDao rdao = null; 13 14 public void setUserDao(UserDao dao) { 15 this.dao = dao; 16 } 17 18 public void setRoleDao(RoleDao rdao) { 19 this.rdao = rdao; 20 } 21 22 public void testGetUserInvalid() throws Exception { 23 try { 24 dao.getUser(new Long (1000)); 25 fail("'badusername' found in database, failing test..."); 26 } catch (DataAccessException d) { 27 assertTrue(d != null); 28 } 29 } 30 31 public void testGetUser() throws Exception { 32 User user = dao.getUser(new Long (1)); 33 34 assertNotNull(user); 35 assertEquals(1, user.getRoles().size()); 36 assertTrue(user.isEnabled()); 37 } 38 39 public void testUpdateUser() throws Exception { 40 User user = dao.getUser(new Long (1)); 41 42 Address address = user.getAddress(); 43 address.setAddress("new address"); 44 45 dao.saveUser(user); 46 47 assertEquals(user.getAddress(), address); 48 assertEquals("new address", user.getAddress().getAddress()); 49 50 user.setId(null); 52 53 endTransaction(); 54 55 try { 56 dao.saveUser(user); 57 fail("saveUser didn't throw DataIntegrityViolationException"); 58 } catch (DataIntegrityViolationException e) { 59 assertNotNull(e); 60 log.debug("expected exception: " + e.getMessage()); 61 } 62 } 63 64 public void testAddUserRole() throws Exception { 65 User user = dao.getUser(new Long (1)); 66 assertEquals(1, user.getRoles().size()); 67 68 Role role = rdao.getRoleByName(Constants.ADMIN_ROLE); 69 user.addRole(role); 70 dao.saveUser(user); 71 72 assertEquals(2, user.getRoles().size()); 73 74 user.addRole(role); 76 dao.saveUser(user); 77 78 assertEquals("more than 2 roles", 2, user.getRoles().size()); 79 80 user.getRoles().remove(role); 81 dao.saveUser(user); 82 83 assertEquals(1, user.getRoles().size()); 84 } 85 86 public void testAddAndRemoveUser() throws Exception { 87 User user = new User("testuser"); 88 user.setPassword("testpass"); 89 user.setFirstName("Test"); 90 user.setLastName("Last"); 91 Address address = new Address(); 92 address.setCity("Denver"); 93 address.setProvince("CO"); 94 address.setCountry("USA"); 95 address.setPostalCode("80210"); 96 user.setAddress(address); 97 user.setEmail("testuser@appfuse.org"); 98 user.setWebsite("http://raibledesigns.com"); 99 100 Role role = rdao.getRoleByName(Constants.USER_ROLE); 101 assertNotNull(role.getId()); 102 user.addRole(role); 103 104 dao.saveUser(user); 105 106 assertNotNull(user.getId()); 107 assertEquals("testpass", user.getPassword()); 108 109 dao.removeUser(user.getId()); 110 111 try { 112 user = dao.getUser(user.getId()); 113 fail("getUser didn't throw DataAccessException"); 114 } catch (DataAccessException d) { 115 assertNotNull(d); 116 } 117 } 118 } 119 | Popular Tags |