1 21 22 package com.jaspersoft.jasperserver.api.metadata.view.service.impl; 23 24 import java.io.File ; 25 import java.util.List ; 26 29 import org.acegisecurity.GrantedAuthority; 31 import org.acegisecurity.userdetails.UserDetails; 32 import org.acegisecurity.userdetails.UserDetailsService; 33 import org.springframework.context.ApplicationContext; 34 import org.springframework.context.support.ClassPathXmlApplicationContext; 35 36 import com.jaspersoft.jasperserver.api.metadata.user.domain.Role; 37 import com.jaspersoft.jasperserver.api.metadata.user.domain.User; 38 import com.jaspersoft.jasperserver.api.metadata.user.service.UserAuthorityService; 39 40 import junit.framework.TestCase; 41 import junit.textui.TestRunner; 42 43 47 public class UserAuthorityServiceTest extends TestCase { 48 49 ApplicationContext factory; 50 UserAuthorityService userAuthService; 51 52 public UserAuthorityServiceTest(String name) { 53 super(name); 54 } 55 56 public static void main(String [] args) { 57 TestRunner.run(UserAuthorityServiceTest.class); 58 } 59 60 public void setUp() throws Exception { 61 System.out.println("Setup"); 62 ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext( 64 new String [] {"hibernateConfig.xml", "userAuthorityService.xml", "viewService.xml"}); 65 66 factory = (ApplicationContext) appContext; 67 68 71 String jdbcProperties = System.getProperty("test.hibernate.jdbc.properties"); 72 assertNotNull(jdbcProperties); 73 File cfgFile = new File (jdbcProperties); 75 assertTrue(cfgFile.exists()); 76 77 userAuthService = (UserAuthorityService) factory.getBean("userAuthorityService"); 78 } 79 80 public void tearDown() { 81 System.out.println("Tear down"); 82 86 } 87 88 public Role addRole(User user, String roleName) { 89 System.out.println("addRole"); 90 91 Role role = userAuthService.getRole(null, roleName); 92 93 if (role == null) { 94 role = userAuthService.newRole(null); 95 role.setRoleName(roleName); 97 role.setExternallyDefined(false); 98 99 userAuthService.putRole(null, role); 100 } 101 102 userAuthService.addRole(null, user, role); 103 return role; 104 } 105 106 private User findOrCreateUser(String username, String password) { 107 User workingUser = userAuthService.getUser(null, username); 108 if (workingUser == null) { 109 workingUser = userAuthService.newUser(null); 110 workingUser.setUsername(username); 111 workingUser.setPassword((password == null ? username : password)); 112 workingUser.setFullName(username + " user"); 113 workingUser.setEnabled(true); 114 workingUser.setExternallyDefined(false); 115 116 userAuthService.putUser(null, workingUser); 117 } 118 119 return workingUser; 120 } 121 122 public void testNewUser() { 123 System.out.println("testNewUser"); 124 User newUser = findOrCreateUser("newUser", "newPassword"); 125 assertTrue(newUser.getRoles() == null || newUser.getRoles().isEmpty()); 127 128 addRole(newUser, "newRole"); 129 assertTrue(newUser.getRoles() != null || newUser.getRoles().size() == 1); 130 131 } 132 133 public void testOrdinaryUser() { 134 System.out.println("testOrdinaryUser"); 135 User newUser = findOrCreateUser("joeuser", "joeuser"); 136 assertTrue(newUser.getRoles() == null || newUser.getRoles().isEmpty()); 138 139 addRole(newUser, "ROLE_USER"); 140 assertTrue(newUser.getRoles() != null || newUser.getRoles().size() == 1); 141 } 142 143 public void testAdminUser() { 144 System.out.println("testAdminUser"); 145 User newUser = findOrCreateUser("tomcat", null); 146 assertTrue(newUser.getRoles() == null || newUser.getRoles().isEmpty()); 148 149 addRole(newUser, "ROLE_USER"); 150 assertTrue(newUser.getRoles() != null || newUser.getRoles().size() == 1); 151 152 addRole(newUser, "ROLE_ADMINISTRATOR"); 153 assertTrue(newUser.getRoles() != null || newUser.getRoles().size() == 2); 154 155 } 156 157 public void testAnonymousUser() { 158 System.out.println("testAnonymousUser"); 159 User newUser = findOrCreateUser("anonymousUser", ""); 160 assertTrue(newUser.getRoles() == null || newUser.getRoles().isEmpty()); 162 163 addRole(newUser, "ROLE_ANONYMOUS"); 164 assertTrue("newUser.getRoles() wrong size", newUser.getRoles() != null || newUser.getRoles().size() == 1); 165 167 UserDetailsService userDetailsService = (UserDetailsService) userAuthService; 168 169 UserDetails details = userDetailsService.loadUserByUsername(newUser.getUsername()); 170 171 assertTrue("load by Acegi interface", details != null); 172 173 GrantedAuthority[] authorities = details.getAuthorities(); 174 assertTrue("authorities wrong size", authorities != null || authorities.length == 1); 175 assertTrue("right authority", authorities[0].getAuthority().equalsIgnoreCase("ROLE_ANONYMOUS")); 176 177 } 178 179 public void testUpdateUser() { 180 System.out.println("testUpdateUser"); 181 User newUser = findOrCreateUser("newUser", ""); 182 assertNotNull(newUser); 183 assertTrue(newUser.isEnabled()); 184 userAuthService.disableUser(null, newUser.getUsername()); 185 newUser = findOrCreateUser("newUser", ""); 186 assertTrue("error: user still disabled", !newUser.isEnabled()); 187 188 addRole(newUser, "anotherRole"); 189 190 Role r = userAuthService.getRole(null, "anotherRole"); 191 192 assertTrue("error: 'anotherRole' does not exist", r != null); 193 assertTrue("error: newUser does not have anotherRole", newUser.getRoles().contains(r)); 194 195 userAuthService.putUser(null, newUser); 196 197 newUser.removeRole(r); 198 assertTrue("error: newUser still contains anotherRole", !newUser.getRoles().contains(r)); 199 200 userAuthService.putUser(null, newUser); 201 202 newUser = userAuthService.getUser(null, "newUser"); 203 assertTrue("error: after retrieval - newUser REALLY still contains anotherRole", !newUser.getRoles().contains(r)); 204 205 } 206 207 public void testGetUsersAndRoles() { 208 System.out.println("testGetUsersAndRoles"); 209 212 List results = userAuthService.getUsers(null, null); 213 assertTrue("getUsers right size: expected at least 3, got " + results.size(), results.size() >= 3); 214 results = userAuthService.getRoles(null, null); 215 assertTrue("getRoles right size: expected at least 4, got " + results.size(), results.size() >= 4); 216 } 217 218 222 } 223 | Popular Tags |