1 package org.itracker.persistence.dao;
2
3 import java.util.Date;
4 import java.util.List;
5 import java.util.Map;
6 import java.util.Set;
7
8 import org.itracker.AbstractDependencyInjectionTest;
9 import org.itracker.model.PermissionType;
10 import org.itracker.model.User;
11 import org.itracker.services.util.UserUtilities;
12 import org.junit.Ignore;
13 import org.junit.Test;
14 import org.springframework.dao.DataIntegrityViolationException;
15
16 public class UserDAOImplTest extends AbstractDependencyInjectionTest {
17
18 private UserDAO userDAO;
19
20 @Test
21 public void testCreateUser() {
22
23 User user = new User( "admin_test2","admin_test2", "admin firstname2", "admin lastname2", "", true );
24 user.setCreateDate( new Date() );
25 user.setLastModifiedDate(new Date());
26 userDAO.saveOrUpdate( user );
27
28 User foundUser = userDAO.findByLogin( "admin_test2" );
29 assertNotNull( foundUser );
30 assertEquals( "admin_test2", foundUser.getPassword() );
31 assertEquals( "admin firstname2", foundUser.getFirstName() );
32 assertEquals( "admin lastname2", foundUser.getLastName() );
33 assertTrue( foundUser.isSuperUser() );
34
35 userDAO.delete(user);
36 }
37
38 @Test
39 public void testCreateUserWithNotNullPK() {
40
41 try {
42 User user = new User( "admin_test3","admin_test3", "admin firstname3", "admin lastname3", "", true );
43 user.setId( -1 );
44 user.setCreateDate( new Date() );
45 userDAO.saveOrUpdate( user );
46 } catch( Exception e ) {
47
48 assertTrue( e instanceof DataIntegrityViolationException);
49 }
50
51 }
52
53 @Test
54 public void testFindUsersForProjectByAllPermissionTypeList() {
55
56 Integer[] permissionTypes = new Integer[]{
57 UserUtilities.PERMISSION_PRODUCT_ADMIN,
58 UserUtilities.PERMISSION_CREATE,
59 UserUtilities.PERMISSION_EDIT
60 };
61
62 List<User> users = userDAO.findUsersForProjectByAllPermissionTypeList(2, permissionTypes);
63
64 assertEquals(2, users.size());
65
66 assertContainsUser(userDAO.findByPrimaryKey(2), users);
67 assertContainsUser(userDAO.findByPrimaryKey(3), users);
68
69 }
70
71 @Test
72 @Ignore
73
74 public void testFindAll() {
75 List<User> users = userDAO.findAll();
76
77 assertNotNull(users);
78
79 assertEquals(6, users.size());
80 }
81
82 @Test
83 public void testFindActive() {
84 List<User> users = userDAO.findActive();
85
86 assertNotNull(users);
87 assertEquals(4, users.size());
88 }
89
90 @Test
91 public void testFindByStatus() {
92 List<User> users = userDAO.findByStatus(1);
93
94 assertNotNull(users);
95
96 assertEquals(4, users.size());
97 }
98
99 @Test
100 public void testFindSuperUsers() {
101 List<User> users = userDAO.findSuperUsers();
102
103 assertNotNull(users);
104 assertEquals(1, users.size());
105 }
106
107 @Test
108 public void testFindByRegistrationType() {
109 List<User> users = userDAO.findByRegistrationType(1);
110
111 assertNotNull(users);
112 assertEquals(5, users.size());
113 }
114
115 @Test
116 public void testGetUsersMapOfProjectsAndPermissionTypes() {
117 Map<Integer, Set<PermissionType>> map =
118 userDAO.getUsersMapOfProjectsAndPermissionTypes(userDAO.findByPrimaryKey(2));
119
120 assertNotNull( map );
121
122 assertEquals( "projects", 1, map.size() );
123 }
124
125 private void assertContainsUser(User user, List<User> users) {
126
127 if (!users.contains(user)) {
128 fail("User not found in the list.");
129 }
130
131 }
132
133 @Override
134 public void onSetUp() throws Exception {
135 super.onSetUp();
136
137 userDAO = (UserDAO)applicationContext.getBean( "userDAO" );
138 }
139
140 protected String[] getDataSetFiles() {
141 return new String[] {
142 "dataset/userpreferencesbean_dataset.xml",
143 "dataset/userbean_dataset.xml",
144 "dataset/projectbean_dataset.xml",
145 "dataset/permissionbean_dataset.xml"
146 };
147 }
148
149 protected String[] getConfigLocations() {
150 return new String[] { "application-context.xml" };
151 }
152
153 }