1 package info.jtrac; 2 3 import info.jtrac.domain.Config; 4 import info.jtrac.domain.Counts; 5 import info.jtrac.domain.CountsHolder; 6 import info.jtrac.domain.Field; 7 import info.jtrac.domain.Item; 8 import info.jtrac.domain.Metadata; 9 import info.jtrac.domain.Space; 10 import info.jtrac.domain.User; 11 import info.jtrac.domain.State; 12 import info.jtrac.domain.UserSpaceRole; 13 import java.util.HashSet ; 14 import java.util.List ; 15 import java.util.Map ; 16 import java.util.Set ; 17 import javax.sql.DataSource ; 18 19 import org.acegisecurity.GrantedAuthority; 20 import org.acegisecurity.userdetails.UserDetails; 21 import org.springframework.test.AbstractTransactionalDataSourceSpringContextTests; 22 23 30 public class JtracTest extends AbstractTransactionalDataSourceSpringContextTests { 31 32 private Jtrac jtrac; 33 private JtracDao dao; 34 35 public JtracTest() { 36 setAutowireMode(AUTOWIRE_BY_NAME); 38 System.setProperty("jtrac.home", "target/home"); 39 } 40 41 public void setDao(JtracDao dao) { 43 this.dao = dao; 44 } 45 46 public void setJtrac(Jtrac jtrac) { 48 this.jtrac = jtrac; 49 } 50 51 protected String [] getConfigLocations() { 52 return new String [] { 53 "file:src/main/webapp/WEB-INF/applicationContext.xml", 54 "file:src/main/webapp/WEB-INF/applicationContext-lucene.xml" 55 }; 56 } 57 58 60 private Space getSpace() { 61 Space space = new Space(); 62 space.setPrefixCode("TEST"); 63 space.setName("Test Space"); 64 return space; 65 } 66 67 private Metadata getMetadata() { 68 Metadata metadata = new Metadata(); 69 String xmlString = "<metadata><fields>" 70 + "<field name='cusInt01' label='Test Label'/>" 71 + "<field name='cusInt02' label='Test Label 2'/>" 72 + "</fields></metadata>"; 73 metadata.setXmlString(xmlString); 74 return metadata; 75 } 76 77 79 public void testGeneratedPasswordIsAlwaysDifferent() { 80 String p1 = jtrac.generatePassword(); 81 String p2 = jtrac.generatePassword(); 82 assertTrue(!p1.equals(p2)); 83 } 84 85 public void testEncodeClearTextPassword() { 86 assertEquals("21232f297a57a5a743894a0e4a801fc3", jtrac.encodeClearText("admin")); 87 } 88 89 public void testMetadataInsertAndLoad() { 90 Metadata m1 = getMetadata(); 91 jtrac.storeMetadata(m1); 92 assertTrue(m1.getId() > 0); 93 Metadata m2 = jtrac.loadMetadata(m1.getId()); 94 assertTrue(m2 != null); 95 Map <Field.Name, Field> fields = m2.getFields(); 96 assertTrue(fields.size() == 2); 97 } 98 99 public void testUserInsertAndLoad() { 100 User user = new User(); 101 user.setLoginName("test"); 102 user.setEmail("test@jtrac.com"); 103 jtrac.storeUser(user); 104 User user1 = jtrac.loadUser("test"); 105 assertTrue(user1.getEmail().equals("test@jtrac.com")); 106 User user2 = dao.findUsersByEmail("test@jtrac.com").get(0); 107 assertTrue(user2.getLoginName().equals("test")); 108 } 109 110 public void testUserSpaceRolesInsert() { 111 Space space = getSpace(); 112 Metadata metadata = getMetadata(); 113 114 space.setMetadata(metadata); 115 jtrac.storeSpace(space); 116 117 User user = new User(); 118 user.setLoginName("test"); 119 120 user.addSpaceWithRole(space, "ROLE_TEST"); 121 jtrac.storeUser(user); 122 123 User u1 = jtrac.loadUser("test"); 124 125 GrantedAuthority[] gas = u1.getAuthorities(); 126 assertEquals(2, gas.length); 127 assertEquals("ROLE_USER", gas[0].getAuthority()); 128 assertEquals("ROLE_TEST_TEST", gas[1].getAuthority()); 129 130 List <UserSpaceRole> userSpaceRoles = jtrac.findUserRolesForSpace(space.getId()); 131 assertEquals(1, userSpaceRoles.size()); 132 UserSpaceRole usr = userSpaceRoles.get(0); 133 assertEquals("test", usr.getUser().getLoginName()); 134 assertEquals("ROLE_TEST", usr.getRoleKey()); 135 136 List <User> users = jtrac.findUsersForUser(u1); 137 assertEquals(1, users.size()); 138 139 List <User> users2 = jtrac.findUsersForSpace(space.getId()); 140 assertEquals(1, users2.size()); 141 142 } 143 144 public void testConfigStoreAndLoad() { 145 Config config = new Config("testParam", "testValue"); 146 jtrac.storeConfig(config); 147 String value = jtrac.loadConfig("testParam"); 148 assertEquals("testValue", value); 149 } 150 151 public void testStoreAndLoadUserWithAdminRole() { 152 User user = new User(); 153 user.setLoginName("test"); 154 user.addSpaceWithRole(null, "ROLE_ADMIN"); 155 jtrac.storeUser(user); 156 157 UserDetails ud = jtrac.loadUserByUsername("test"); 158 159 Set <String > set = new HashSet <String >(); 160 for (GrantedAuthority ga : ud.getAuthorities()) { 161 set.add(ga.getAuthority()); 162 } 163 164 assertEquals(2, set.size()); 165 assertTrue(set.contains("ROLE_USER")); 166 assertTrue(set.contains("ROLE_ADMIN")); 167 168 } 169 170 public void testDefaultAdminUserHasAdminRole() { 171 UserDetails ud = jtrac.loadUserByUsername("admin"); 172 Set <String > set = new HashSet <String >(); 173 for (GrantedAuthority ga : ud.getAuthorities()) { 174 set.add(ga.getAuthority()); 175 } 176 assertEquals(2, set.size()); 177 assertTrue(set.contains("ROLE_USER")); 178 assertTrue(set.contains("ROLE_ADMIN")); 179 } 180 181 public void testItemInsertAndCounts() { 182 Space s = getSpace(); 183 jtrac.storeSpace(s); 184 User u = new User(); 185 u.setLoginName("test"); 186 u.addSpaceWithRole(s, "DEFAULT"); 187 jtrac.storeUser(u); 188 Item i = new Item(); 189 i.setSpace(s); 190 i.setAssignedTo(u); 191 i.setLoggedBy(u); 192 i.setStatus(State.CLOSED); 193 jtrac.storeItem(i, null); 194 assertEquals(1, i.getSequenceNum()); 195 196 CountsHolder ch = jtrac.loadCountsForUser(u); 197 assertEquals(1, ch.getTotalAssignedToMe()); 198 assertEquals(1, ch.getTotalLoggedByMe()); 199 assertEquals(1, ch.getTotalTotal()); 200 201 Counts c = ch.getCounts().get(s.getId()); 202 assertEquals(1, c.getLoggedByMe()); 203 assertEquals(1, c.getAssignedToMe()); 204 assertEquals(1, c.getTotal()); 205 } 206 207 public void testRemoveSpaceRoleDoesNotOrphanDatabaseRecord() { 208 Space space = getSpace(); 209 jtrac.storeSpace(space); 210 long spaceId = space.getId(); 211 User user = new User(); 212 user.setLoginName("test"); 213 user.addSpaceWithRole(space, "ROLE_ADMIN"); 214 jtrac.storeUser(user); 215 long id = jdbcTemplate.queryForLong("select id from user_space_roles where space_id = " + spaceId); 216 UserSpaceRole usr = jtrac.loadUserSpaceRole(id); 217 assertEquals(spaceId, usr.getSpace().getId()); 218 jtrac.removeUserSpaceRole(usr); 219 endTransaction(); 220 assertEquals(0, jdbcTemplate.queryForInt("select count(0) from user_space_roles where space_id = " + spaceId)); 221 } 222 223 public void testFindSpacesWhereGuestAllowed() { 224 Space space = getSpace(); 225 space.setGuestAllowed(true); 226 jtrac.storeSpace(space); 227 assertEquals(1, jtrac.findSpacesWhereGuestAllowed().size()); 228 } 229 230 public void testRenameSpaceRole() { 231 Space space = getSpace(); 232 jtrac.storeSpace(space); 233 User u = new User(); 234 u.setLoginName("test"); 235 u.addSpaceWithRole(space, "DEFAULT"); 236 jtrac.storeUser(u); 237 assertEquals(1, jdbcTemplate.queryForInt("select count(0) from user_space_roles where role_key = 'DEFAULT'")); 238 jtrac.bulkUpdateRenameSpaceRole(space, "DEFAULT", "NEWDEFAULT"); 239 assertEquals(0, jdbcTemplate.queryForInt("select count(0) from user_space_roles where role_key = 'DEFAULT'")); 240 assertEquals(1, jdbcTemplate.queryForInt("select count(0) from user_space_roles where role_key = 'NEWDEFAULT'")); 241 242 } 243 244 public void testGetItemAsHtmlDoesNotThrowException() { 245 Config config = new Config("mail.server.host", "dummyhost"); 246 jtrac.storeConfig(config); 247 Space s = getSpace(); 249 jtrac.storeSpace(s); 250 User u = new User(); 251 u.setLoginName("test"); 252 u.setEmail("test"); 253 u.addSpaceWithRole(s, "DEFAULT"); 254 jtrac.storeUser(u); 255 Item i = new Item(); 256 i.setSpace(s); 257 i.setAssignedTo(u); 258 i.setLoggedBy(u); 259 i.setStatus(State.CLOSED); 260 jtrac.storeItem(i, null); 262 } 263 264 } 265 | Popular Tags |