KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > blandware > atleap > persistence > core > UserDAOTest


1 /*
2  * Copyright 2004 Blandware (http://www.blandware.com)
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

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 /**
25  * <p>This class is used to test current implementation of UserDAO interface</p>
26  * <p><a HREF="UserDAOTest.java.htm"><i>View Source</i></a></p>
27  *
28  * @author Sergey Zubtcovskii <a HREF="mailto:sergey.zubtcovskii@blandware.com">&lt;sergey.zubtcovskii@blandware.com&gt;</a>
29  * @version $Revision: 1.7 $ $Date: 2006/03/16 11:09:44 $
30  * @see com.blandware.atleap.persistence.core.UserDAO
31  */

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 JavaDoc {
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 JavaDoc {
45         super.tearDown();
46         userDAO = null;
47     }
48
49     public void testRetrieveUserInvalid() throws Exception JavaDoc {
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 JavaDoc {
55         User user = userDAO.retrieveUser("user");
56
57         assertNotNull(user);
58         assertEquals(1, user.getGroups().size());
59     }
60
61     public void testUpdateUser() throws Exception JavaDoc {
62         User user = userDAO.retrieveUser("user");
63
64         String JavaDoc 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 JavaDoc {
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         //add the same group twice - should result in no additional group
84
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         //add the same role twice - should result in no additional role
102
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 JavaDoc {
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 JavaDoc {
147         String JavaDoc 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