Package org.activiti.rest.service.api.identity

Source Code of org.activiti.rest.service.api.identity.UserCollectionResourceTest

/* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.activiti.rest.service.api.identity;

import java.util.ArrayList;
import java.util.List;

import org.activiti.engine.identity.User;
import org.activiti.engine.test.Deployment;
import org.activiti.rest.service.BaseSpringRestTestCase;
import org.activiti.rest.service.api.RestUrls;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ObjectNode;


/**
* @author Frederik Heremans
*/
public class UserCollectionResourceTest extends BaseSpringRestTestCase {

  /**
   * Test getting all users.
   */
  @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
      if(!savedUsers.isEmpty()) {
        for(User user : savedUsers) {
          identityService.deleteUser(user.getId());
        }
      }
    }
  }
 
  public void testCreateUser() throws Exception {
    try {
      ObjectNode requestNode = objectMapper.createObjectNode();
      requestNode.put("id", "testuser");
      requestNode.put("firstName", "Frederik");
      requestNode.put("lastName", "Heremans");
      requestNode.put("password", "test");
      requestNode.put("email", "no-reply@activiti.org");
     
      HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX +
          RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION, "testuser"));
      httpPost.setEntity(new StringEntity(requestNode.toString()));
      CloseableHttpResponse response = executeRequest(httpPost, HttpStatus.SC_CREATED);
      JsonNode responseNode = objectMapper.readTree(response.getEntity().getContent());
      closeResponse(response);
      assertNotNull(responseNode);
      assertEquals("testuser", responseNode.get("id").textValue());
      assertEquals("Frederik", responseNode.get("firstName").textValue());
      assertEquals("Heremans", responseNode.get("lastName").textValue());
      assertEquals("no-reply@activiti.org", responseNode.get("email").textValue());
      assertTrue(responseNode.get("url").textValue().endsWith(RestUrls.createRelativeResourceUrl(RestUrls.URL_USER, "testuser")));
     
      assertNotNull(identityService.createUserQuery().userId("testuser").singleResult());
    } finally {
      try {
        identityService.deleteUser("testuser");
      } catch(Throwable t) {
        // Ignore, user might not have been created by test
      }
    }
  }
 
  public void testCreateUserExceptions() throws Exception {
    // Create without ID
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("firstName", "Frederik");
    requestNode.put("lastName", "Heremans");
    requestNode.put("email", "no-reply@activiti.org");
   
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX +
        RestUrls.createRelativeResourceUrl(RestUrls.URL_USER_COLLECTION, "unexisting"));
    httpPost.setEntity(new StringEntity(requestNode.toString()));
    closeResponse(executeRequest(httpPost, HttpStatus.SC_BAD_REQUEST));
   
    // Create when user already exists
    // Create without ID
    requestNode = objectMapper.createObjectNode();
    requestNode.put("id", "kermit");
    requestNode.put("firstName", "Frederik");
    requestNode.put("lastName", "Heremans");
    requestNode.put("email", "no-reply@activiti.org");
   
    httpPost.setEntity(new StringEntity(requestNode.toString()));
    closeResponse(executeRequest(httpPost, HttpStatus.SC_CONFLICT));
  }
}
TOP

Related Classes of org.activiti.rest.service.api.identity.UserCollectionResourceTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.