KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > dao > UserDaoTest


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 JavaDoc {
23         try {
24             dao.getUser(new Long JavaDoc(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 JavaDoc {
32         User user = dao.getUser(new Long JavaDoc(1));
33
34         assertNotNull(user);
35         assertEquals(1, user.getRoles().size());
36         assertTrue(user.isEnabled());
37     }
38
39     public void testUpdateUser() throws Exception JavaDoc {
40         User user = dao.getUser(new Long JavaDoc(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         // verify that violation occurs when adding new user with same username
51
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 JavaDoc {
65         User user = dao.getUser(new Long JavaDoc(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         //add the same role twice - should result in no additional role
75
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 JavaDoc {
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