View Javadoc
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          // delete for repeated testing in same persistence
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              // Expected behavior
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          // TODO: fails, please fix
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         // all permissions connected with user 2 have only project 2 in relation
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 }