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