1 17 package org.alfresco.webservice.test; 18 19 import org.alfresco.webservice.administration.NewUserDetails; 20 import org.alfresco.webservice.administration.UserDetails; 21 import org.alfresco.webservice.administration.UserQueryResults; 22 import org.alfresco.webservice.repository.RepositoryServiceLocator; 23 import org.alfresco.webservice.types.NamedValue; 24 import org.alfresco.webservice.types.QueryConfiguration; 25 import org.alfresco.webservice.util.AuthenticationUtils; 26 import org.alfresco.webservice.util.Constants; 27 import org.alfresco.webservice.util.WebServiceFactory; 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 31 36 public class AdministrationServiceSystemTest extends BaseWebServiceSystemTest 37 { 38 private static Log logger = LogFactory.getLog(AdministrationServiceSystemTest.class); 39 40 public void testGetUsersBatching() throws Exception 41 { 42 int batchSize = 5; 43 QueryConfiguration queryCfg = new QueryConfiguration(); 44 queryCfg.setFetchSize(batchSize); 45 WebServiceFactory.getAdministrationService().setHeader( 46 new RepositoryServiceLocator().getServiceName().getNamespaceURI(), 47 "QueryHeader", 48 queryCfg); 49 50 String homeFolder = store.getScheme().getValue() + "://" + store.getAddress() + "/" + folderReference.getUuid(); 52 String one = Long.toString(System.currentTimeMillis()); 53 String two = one + "2"; 54 NewUserDetails[] newUsers = new NewUserDetails[] { 55 new NewUserDetails( 56 "user" + one, 57 "password" + one, 58 createPersonProperties(homeFolder, "first" + one, "middle" + one, "last" + one, "email" + one, "org" + one)), 59 new NewUserDetails( 60 "user" + two, 61 "password2" + two, 62 createPersonProperties(homeFolder, "first" + two, "middle" + two, "last" + two, "email" + two, "org" + two)) }; 63 64 WebServiceFactory.getAdministrationService().createUsers(newUsers); 66 67 UserQueryResults results = WebServiceFactory.getAdministrationService().queryUsers(null); 68 assertNotNull(results); 69 70 if (logger.isDebugEnabled() == true) 71 { 72 while(true) 73 { 74 System.out.println("Next batch"); 75 System.out.println("Session Id: " + results.getQuerySession()); 76 77 for (UserDetails details : results.getUserDetails()) 78 { 79 System.out.println("User name: " + details.getUserName()); 80 } 81 82 if (results.getQuerySession() == null) 83 { 84 break; 85 } 86 results = WebServiceFactory.getAdministrationService().fetchMoreUsers(results.getQuerySession()); 87 } 88 } 89 90 91 String [] userNames = new String []{"user" + one, "user" + two}; 93 WebServiceFactory.getAdministrationService().deleteUsers(userNames); 94 } 95 96 99 public void testCreateGetDeleteUser() throws Exception 100 { 101 try 103 { 104 WebServiceFactory.getAdministrationService().getUser("badUser"); 105 fail("An exception should have been raised since we are trying to get hold of a user that does not exist."); 106 } 107 catch (Exception exception) 108 { 109 } 111 112 String homeFolder = store.getScheme().getValue() + "://" + store.getAddress() + "/" + folderReference.getUuid(); 114 String one = Long.toString(System.currentTimeMillis()); 115 String two = one + "2"; 116 NewUserDetails[] newUsers = new NewUserDetails[] { 117 new NewUserDetails( 118 "user" + one, 119 "password" + one, 120 createPersonProperties(homeFolder, "first" + one, "middle" + one, "last" + one, "email" + one, "org" + one)), 121 new NewUserDetails( 122 "user" + two, 123 "password2" + two, 124 createPersonProperties(homeFolder, "first" + two, "middle" + two, "last" + two, "email" + two, "org" + two)) }; 125 126 UserDetails[] userDetails = WebServiceFactory.getAdministrationService().createUsers(newUsers); 128 129 assertNotNull(userDetails); 131 assertEquals(2, userDetails.length); 132 String name = one; 133 for (UserDetails result : userDetails) 134 { 135 NamedValue[] properties = result.getProperties(); 136 for (NamedValue value : properties) 137 { 138 if (value.getName().equals(Constants.PROP_USER_FIRSTNAME) == true) 139 { 140 assertEquals("first" + name, value.getValue()); 141 } 142 else if (value.getName().equals(Constants.PROP_USER_MIDDLENAME) == true) 143 { 144 assertEquals("middle" + name, value.getValue()); 145 } 146 else if (value.getName().equals(Constants.PROP_USER_LASTNAME) == true) 147 { 148 assertEquals("last" + name, value.getValue()); 149 } 150 else if (value.getName().equals(Constants.PROP_USER_HOMEFOLDER) == true) 151 { 152 assertEquals(homeFolder, value.getValue()); 153 } 154 else if (value.getName().equals(Constants.PROP_USER_EMAIL) == true) 155 { 156 assertEquals("email" + name, value.getValue()); 157 } 158 else if (value.getName().equals(Constants.PROP_USER_ORGID) == true) 159 { 160 assertEquals("org" + name, value.getValue()); 161 } 162 else if (value.getName().equals(Constants.PROP_USERNAME) == true) 163 { 164 assertEquals("user" + name, value.getValue()); 165 } 166 } 167 name = two; 168 } 169 170 UserDetails userDetails2 = WebServiceFactory.getAdministrationService().getUser("user" + one); 172 173 assertNotNull(userDetails2); 175 assertEquals("user" + one, userDetails2.getUserName()); 176 NamedValue[] properties = userDetails2.getProperties(); 177 for (NamedValue value : properties) 178 { 179 if (value.getName().equals(Constants.PROP_USER_FIRSTNAME) == true) 180 { 181 assertEquals("first" + one, value.getValue()); 182 } 183 else if (value.getName().equals(Constants.PROP_USER_MIDDLENAME) == true) 184 { 185 assertEquals("middle" + one, value.getValue()); 186 } 187 else if (value.getName().equals(Constants.PROP_USER_LASTNAME) == true) 188 { 189 assertEquals("last" + one, value.getValue()); 190 } 191 else if (value.getName().equals(Constants.PROP_USER_HOMEFOLDER) == true) 192 { 193 assertEquals(homeFolder, value.getValue()); 194 } 195 else if (value.getName().equals(Constants.PROP_USER_EMAIL) == true) 196 { 197 assertEquals("email" + one, value.getValue()); 198 } 199 else if (value.getName().equals(Constants.PROP_USER_ORGID) == true) 200 { 201 assertEquals("org" + one, value.getValue()); 202 } 203 else if (value.getName().equals(Constants.PROP_USERNAME) == true) 204 { 205 assertEquals("user" + one, value.getValue()); 206 } 207 } 208 209 String [] userNames = new String []{"user" + one, "user" + two}; 211 WebServiceFactory.getAdministrationService().deleteUsers(userNames); 212 213 try 215 { 216 WebServiceFactory.getAdministrationService().getUser("user" + two); 217 fail("An exception should have been raised since we are trying to get hold of a user that has previously been deleted."); 218 } 219 catch (Exception exception) 220 { 221 } 223 } 224 225 228 233 236 public void testCreateAndAuthenticateNewUser() throws Exception 237 { 238 String homeFolder = store.getScheme().getValue() + "://" + store.getAddress() + "/" + folderReference.getUuid(); 240 String one = Long.toString(System.currentTimeMillis()); 241 NewUserDetails[] newUsers = new NewUserDetails[] 242 { 243 new NewUserDetails( 244 "user" + one, 245 "password" + one, 246 createPersonProperties(homeFolder, "first" + one, "middle" + one, "last" + one, "email" + one, "org" + one)) 247 }; 248 249 UserDetails[] userDetails = WebServiceFactory.getAdministrationService().createUsers(newUsers); 251 assertNotNull(userDetails); 252 assertEquals(1, userDetails.length); 253 254 AuthenticationUtils.endSession(); 256 257 AuthenticationUtils.startSession("user" + one, "password" + one); 259 260 AuthenticationUtils.endSession(); 262 AuthenticationUtils.startSession(USERNAME, PASSWORD); 263 264 WebServiceFactory.getAdministrationService().changePassword("user" + one, "password" + one, "newPassword"); 275 276 AuthenticationUtils.endSession(); 278 AuthenticationUtils.startSession("user" + one, "newPassword"); 279 } 280 281 private NamedValue[] createPersonProperties( 282 String homeFolder, 283 String firstName, 284 String middleName, 285 String lastName, 286 String email, 287 String orgId) 288 { 289 return new NamedValue[] { 291 new NamedValue(Constants.PROP_USER_HOMEFOLDER, homeFolder), 292 new NamedValue(Constants.PROP_USER_FIRSTNAME, firstName), 293 new NamedValue(Constants.PROP_USER_MIDDLENAME, middleName), 294 new NamedValue(Constants.PROP_USER_LASTNAME, lastName), 295 new NamedValue(Constants.PROP_USER_EMAIL, email), 296 new NamedValue(Constants.PROP_USER_ORGID, orgId) }; 297 } 298 299 } 300 | Popular Tags |