*/
@Deployment
public void testGetUsers() throws Exception {
List<User> savedUsers = new ArrayList<User>();
try {
User user1 = identityService.newUser("testuser");
user1.setFirstName("Fred");
user1.setLastName("McDonald");
user1.setEmail("no-reply@activiti.org");
identityService.saveUser(user1);
savedUsers.add(user1);
User user2 = identityService.newUser("anotherUser");
user2.setFirstName("Tijs");
user2.setLastName("Barrez");
user2.setEmail("no-reply@alfresco.org");
identityService.saveUser(user2);
savedUsers.add(user2);
User user3 = identityService.createUserQuery().userId("kermit").singleResult();
assertNotNull(user3);
// Test filter-less
String url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION);
assertResultsPresentInDataResponse(url, user1.getId(), user2.getId(), user3.getId());
// Test based on userId
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?id=testuser";
assertResultsPresentInDataResponse(url, user1.getId());
// Test based on firstName
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?firstName=Tijs";
assertResultsPresentInDataResponse(url, user2.getId());
// Test based on lastName
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?lastName=Barrez";
assertResultsPresentInDataResponse(url, user2.getId());
// Test based on email
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?email=no-reply@activiti.org";
assertResultsPresentInDataResponse(url, user1.getId());
// Test based on firstNameLike
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?firstNameLike=" + encode("%ij%");
assertResultsPresentInDataResponse(url, user2.getId());
// Test based on lastNameLike
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?lastNameLike=" + encode("%rez");
assertResultsPresentInDataResponse(url, user2.getId());
// Test based on emailLike
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?emailLike=" + encode("no-reply@activiti.org%");
assertResultsPresentInDataResponse(url, user1.getId());
// Test based on memberOfGroup
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?memberOfGroup=admin";
assertResultsPresentInDataResponse(url, user3.getId());
// Test based on potentialStarter
String processDefinitionId = repositoryService.createProcessDefinitionQuery().processDefinitionKey("simpleProcess")
.singleResult().getId();
repositoryService.addCandidateStarterUser(processDefinitionId, "kermit");
url = RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION) + "?potentialStarter=" + processDefinitionId;
assertResultsPresentInDataResponse(url, user3.getId());
} finally {
// Delete user after test passes or fails