1 16 package com.blandware.atleap.persistence.core; 17 18 import com.blandware.atleap.model.core.Group; 19 import com.blandware.atleap.model.core.Role; 20 import com.blandware.atleap.model.core.User; 21 import com.blandware.atleap.model.core.UserCookie; 22 import org.springframework.dao.DataAccessException; 23 24 32 public class UserDAOTest extends BaseDAOTestCase { 33 private UserDAO userDAO = null; 34 private RoleDAO roleDAO = null; 35 private GroupDAO groupDAO = null; 36 37 protected void setUp() throws Exception { 38 super.setUp(); 39 userDAO = (UserDAO) ctx.getBean("userDAO"); 40 roleDAO = (RoleDAO) ctx.getBean("roleDAO"); 41 groupDAO = (GroupDAO) ctx.getBean("groupDAO"); 42 } 43 44 protected void tearDown() throws Exception { 45 super.tearDown(); 46 userDAO = null; 47 } 48 49 public void testRetrieveUserInvalid() throws Exception { 50 User user = userDAO.retrieveUser("badusername"); 51 assertNull("User with name 'badusername' has been found in database, failing test...", user); 52 } 53 54 public void testRetrieveUser() throws Exception { 55 User user = userDAO.retrieveUser("user"); 56 57 assertNotNull(user); 58 assertEquals(1, user.getGroups().size()); 59 } 60 61 public void testUpdateUser() throws Exception { 62 User user = userDAO.retrieveUser("user"); 63 64 String address = "new address"; 65 user.setAddress(address); 66 67 userDAO.updateUser(user); 68 69 assertEquals(user.getAddress(), address); 70 } 71 72 public void testAddUserRole() throws Exception { 73 User user = userDAO.retrieveUser("user"); 74 75 assertEquals(1, user.getGroups().size()); 76 77 Group group = groupDAO.retrieveGroup("admins"); 78 group.addUser(user); 79 userDAO.updateUser(user); 80 81 assertEquals(2, user.getGroups().size()); 82 83 group.addUser(user); 85 userDAO.updateUser(user); 86 87 assertEquals("Same group added twice", 2, user.getGroups().size()); 88 89 group.removeUser(user); 90 userDAO.updateUser(user); 91 92 assertEquals(1, user.getGroups().size()); 93 94 int oldRASize = user.getRolesAssociations().size(); 95 Role role = roleDAO.retrieveRole("core-commons-login"); 96 user.addFreeRole(role); 97 userDAO.updateUser(user); 98 99 assertEquals(oldRASize + 1, user.getRolesAssociations().size()); 100 101 user.addFreeRole(role); 103 userDAO.updateUser(user); 104 105 assertEquals("Same role added twice", oldRASize + 1, user.getRolesAssociations().size()); 106 107 user.removeFreeRole(role); 108 userDAO.updateUser(user); 109 110 assertEquals(oldRASize, user.getRolesAssociations().size()); 111 } 112 113 public void testCreateAndDeleteUser() throws Exception { 114 Group userGroup = groupDAO.retrieveGroup("users"); 115 116 User user = new User(); 117 user.setName("vpupkin"); 118 user.setPassword("testpassword"); 119 user.setFirstName("Vasya"); 120 user.setLastName("Pupkin"); 121 user.setCity("Izhevsk"); 122 user.setProvince("Udmurtia"); 123 user.setCountry("Russia"); 124 user.setPostalCode("000000"); 125 user.setEmail("testuser@atleap.org"); 126 user.setWebsite("http://somewhere.net"); 127 user.setEnabled(Boolean.TRUE); 128 user.addFreeRole(roleDAO.retrieveRole("core-commons-login")); 129 userGroup.addUser(user); 130 131 userDAO.createUser(user); 132 133 assertNotNull(user.getName()); 134 assertEquals("testpassword", user.getPassword()); 135 136 userDAO.deleteUser(user); 137 138 try { 139 user = userDAO.retrieveUser("vpupkin"); 140 fail("retrieveUser should throw DataAccessException, because user has been previously deleted in the same session"); 141 } catch ( DataAccessException e ) { 142 assertNotNull(e); 143 } 144 } 145 146 public void testSaveAndDeleteUserCookie() throws Exception { 147 String cookieId = "BA67E786-C031-EA40-2769-863BB30B31EC"; 148 UserCookie cookie = new UserCookie(); 149 User user = userDAO.retrieveUser("admin"); 150 cookie.setCookieId(cookieId); 151 userDAO.createUserCookie(cookie, user); 152 cookie = userDAO.retrieveUserCookie(cookie.getCookieId()); 153 assertEquals(cookieId, cookie.getCookieId()); 154 155 userDAO.deleteUserCookies(cookie.getUser().getName()); 156 157 cookie = userDAO.retrieveUserCookie(cookie.getCookieId()); 158 159 assertNull(cookie); 160 } 161 } | Popular Tags |