org.apache.http.client.methods.CloseableHttpResponse.getEntity() - java examples

Here are the examples of the java api org.apache.http.client.methods.CloseableHttpResponse.getEntity() taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

155 Examples 7

19 View Complete Implementation : TaskVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test creating a single task variable using a binary stream. POST runtime/tasks/{taskId}/variables
 */
public void testCreateSingleBinaryTaskVariable() throws Exception {
    try {
        Task task = taskService.newTask();
        taskService.saveTask(task);
        InputStream binaryContent = new ByteArrayInputStream("This is binary content".getBytes());
        // Add name, type and scope
        Map<String, String> additionalFields = new HashMap<>();
        additionalFields.put("name", "binaryVariable");
        additionalFields.put("type", "binary");
        additionalFields.put("scope", "local");
        HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_VARIABLES_COLLECTION, task.getId()));
        httpPost.setEnreplacedy(HttpMultipartHelper.getMultiPartEnreplacedy("value", "application/octet-stream", binaryContent, additionalFields));
        CloseableHttpResponse response = executeBinaryRequest(httpPost, HttpStatus.SC_CREATED);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        replacedertNotNull(responseNode);
        replacedertEquals("binaryVariable", responseNode.get("name").asText());
        replacedertTrue(responseNode.get("value").isNull());
        replacedertEquals("local", responseNode.get("scope").asText());
        replacedertEquals("binary", responseNode.get("type").asText());
        replacedertNotNull(responseNode.get("valueUrl"));
        replacedertTrue(responseNode.get("valueUrl").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_VARIABLE_DATA, task.getId(), "binaryVariable")));
        // Check actual value of variable in engine
        Object variableValue = taskService.getVariableLocal(task.getId(), "binaryVariable");
        replacedertNotNull(variableValue);
        replacedertTrue(variableValue instanceof byte[]);
        replacedertEquals("This is binary content", new String((byte[]) variableValue));
    } finally {
        // Clean adhoc-tasks even if test fails
        List<Task> tasks = taskService.createTaskQuery().list();
        for (Task task : tasks) {
            taskService.deleteTask(task.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test updating a single process variable, including "not found" check.
 *
 * PUT cmmn-runtime/case-instances/{caseInstanceId}/variables/{variableName}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testUpdateProcessVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").variables(Collections.singletonMap("overlappingVariable", (Object) "processValue")).start();
    runtimeService.setVariable(caseInstance.getId(), "myVar", "value");
    // Update variable
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("name", "myVar");
    requestNode.put("value", "updatedValue");
    requestNode.put("type", "string");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "myVar"));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("updatedValue", responseNode.get("value").asText());
    // Try updating with mismatch between URL and body variableName
    requestNode.put("name", "unexistingVariable");
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    closeResponse(executeRequest(httpPut, HttpStatus.SC_BAD_REQUEST));
    // Try updating unexisting property
    requestNode.put("name", "unexistingVariable");
    httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "unexistingVariable"));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    closeResponse(executeRequest(httpPut, HttpStatus.SC_OK));
}

19 View Complete Implementation : CaseInstanceVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test creating multiple case variables in a single call. POST cmmn-runtime/case-instance/{caseInstanceId}/variables?override=true
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testCreateMultipleCaseVariablesWithOverride() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    runtimeService.setVariable(caseInstance.getId(), "stringVariable", "initialValue");
    ArrayNode requestNode = objectMapper.createArrayNode();
    // String variable
    ObjectNode stringVarNode = requestNode.addObject();
    stringVarNode.put("name", "stringVariable");
    stringVarNode.put("value", "simple string value");
    stringVarNode.put("type", "string");
    ObjectNode anotherVariable = requestNode.addObject();
    anotherVariable.put("name", "stringVariable2");
    anotherVariable.put("value", "another string value");
    anotherVariable.put("type", "string");
    // Create local variables with a single request
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_COLLECTION, caseInstance.getId()));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_CREATED);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertTrue(responseNode.isArray());
    replacedertEquals(2, responseNode.size());
    // Check if engine has correct variables set
    Map<String, Object> variables = runtimeService.getVariables(caseInstance.getId());
    replacedertEquals(2, variables.size());
    replacedertEquals("simple string value", variables.get("stringVariable"));
    replacedertEquals("another string value", variables.get("stringVariable2"));
}

19 View Complete Implementation : HistoricTaskInstanceIdentityLinkCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test querying historic task instance. GET cmmn-history/historic-task-instances/{taskId}/idenreplacedylinks
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/twoHumanTaskCase.cmmn" })
public void testGetIdenreplacedyLinks() throws Exception {
    HashMap<String, Object> caseVariables = new HashMap<>();
    caseVariables.put("stringVar", "Azerty");
    caseVariables.put("intVar", 67890);
    caseVariables.put("booleanVar", false);
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("myCase").variables(caseVariables).start();
    Task task = taskService.createTaskQuery().caseInstanceId(caseInstance.getId()).singleResult();
    taskService.complete(task.getId());
    task = taskService.createTaskQuery().caseInstanceId(caseInstance.getId()).singleResult();
    taskService.setreplacedignee(task.getId(), "fozzie");
    taskService.setOwner(task.getId(), "test");
    String url = CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_HISTORIC_TASK_INSTANCE_IDENreplacedY_LINKS, task.getId());
    // Do the actual call
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + url), HttpStatus.SC_OK);
    // Check status and size
    JsonNode linksArray = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    String taskId = task.getId();
    replacedertThatJson(linksArray).when(Option.IGNORING_ARRAY_ORDER).isEqualTo("[" + "  {" + "    'type': 'replacedignee'," + "    'userId': 'fozzie'," + "    'groupId': null," + "    'taskId': '" + taskId + "'," + "    'taskUrl': '${json-unit.any-string}'," + "    'caseInstanceId': null," + "    'caseInstanceUrl': null" + "  }," + "  {" + "    'type': 'owner'," + "    'userId': 'test'," + "    'groupId': null," + "    'taskId': '" + taskId + "'," + "    'taskUrl': '${json-unit.any-string}'," + "    'caseInstanceId': null," + "    'caseInstanceUrl': null" + "  }," + "  {" + "    'type': 'candidate'," + "    'userId': 'test'," + "    'groupId': null," + "    'taskId': '" + taskId + "'," + "    'taskUrl': '${json-unit.any-string}'," + "    'caseInstanceId': null," + "    'caseInstanceUrl': null" + "  }," + "  {" + "    'type': 'candidate'," + "    'userId': 'test2'," + "    'groupId': null," + "    'taskId': '" + taskId + "'," + "    'taskUrl': '${json-unit.any-string}'," + "    'caseInstanceId': null," + "    'caseInstanceUrl': null" + "  }," + "  {" + "    'type': 'candidate'," + "    'userId': null," + "    'groupId': 'test'," + "    'taskId': '" + taskId + "'," + "    'taskUrl': '${json-unit.any-string}'," + "    'caseInstanceId': null," + "    'caseInstanceUrl': null" + "  }" + "]");
}

19 View Complete Implementation : CaseInstanceVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting all case variables. GET cmmn-runtime/case-instances/{caseInstanceId}/variables
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseVariables() throws Exception {
    Calendar cal = Calendar.getInstance();
    // Start process with all types of variables
    Map<String, Object> caseVariables = new HashMap<>();
    caseVariables.put("stringProcVar", "This is a ProcVariable");
    caseVariables.put("intProcVar", 123);
    caseVariables.put("longProcVar", 1234L);
    caseVariables.put("shortProcVar", (short) 123);
    caseVariables.put("doubleProcVar", 99.99);
    caseVariables.put("booleanProcVar", Boolean.TRUE);
    caseVariables.put("dateProcVar", cal.getTime());
    caseVariables.put("byteArrayProcVar", "Some raw bytes".getBytes());
    caseVariables.put("overlappingVariable", "process-value");
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").variables(caseVariables).start();
    // Request all variables (no scope provides) which include global an local
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_COLLECTION, caseInstance.getId())), HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertTrue(responseNode.isArray());
    replacedertEquals(9, responseNode.size());
}

19 View Complete Implementation : DeploymentResourceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single resource, deployed in a deployment. GET repository/deployments/{deploymentId}/resources/{resourceId}
 */
public void testGetDeploymentResource() throws Exception {
    try {
        String rawResourceName = "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn";
        CmmnDeployment deployment = repositoryService.createDeployment().name("Deployment 1").addClreplacedpathResource(rawResourceName).addInputStream("test.txt", new ByteArrayInputStream("Test content".getBytes())).deploy();
        // Build up the URL manually to make sure resource-id gets encoded correctly as one piece
        HttpGet httpGet = new HttpGet(buildUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE, deployment.getId(), encode(rawResourceName)));
        httpGet.addHeader(new BasicHeader(HttpHeaders.ACCEPT, "application/json"));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        // Check URL's for the resource
        replacedertEquals(responseNode.get("url").textValue(), buildUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE, deployment.getId(), rawResourceName));
        replacedertEquals(responseNode.get("contentUrl").textValue(), buildUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE_CONTENT, deployment.getId(), rawResourceName));
        replacedertEquals("text/xml", responseNode.get("mediaType").textValue());
        replacedertEquals("caseDefinition", responseNode.get("type").textValue());
    } finally {
        // Always cleanup any created deployments, even if the test failed
        List<CmmnDeployment> deployments = repositoryService.createDeploymentQuery().list();
        for (CmmnDeployment deployment : deployments) {
            repositoryService.deleteDeployment(deployment.getId(), true);
        }
    }
}

19 View Complete Implementation : DeploymentResourceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a deployment resource content. GET repository/deployments/{deploymentId}/resources/{resourceId}
 */
public void testGetDeploymentResourceContent() throws Exception {
    try {
        CmmnDeployment deployment = repositoryService.createDeployment().name("Deployment 1").addInputStream("test.txt", new ByteArrayInputStream("Test content".getBytes())).deploy();
        HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE_CONTENT, deployment.getId(), "test.txt"));
        httpGet.addHeader(new BasicHeader(HttpHeaders.ACCEPT, "text/plain"));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        String responsereplacedtring = IOUtils.toString(response.getEnreplacedy().getContent(), StandardCharsets.UTF_8);
        closeResponse(response);
        replacedertNotNull(responsereplacedtring);
        replacedertEquals("Test content", responsereplacedtring);
    } finally {
        // Always cleanup any created deployments, even if the test failed
        List<CmmnDeployment> deployments = repositoryService.createDeploymentQuery().list();
        for (CmmnDeployment deployment : deployments) {
            repositoryService.deleteDeployment(deployment.getId(), true);
        }
    }
}

19 View Complete Implementation : HistoricCaseInstanceCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
private void replacedertVariablesPresentInPostDataResponse(String url, String queryParameters, String caseInstanceId, Map<String, Object> expectedVariables) throws IOException {
    HttpGet httpPost = new HttpGet(SERVER_URL_PREFIX + url + queryParameters);
    CloseableHttpResponse response = executeRequest(httpPost, HttpStatus.SC_OK);
    // Check status and size
    JsonNode dataNode = objectMapper.readTree(response.getEnreplacedy().getContent()).get("data");
    closeResponse(response);
    replacedertEquals(1, dataNode.size());
    JsonNode valueNode = dataNode.get(0);
    replacedertEquals(caseInstanceId, valueNode.get("id").asText());
    // Check expectec variables
    replacedertEquals(expectedVariables.size(), valueNode.get("variables").size());
    for (JsonNode node : valueNode.get("variables")) {
        ObjectNode variableNode = (ObjectNode) node;
        String variableName = variableNode.get("name").textValue();
        Object variableValue = objectMapper.convertValue(variableNode.get("value"), Object.clreplaced);
        replacedertTrue(expectedVariables.containsKey(variableName));
        replacedertEquals(expectedVariables.get(variableName), variableValue);
        replacedertEquals(expectedVariables.get(variableName).getClreplaced().getSimpleName().toLowerCase(), variableNode.get("type").textValue());
        replacedertEquals("local", variableNode.get("scope").textValue());
    }
}

19 View Complete Implementation : DeploymentResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single deployment. GET repository/deployments/{deploymentId}
 */
@org.flowable.cmmn.engine.test.CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetDeployment() throws Exception {
    CmmnDeployment existingDeployment = repositoryService.createDeploymentQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT, existingDeployment.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    String deploymentId = responseNode.get("id").textValue();
    String name = responseNode.get("name").textValue();
    String category = responseNode.get("category").textValue();
    String deployTime = responseNode.get("deploymentTime").textValue();
    String url = responseNode.get("url").textValue();
    String tenantId = responseNode.get("tenantId").textValue();
    replacedertEquals("", tenantId);
    replacedertNotNull(deploymentId);
    replacedertEquals(existingDeployment.getId(), deploymentId);
    replacedertNotNull(name);
    replacedertEquals(existingDeployment.getName(), name);
    replacedertEquals(existingDeployment.getCategory(), category);
    replacedertNotNull(deployTime);
    replacedertNotNull(url);
    replacedertTrue(url.endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT, deploymentId)));
}

19 View Complete Implementation : CaseInstanceVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test creating a single process variable using a binary stream containing a serializable. POST runtime/process-instances/{processInstanceId}/variables
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testCreateSingleSerializableProcessVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    TestSerializableVariable serializable = new TestSerializableVariable();
    serializable.setSomeField("some value");
    // Serialize object to readable stream for representation
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    ObjectOutputStream output = new ObjectOutputStream(buffer);
    output.writeObject(serializable);
    output.close();
    InputStream binaryContent = new ByteArrayInputStream(buffer.toByteArray());
    // Add name, type and scope
    Map<String, String> additionalFields = new HashMap<>();
    additionalFields.put("name", "serializableVariable");
    additionalFields.put("type", "serializable");
    // Upload a valid BPMN-file using multipart-data
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_COLLECTION, caseInstance.getId()));
    httpPost.setEnreplacedy(HttpMultipartHelper.getMultiPartEnreplacedy("value", "application/x-java-serialized-object", binaryContent, additionalFields));
    CloseableHttpResponse response = executeBinaryRequest(httpPost, HttpStatus.SC_CREATED);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("serializableVariable", responseNode.get("name").asText());
    replacedertTrue(responseNode.get("value").isNull());
    replacedertEquals("local", responseNode.get("scope").asText());
    replacedertEquals("serializable", responseNode.get("type").asText());
    replacedertFalse(responseNode.get("valueUrl").isNull());
    replacedertTrue(responseNode.get("valueUrl").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_DATA, caseInstance.getId(), "serializableVariable")));
    // Check actual value of variable in engine
    Object variableValue = runtimeService.getVariable(caseInstance.getId(), "serializableVariable");
    replacedertNotNull(variableValue);
    replacedertTrue(variableValue instanceof TestSerializableVariable);
    replacedertEquals("some value", ((TestSerializableVariable) variableValue).getSomeField());
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a process instance variable. GET cmmn-runtime/case-instances/{caseInstanceId}/variables/{variableName}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstanceVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    runtimeService.setVariable(caseInstance.getId(), "variable", "caseValue");
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "variable")), HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("caseValue", responseNode.get("value").asText());
    replacedertEquals("variable", responseNode.get("name").asText());
    replacedertEquals("string", responseNode.get("type").asText());
    // Unexisting case
    closeResponse(executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, "unexisting", "variable")), HttpStatus.SC_NOT_FOUND));
    // Unexisting variable
    closeResponse(executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "unexistingVariable")), HttpStatus.SC_NOT_FOUND));
}

19 View Complete Implementation : PlanItemInstanceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single plan item instance.
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetPlanItemInstance() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").businessKey("myBusinessKey").start();
    List<PlanItemInstance> planItems = runtimeService.createPlanItemInstanceQuery().caseInstanceId(caseInstance.getId()).list();
    replacedertEquals(1, planItems.size());
    PlanItemInstance planItem = planItems.get(0);
    String url = buildUrl(CmmnRestUrls.URL_PLAN_ITEM_INSTANCE, planItem.getId());
    CloseableHttpResponse response = executeRequest(new HttpGet(url), HttpStatus.SC_OK);
    // Check resulting instance
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals(planItem.getId(), responseNode.get("id").asText());
    replacedertNull(responseNode.get("name"));
    replacedertEquals("", responseNode.get("tenantId").asText());
    replacedertEquals(url, responseNode.get("url").asText());
    replacedertEquals(planItem.getCaseInstanceId(), responseNode.get("caseInstanceId").asText());
    replacedertEquals(buildUrl(CmmnRestUrls.URL_CASE_INSTANCE, planItem.getCaseInstanceId()), responseNode.get("caseInstanceUrl").asText());
    replacedertEquals(planItem.getCaseDefinitionId(), responseNode.get("caseDefinitionId").asText());
    replacedertEquals(buildUrl(CmmnRestUrls.URL_CASE_DEFINITION, caseInstance.getCaseDefinitionId()), responseNode.get("caseDefinitionUrl").asText());
    replacedertEquals(planItem.getState(), responseNode.get("state").asText());
}

19 View Complete Implementation : CaseInstanceVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test creating a single case variable using a binary stream. POST cmmn-runtime/case-instances/{caseInstanceId}/variables
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testCreateSingleBinaryProcessVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    InputStream binaryContent = new ByteArrayInputStream("This is binary content".getBytes());
    // Add name, type and scope
    Map<String, String> additionalFields = new HashMap<>();
    additionalFields.put("name", "binaryVariable");
    additionalFields.put("type", "binary");
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_COLLECTION, caseInstance.getId()));
    httpPost.setEnreplacedy(HttpMultipartHelper.getMultiPartEnreplacedy("value", "application/octet-stream", binaryContent, additionalFields));
    CloseableHttpResponse response = executeBinaryRequest(httpPost, HttpStatus.SC_CREATED);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("binaryVariable", responseNode.get("name").asText());
    replacedertTrue(responseNode.get("value").isNull());
    replacedertEquals("local", responseNode.get("scope").asText());
    replacedertEquals("binary", responseNode.get("type").asText());
    replacedertFalse(responseNode.get("valueUrl").isNull());
    replacedertTrue(responseNode.get("valueUrl").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_DATA, caseInstance.getId(), "binaryVariable")));
    // Check actual value of variable in engine
    Object variableValue = runtimeService.getVariable(caseInstance.getId(), "binaryVariable");
    replacedertNotNull(variableValue);
    replacedertTrue(variableValue instanceof byte[]);
    replacedertEquals("This is binary content", new String((byte[]) variableValue));
}

19 View Complete Implementation : CaseInstanceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single case instance.
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstance() throws Exception {
    Authentication.setAuthenticatedUserId("getCaseUser");
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").businessKey("myBusinessKey").referenceId("testReferenceId").referenceType("testReferenceType").callbackId("testCallbackId").callbackType("testCallbackType").start();
    String url = buildUrl(CmmnRestUrls.URL_CASE_INSTANCE, caseInstance.getId());
    CloseableHttpResponse response = executeRequest(new HttpGet(url), HttpStatus.SC_OK);
    // Check resulting instance
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals(caseInstance.getId(), responseNode.get("id").textValue());
    replacedertEquals("myBusinessKey", responseNode.get("businessKey").textValue());
    replacedertEquals("testReferenceId", responseNode.get("referenceId").textValue());
    replacedertEquals("testReferenceType", responseNode.get("referenceType").textValue());
    replacedertEquals("testCallbackId", responseNode.get("callbackId").textValue());
    replacedertEquals("testCallbackType", responseNode.get("callbackType").textValue());
    replacedertEquals("", responseNode.get("tenantId").textValue());
    replacedertThat(responseNode.get("startTime").textValue()).as("startTime").isNotNull();
    replacedertThat(responseNode.get("startUserId").textValue()).as("startUserId").isEqualTo("getCaseUser");
    replacedertEquals(responseNode.get("url").asText(), url);
    replacedertEquals(responseNode.get("caseDefinitionUrl").asText(), buildUrl(CmmnRestUrls.URL_CASE_DEFINITION, caseInstance.getCaseDefinitionId()));
    org.flowable.cmmn.api.repository.CmmnDeployment deployment = repositoryService.createDeployment().addClreplacedpathResource("org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn").tenantId("myTenant").deploy();
    try {
        caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").businessKey("myBusinessKey").tenantId("myTenant").start();
        response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE, caseInstance.getId())), HttpStatus.SC_OK);
        // Check resulting instance tenant id
        responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        replacedertNotNull(responseNode);
        replacedertEquals("myTenant", responseNode.get("tenantId").textValue());
    } finally {
        repositoryService.deleteDeployment(deployment.getId(), true);
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test updating a single case variable using a binary stream. PUT cmmn-runtime/case-instances/{caseInstanceId}/variables/{variableName}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testUpdateBinaryCaseVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").variables(Collections.singletonMap("overlappingVariable", (Object) "processValue")).start();
    runtimeService.setVariable(caseInstance.getId(), "binaryVariable", "Initial binary value".getBytes());
    InputStream binaryContent = new ByteArrayInputStream("This is binary content".getBytes());
    // Add name and type
    Map<String, String> additionalFields = new HashMap<>();
    additionalFields.put("name", "binaryVariable");
    additionalFields.put("type", "binary");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "binaryVariable"));
    httpPut.setEnreplacedy(HttpMultipartHelper.getMultiPartEnreplacedy("value", "application/octet-stream", binaryContent, additionalFields));
    CloseableHttpResponse response = executeBinaryRequest(httpPut, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("binaryVariable", responseNode.get("name").asText());
    replacedertTrue(responseNode.get("value").isNull());
    replacedertEquals("binary", responseNode.get("type").asText());
    replacedertNotNull(responseNode.get("valueUrl"));
    replacedertTrue(responseNode.get("valueUrl").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_DATA, caseInstance.getId(), "binaryVariable")));
    // Check actual value of variable in engine
    Object variableValue = runtimeService.getVariable(caseInstance.getId(), "binaryVariable");
    replacedertNotNull(variableValue);
    replacedertTrue(variableValue instanceof byte[]);
    replacedertEquals("This is binary content", new String((byte[]) variableValue));
}

19 View Complete Implementation : HistoricCaseInstanceIdentityLinkCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * GET cmmn-history/historic-case-instances/{caseInstanceId}/idenreplacedylinks
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/twoHumanTaskCase.cmmn" })
public void testGetIdenreplacedyLinks() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("myCase").start();
    Task task = taskService.createTaskQuery().caseInstanceId(caseInstance.getId()).singleResult();
    taskService.complete(task.getId());
    task = taskService.createTaskQuery().caseInstanceId(caseInstance.getId()).singleResult();
    taskService.setOwner(task.getId(), "test");
    taskService.setreplacedignee(task.getId(), "fozzie");
    String url = CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_HISTORIC_CASE_INSTANCE_IDENreplacedY_LINKS, caseInstance.getId());
    // Do the actual call
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + url), HttpStatus.SC_OK);
    JsonNode linksArray = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    String caseInstanceId = caseInstance.getId();
    replacedertThatJson(linksArray).when(Option.IGNORING_ARRAY_ORDER).isEqualTo("[" + "  {" + "    'type': 'participant'," + "    'userId': 'kermit'," + "    'groupId': null," + "    'taskId': null," + "    'taskUrl': null," + "    'caseInstanceId': '" + caseInstanceId + "'," + "    'caseInstanceUrl': '${json-unit.any-string}'" + "  }," + "  {" + "    'type': 'participant'," + "    'userId': 'fozzie'," + "    'groupId': null," + "    'taskId': null," + "    'taskUrl': null," + "    'caseInstanceId': '" + caseInstanceId + "'," + "    'caseInstanceUrl': '${json-unit.any-string}'" + "  }," + "  {" + "    'type': 'participant'," + "    'userId': 'test'," + "    'groupId': null," + "    'taskId': null," + "    'taskUrl': null," + "    'caseInstanceId': '" + caseInstanceId + "'," + "    'caseInstanceUrl': '${json-unit.any-string}'" + "  }," + "  {" + "    'type': 'participant'," + "    'userId': 'test2'," + "    'groupId': null," + "    'taskId': null," + "    'taskUrl': null," + "    'caseInstanceId': '" + caseInstanceId + "'," + "    'caseInstanceUrl': '${json-unit.any-string}'" + "  }" + "]");
}

19 View Complete Implementation : HistoricVariableInstanceCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
protected void replacedertResultsPresentInDataResponse(String url, int numberOfResultsExpected, String variableName, Object variableValue) throws JsonProcessingException, IOException {
    // Do the actual call
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + url), HttpStatus.SC_OK);
    // Check status and size
    JsonNode dataNode = objectMapper.readTree(response.getEnreplacedy().getContent()).get("data");
    closeResponse(response);
    replacedertEquals(numberOfResultsExpected, dataNode.size());
    // Check presence of ID's
    if (variableName != null) {
        boolean variableFound = false;
        Iterator<JsonNode> it = dataNode.iterator();
        while (it.hasNext()) {
            JsonNode dataElementNode = it.next();
            JsonNode variableNode = dataElementNode.get("variable");
            String name = variableNode.get("name").textValue();
            if (variableName.equals(name)) {
                variableFound = true;
                if (variableValue instanceof Boolean) {
                    replacedertEquals("Variable value is not equal", variableNode.get("value").asBoolean(), (boolean) (Boolean) variableValue);
                } else if (variableValue instanceof Integer) {
                    replacedertEquals("Variable value is not equal", variableNode.get("value").asInt(), (int) (Integer) variableValue);
                } else {
                    replacedertEquals("Variable value is not equal", variableNode.get("value").asText(), (String) variableValue);
                }
            }
        }
        replacedertTrue("Variable " + variableName + " is missing", variableFound);
    }
}

19 View Complete Implementation : DeploymentResourcesResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting all resources for a single deployment. GET app-repository/deployments/{deploymentId}/resources
 */
public void testGetDeploymentResources() throws Exception {
    try {
        AppDeployment deployment = repositoryService.createDeployment().name("Deployment 1").addClreplacedpathResource("org/flowable/app/rest/service/api/repository/oneApp.app").addInputStream("test.txt", new ByteArrayInputStream("Test content".getBytes())).deploy();
        HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCES, deployment.getId()));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        replacedertTrue(responseNode.isArray());
        replacedertEquals(2, responseNode.size());
        // Since resources can be returned in any arbitrary order, find the
        // right one to check
        JsonNode txtNode = null;
        for (int i = 0; i < responseNode.size(); i++) {
            if ("test.txt".equals(responseNode.get(i).get("id").textValue())) {
                txtNode = responseNode.get(i);
                break;
            }
        }
        // Check URL's for the resource
        replacedertNotNull(txtNode);
        replacedertTrue(txtNode.get("url").textValue().endsWith(AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCE, deployment.getId(), "test.txt")));
        replacedertTrue(txtNode.get("contentUrl").textValue().endsWith(AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCE_CONTENT, deployment.getId(), "test.txt")));
        replacedertTrue(txtNode.get("mediaType").isNull());
        replacedertEquals("resource", txtNode.get("type").textValue());
    } finally {
        // Always cleanup any created deployments, even if the test failed
        List<AppDeployment> deployments = repositoryService.createDeploymentQuery().list();
        for (AppDeployment deployment : deployments) {
            repositoryService.deleteDeployment(deployment.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a case instance variable data. GET cmmn-runtime/case-instances/{caseInstanceId}/variables/{variableName}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstanceVariableData() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    runtimeService.setVariable(caseInstance.getId(), "var", "This is a binary piece of text".getBytes());
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_DATA, caseInstance.getId(), "var")), HttpStatus.SC_OK);
    String actualResponseBytesAsText = IOUtils.toString(response.getEnreplacedy().getContent(), StandardCharsets.UTF_8);
    closeResponse(response);
    replacedertEquals("This is a binary piece of text", actualResponseBytesAsText);
    replacedertEquals("application/octet-stream", response.getEnreplacedy().getContentType().getValue());
}

19 View Complete Implementation : TaskVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a task variable. GET cmmn-runtime/tasks/{taskId}/variables/{variableName}/data
 */
public void testGetTaskVariableData() throws Exception {
    try {
        // Test variable behaviour on standalone tasks
        Task task = taskService.newTask();
        taskService.saveTask(task);
        taskService.setVariableLocal(task.getId(), "localTaskVariable", "This is a binary piece of text".getBytes());
        // Force content-type to TEXT_PLAIN to make sure this is ignored and
        // application-octect-stream is always returned
        CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_VARIABLE_DATA, task.getId(), "localTaskVariable")), HttpStatus.SC_OK);
        String actualResponseBytesAsText = IOUtils.toString(response.getEnreplacedy().getContent(), StandardCharsets.UTF_8);
        closeResponse(response);
        replacedertEquals("This is a binary piece of text", actualResponseBytesAsText);
        replacedertEquals("application/octet-stream", response.getEnreplacedy().getContentType().getValue());
    } finally {
        // Clean adhoc-tasks even if test fails
        List<Task> tasks = taskService.createTaskQuery().list();
        for (Task task : tasks) {
            taskService.deleteTask(task.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetProcessDefinitionResourceData() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_RESOURCE_CONTENT, caseDefinition.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    // Check "OK" status
    String content = IOUtils.toString(response.getEnreplacedy().getContent(), StandardCharsets.UTF_8);
    closeResponse(response);
    replacedertNotNull(content);
    replacedertTrue(content.contains("This is a test doreplacedentation"));
}

19 View Complete Implementation : AppDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
@AppDeployment(resources = { "org/flowable/app/rest/service/api/repository/oneApp.app" })
public void testGetAppDefinitionResourceData() throws Exception {
    AppDefinition appDefinition = repositoryService.createAppDefinitionQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_APP_DEFINITION_RESOURCE_CONTENT, appDefinition.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    // Check "OK" status
    String content = IOUtils.toString(response.getEnreplacedy().getContent(), StandardCharsets.UTF_8);
    closeResponse(response);
    replacedertNotNull(content);
    replacedertTrue(content.contains("oneApp"));
}

19 View Complete Implementation : CaseDefinitionIdentityLinksResourceTest.java
Copyright Apache License 2.0
Author : flowable
@Test
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCaseWithStarters.cmmn" })
public void testGetCandidateStarterFromCaseDefinition() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    // Get user candidate
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "users", "kermit"));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("kermit", responseNode.get("user").textValue());
    replacedertEquals("candidate", responseNode.get("type").textValue());
    replacedertTrue(responseNode.get("group").isNull());
    replacedertTrue(responseNode.get("url").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "users", "kermit")));
    // Get group candidate
    httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "groups", "admin"));
    response = executeRequest(httpGet, HttpStatus.SC_OK);
    responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("admin", responseNode.get("group").textValue());
    replacedertEquals("candidate", responseNode.get("type").textValue());
    replacedertTrue(responseNode.get("user").isNull());
    replacedertTrue(responseNode.get("url").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "groups", "admin")));
}

19 View Complete Implementation : CaseDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testUpdateProcessDefinitionCategory() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    replacedertEquals(1, repositoryService.createCaseDefinitionQuery().caseDefinitionCategory("http://flowable.org/cmmn").count());
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("category", "updatedcategory");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION, caseDefinition.getId()));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_OK);
    // Check "OK" status
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertEquals("updatedcategory", responseNode.get("category").textValue());
    // Check actual entry in DB
    replacedertEquals(1, repositoryService.createCaseDefinitionQuery().caseDefinitionCategory("updatedcategory").count());
}

19 View Complete Implementation : DeploymentResourcesResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting all resources for a single deployment. GET cmmn-repository/deployments/{deploymentId}/resources
 */
public void testGetDeploymentResources() throws Exception {
    try {
        CmmnDeployment deployment = repositoryService.createDeployment().name("Deployment 1").addClreplacedpathResource("org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn").addInputStream("test.txt", new ByteArrayInputStream("Test content".getBytes())).deploy();
        HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCES, deployment.getId()));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        replacedertTrue(responseNode.isArray());
        replacedertEquals(2, responseNode.size());
        // Since resources can be returned in any arbitrary order, find the
        // right one to check
        JsonNode txtNode = null;
        for (int i = 0; i < responseNode.size(); i++) {
            if ("test.txt".equals(responseNode.get(i).get("id").textValue())) {
                txtNode = responseNode.get(i);
                break;
            }
        }
        // Check URL's for the resource
        replacedertNotNull(txtNode);
        replacedertTrue(txtNode.get("url").textValue().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE, deployment.getId(), "test.txt")));
        replacedertTrue(txtNode.get("contentUrl").textValue().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE_CONTENT, deployment.getId(), "test.txt")));
        replacedertTrue(txtNode.get("mediaType").isNull());
        replacedertEquals("resource", txtNode.get("type").textValue());
    } finally {
        // Always cleanup any created deployments, even if the test failed
        List<CmmnDeployment> deployments = repositoryService.createDeploymentQuery().list();
        for (CmmnDeployment deployment : deployments) {
            repositoryService.deleteDeployment(deployment.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single process definition. GET cmmn-repository/case-definitions/{caseDefinitionResource}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseDefinition() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION, caseDefinition.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertEquals(caseDefinition.getId(), responseNode.get("id").textValue());
    replacedertEquals(caseDefinition.getKey(), responseNode.get("key").textValue());
    replacedertEquals(caseDefinition.getCategory(), responseNode.get("category").textValue());
    replacedertEquals(caseDefinition.getVersion(), responseNode.get("version").intValue());
    replacedertEquals(caseDefinition.getDescription(), responseNode.get("description").textValue());
    replacedertEquals(caseDefinition.getName(), responseNode.get("name").textValue());
    replacedertFalse(responseNode.get("graphicalNotationDefined").booleanValue());
    // Check URL's
    replacedertEquals(httpGet.getURI().toString(), responseNode.get("url").asText());
    replacedertEquals(caseDefinition.getDeploymentId(), responseNode.get("deploymentId").textValue());
    replacedertTrue(responseNode.get("deploymentUrl").textValue().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT, caseDefinition.getDeploymentId())));
    replacedertTrue(URLDecoder.decode(responseNode.get("resource").textValue(), "UTF-8").endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE, caseDefinition.getDeploymentId(), caseDefinition.getResourceName())));
    replacedertTrue(responseNode.get("diagramResource").isNull());
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testUpdateLocalDateCaseVariable() throws Exception {
    LocalDate initial = LocalDate.parse("2020-01-18");
    LocalDate tenDaysLater = initial.plusDays(10);
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").variables(Collections.singletonMap("overlappingVariable", (Object) "caseValue")).start();
    runtimeService.setVariable(caseInstance.getId(), "myVar", initial);
    // Update variable
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("name", "myVar");
    requestNode.put("value", "2020-01-28");
    requestNode.put("type", "localDate");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "myVar"));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_OK);
    replacedertThatJson(runtimeService.getVariable(caseInstance.getId(), "myVar")).isEqualTo(tenDaysLater);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertThat(responseNode).isNotNull();
    replacedertThatJson(responseNode).when(Option.IGNORING_EXTRA_FIELDS).isEqualTo("{" + "  value: '2020-01-28'" + "}");
}

19 View Complete Implementation : TaskIdentityLinkResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single idenreplacedy link for a task. GET runtime/tasks/{taskId}/idenreplacedylinks/{family}/{idenreplacedyId}/{type}
 */
public void testGetSingleIdenreplacedyLink() throws Exception {
    try {
        Task task = taskService.newTask();
        taskService.saveTask(task);
        taskService.addUserIdenreplacedyLink(task.getId(), "kermit", "myType");
        HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_IDENreplacedYLINK, task.getId(), "users", "kermit", "myType"));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        replacedertNotNull(responseNode);
        replacedertEquals("kermit", responseNode.get("user").textValue());
        replacedertEquals("myType", responseNode.get("type").textValue());
        replacedertTrue(responseNode.get("group").isNull());
        replacedertTrue(responseNode.get("url").textValue().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_IDENreplacedYLINK, task.getId(), CmmnRestUrls.SEGMENT_IDENreplacedYLINKS_FAMILY_USERS, "kermit", "myType")));
        // Test with unexisting task
        httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_IDENreplacedYLINK, "unexistingtask", CmmnRestUrls.SEGMENT_IDENreplacedYLINKS_FAMILY_USERS, "kermit", "myType"));
        closeResponse(executeRequest(httpGet, HttpStatus.SC_NOT_FOUND));
    } finally {
        // Clean adhoc-tasks even if test fails
        List<Task> tasks = taskService.createTaskQuery().list();
        for (Task task : tasks) {
            taskService.deleteTask(task.getId(), true);
        }
    }
}

19 View Complete Implementation : DeploymentResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single deployment. GET app-repository/deployments/{deploymentId}
 */
@org.flowable.app.engine.test.AppDeployment(resources = { "org/flowable/app/rest/service/api/repository/oneApp.app" })
public void testGetDeployment() throws Exception {
    AppDeployment existingDeployment = repositoryService.createDeploymentQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_DEPLOYMENT, existingDeployment.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    String deploymentId = responseNode.get("id").textValue();
    String name = responseNode.get("name").textValue();
    String category = responseNode.get("category").textValue();
    String deployTime = responseNode.get("deploymentTime").textValue();
    String url = responseNode.get("url").textValue();
    String tenantId = responseNode.get("tenantId").textValue();
    replacedertEquals("", tenantId);
    replacedertNotNull(deploymentId);
    replacedertEquals(existingDeployment.getId(), deploymentId);
    replacedertNotNull(name);
    replacedertEquals(existingDeployment.getName(), name);
    replacedertEquals(existingDeployment.getCategory(), category);
    replacedertNotNull(deployTime);
    replacedertNotNull(url);
    replacedertTrue(url.endsWith(AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_DEPLOYMENT, deploymentId)));
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testUpdateLocalDateTimeProcessVariable() throws Exception {
    LocalDateTime initial = LocalDateTime.parse("2020-01-18T12:32:45");
    LocalDateTime tenDaysLater = initial.plusDays(10);
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").variables(Collections.singletonMap("overlappingVariable", (Object) "processValue")).start();
    runtimeService.setVariable(caseInstance.getId(), "myVar", initial);
    // Update variable
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("name", "myVar");
    requestNode.put("value", "2020-01-28T12:32:45");
    requestNode.put("type", "localDateTime");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "myVar"));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_OK);
    replacedertThatJson(runtimeService.getVariable(caseInstance.getId(), "myVar")).isEqualTo(tenDaysLater);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertThat(responseNode).isNotNull();
    replacedertThatJson(responseNode).when(Option.IGNORING_EXTRA_FIELDS).isEqualTo("{" + "  value: '2020-01-28T12:32:45'" + "}");
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstanceLocalDateTimeVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    LocalDateTime now = LocalDateTime.now();
    LocalDateTime nowWithoutNanos = now.truncatedTo(ChronoUnit.MILLIS);
    runtimeService.setVariable(caseInstance.getId(), "variable", now);
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "variable")), HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertThat(responseNode).isNotNull();
    replacedertThatJson(responseNode).when(Option.IGNORING_EXTRA_FIELDS).isEqualTo("{" + "  name: 'variable'," + "  type: 'localDateTime'," + "  value: '" + nowWithoutNanos.toString() + "'" + "}");
}

19 View Complete Implementation : HistoricTaskInstanceQueryResourceTest.java
Copyright Apache License 2.0
Author : flowable
protected void replacedertResultsPresentInPostDataResponse(String url, ObjectNode body, int numberOfResultsExpected, String... expectedTaskIds) throws JsonProcessingException, IOException {
    // Do the actual call
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + url);
    httpPost.setEnreplacedy(new StringEnreplacedy(body.toString()));
    CloseableHttpResponse response = executeRequest(httpPost, HttpStatus.SC_OK);
    JsonNode dataNode = objectMapper.readTree(response.getEnreplacedy().getContent()).get("data");
    closeResponse(response);
    replacedertEquals(numberOfResultsExpected, dataNode.size());
    // Check presence of ID's
    if (expectedTaskIds != null) {
        List<String> toBeFound = new ArrayList<>(Arrays.asList(expectedTaskIds));
        Iterator<JsonNode> it = dataNode.iterator();
        while (it.hasNext()) {
            String id = it.next().get("id").textValue();
            toBeFound.remove(id);
        }
        replacedertTrue("Not all entries have been found in result, missing: " + StringUtils.join(toBeFound, ", "), toBeFound.isEmpty());
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testUpdateInstantProcessVariable() throws Exception {
    Instant initial = Instant.parse("2019-12-03T12:32:45.583345Z");
    Instant tenDaysLater = initial.plus(10, ChronoUnit.DAYS);
    Instant tenDaysLaterWithoutNanos = tenDaysLater.truncatedTo(ChronoUnit.MILLIS);
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").variables(Collections.singletonMap("overlappingVariable", (Object) "processValue")).start();
    runtimeService.setVariable(caseInstance.getId(), "myVar", initial);
    // Update variable
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("name", "myVar");
    requestNode.put("value", "2019-12-13T12:32:45.583345Z");
    requestNode.put("type", "instant");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "myVar"));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_OK);
    replacedertThatJson(runtimeService.getVariable(caseInstance.getId(), "myVar")).isEqualTo(tenDaysLaterWithoutNanos);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertThat(responseNode).isNotNull();
    replacedertThatJson(responseNode).when(Option.IGNORING_EXTRA_FIELDS).isEqualTo("{" + "  value: '2019-12-13T12:32:45.583345Z'" + "}");
}

19 View Complete Implementation : DeploymentResourceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single resource, deployed in a deployment. GET app-repository/deployments/{deploymentId}/resources/{resourceId}
 */
public void testGetDeploymentResource() throws Exception {
    try {
        String rawResourceName = "org/flowable/app/rest/service/api/repository/oneApp.app";
        AppDeployment deployment = repositoryService.createDeployment().name("Deployment 1").addClreplacedpathResource(rawResourceName).addInputStream("test.txt", new ByteArrayInputStream("Test content".getBytes())).deploy();
        // Build up the URL manually to make sure resource-id gets encoded correctly as one piece
        HttpGet httpGet = new HttpGet(buildUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCE, deployment.getId(), encode(rawResourceName)));
        httpGet.addHeader(new BasicHeader(HttpHeaders.ACCEPT, "application/json"));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        // Check URL's for the resource
        replacedertEquals(responseNode.get("url").textValue(), buildUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCE, deployment.getId(), rawResourceName));
        replacedertEquals(responseNode.get("contentUrl").textValue(), buildUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCE_CONTENT, deployment.getId(), rawResourceName));
        replacedertEquals("application/json", responseNode.get("mediaType").textValue());
        replacedertEquals("appDefinition", responseNode.get("type").textValue());
    } finally {
        // Always cleanup any created deployments, even if the test failed
        List<AppDeployment> deployments = repositoryService.createDeploymentQuery().list();
        for (AppDeployment deployment : deployments) {
            repositoryService.deleteDeployment(deployment.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single process definition with a graphical notation defined. GET cmmn-repository/case-definitions/{caseDefinitionResource}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/repeatingStage.cmmn" })
public void testGetCaseDefinitionWithGraphicalNotation() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION, caseDefinition.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertEquals(caseDefinition.getId(), responseNode.get("id").textValue());
    replacedertEquals(caseDefinition.getKey(), responseNode.get("key").textValue());
    replacedertEquals(caseDefinition.getCategory(), responseNode.get("category").textValue());
    replacedertEquals(caseDefinition.getVersion(), responseNode.get("version").intValue());
    replacedertEquals(caseDefinition.getDescription(), responseNode.get("description").textValue());
    replacedertEquals(caseDefinition.getName(), responseNode.get("name").textValue());
    replacedertTrue(responseNode.get("graphicalNotationDefined").booleanValue());
    // Check URL's
    replacedertEquals(httpGet.getURI().toString(), responseNode.get("url").asText());
    replacedertEquals(caseDefinition.getDeploymentId(), responseNode.get("deploymentId").textValue());
    replacedertTrue(responseNode.get("deploymentUrl").textValue().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT, caseDefinition.getDeploymentId())));
    replacedertTrue(URLDecoder.decode(responseNode.get("resource").textValue(), "UTF-8").endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE, caseDefinition.getDeploymentId(), caseDefinition.getResourceName())));
    replacedertTrue(URLDecoder.decode(responseNode.get("diagramResource").textValue(), "UTF-8").endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_DEPLOYMENT_RESOURCE, caseDefinition.getDeploymentId(), caseDefinition.getDiagramResourceName())));
}

19 View Complete Implementation : HistoricCaseInstanceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test retrieval of historic case instances. GET cmmn-history/historic-case-instances/{caseInstanceId}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/twoHumanTaskCase.cmmn" })
public void testGetCaseInstance() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("myCase").businessKey("myBusinessKey").referenceId("testReferenceId").referenceType("testReferenceType").callbackId("testCallbackId").callbackType("testCallbackType").start();
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_HISTORIC_CASE_INSTANCE, caseInstance.getId())), HttpStatus.SC_OK);
    replacedertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals(caseInstance.getId(), responseNode.get("id").textValue());
    replacedertEquals("myBusinessKey", responseNode.get("businessKey").textValue());
    replacedertEquals("testReferenceId", responseNode.get("referenceId").textValue());
    replacedertEquals("testReferenceType", responseNode.get("referenceType").textValue());
    replacedertEquals("testCallbackId", responseNode.get("callbackId").textValue());
    replacedertEquals("testCallbackType", responseNode.get("callbackType").textValue());
    Task task = taskService.createTaskQuery().caseInstanceId(caseInstance.getId()).singleResult();
    replacedertNotNull(task);
    taskService.complete(task.getId());
    task = taskService.createTaskQuery().caseInstanceId(caseInstance.getId()).singleResult();
    replacedertNotNull(task);
    taskService.complete(task.getId());
    response = executeRequest(new HttpDelete(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_HISTORIC_CASE_INSTANCE, caseInstance.getId())), HttpStatus.SC_NO_CONTENT);
    replacedertEquals(HttpStatus.SC_NO_CONTENT, response.getStatusLine().getStatusCode());
    closeResponse(response);
}

19 View Complete Implementation : AppDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
@AppDeployment(resources = { "org/flowable/app/rest/service/api/repository/oneApp.app" })
public void testUpdateAppDefinitionCategory() throws Exception {
    AppDefinition appDefinition = repositoryService.createAppDefinitionQuery().singleResult();
    replacedertEquals(1, repositoryService.createAppDefinitionQuery().count());
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("category", "updatedcategory");
    HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_APP_DEFINITION, appDefinition.getId()));
    httpPut.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPut, HttpStatus.SC_OK);
    // Check "OK" status
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertEquals("updatedcategory", responseNode.get("category").textValue());
    // Check actual entry in DB
    replacedertEquals(1, repositoryService.createAppDefinitionQuery().appDefinitionCategory("updatedcategory").count());
}

19 View Complete Implementation : CaseInstanceVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test creating a single case variable. POST cmmn-runtime/case-instance/{caseInstanceId}/variables
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testCreateSingleProcessInstanceVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    ArrayNode requestNode = objectMapper.createArrayNode();
    ObjectNode variableNode = requestNode.addObject();
    variableNode.put("name", "myVariable");
    variableNode.put("value", "simple string value");
    variableNode.put("type", "string");
    // Create a new local variable
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_COLLECTION, caseInstance.getId()));
    httpPost.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeBinaryRequest(httpPost, HttpStatus.SC_CREATED);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent()).get(0);
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("myVariable", responseNode.get("name").asText());
    replacedertEquals("simple string value", responseNode.get("value").asText());
    replacedertEquals("global", responseNode.get("scope").asText());
    replacedertEquals("string", responseNode.get("type").asText());
    replacedertNull(responseNode.get("valueUrl"));
    replacedertTrue(runtimeService.hasVariable(caseInstance.getId(), "myVariable"));
    replacedertEquals("simple string value", runtimeService.getVariable(caseInstance.getId(), "myVariable"));
}

19 View Complete Implementation : TaskVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test updating a single task variable using a binary stream. PUT runtime/tasks/{taskId}/variables/{variableName}
 */
public void testUpdateBinaryTaskVariable() throws Exception {
    try {
        Task task = taskService.newTask();
        taskService.saveTask(task);
        taskService.setVariable(task.getId(), "binaryVariable", "Original value".getBytes());
        InputStream binaryContent = new ByteArrayInputStream("This is binary content".getBytes());
        // Add name, type and scope
        Map<String, String> additionalFields = new HashMap<>();
        additionalFields.put("name", "binaryVariable");
        additionalFields.put("type", "binary");
        additionalFields.put("scope", "local");
        // Upload a valid BPMN-file using multipart-data
        HttpPut httpPut = new HttpPut(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_VARIABLE, task.getId(), "binaryVariable"));
        httpPut.setEnreplacedy(HttpMultipartHelper.getMultiPartEnreplacedy("value", "application/octet-stream", binaryContent, additionalFields));
        CloseableHttpResponse response = executeBinaryRequest(httpPut, HttpStatus.SC_OK);
        JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
        closeResponse(response);
        replacedertNotNull(responseNode);
        replacedertEquals("binaryVariable", responseNode.get("name").asText());
        replacedertTrue(responseNode.get("value").isNull());
        replacedertEquals("local", responseNode.get("scope").asText());
        replacedertEquals("binary", responseNode.get("type").asText());
        replacedertNotNull(responseNode.get("valueUrl"));
        replacedertTrue(responseNode.get("valueUrl").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_VARIABLE_DATA, task.getId(), "binaryVariable")));
        // Check actual value of variable in engine
        Object variableValue = taskService.getVariableLocal(task.getId(), "binaryVariable");
        replacedertNotNull(variableValue);
        replacedertTrue(variableValue instanceof byte[]);
        replacedertEquals("This is binary content", new String((byte[]) variableValue));
    } finally {
        // Clean adhoc-tasks even if test fails
        List<Task> tasks = taskService.createTaskQuery().list();
        for (Task task : tasks) {
            taskService.deleteTask(task.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstanceInstantVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    Instant now = Instant.now();
    Instant nowWithoutNanos = now.truncatedTo(ChronoUnit.MILLIS);
    runtimeService.setVariable(caseInstance.getId(), "variable", now);
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "variable")), HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertThat(responseNode).isNotNull();
    replacedertThatJson(responseNode).when(Option.IGNORING_EXTRA_FIELDS).isEqualTo("{" + "  name: 'variable'," + "  type: 'instant'," + "  value: '" + nowWithoutNanos.toString() + "'" + "}");
}

19 View Complete Implementation : HistoricTaskInstanceCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
protected void replacedertResultsPresentInDataResponse(String url, int numberOfResultsExpected, String... expectedTaskIds) throws JsonProcessingException, IOException {
    // Do the actual call
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + url), HttpStatus.SC_OK);
    // Check status and size
    JsonNode dataNode = objectMapper.readTree(response.getEnreplacedy().getContent()).get("data");
    closeResponse(response);
    replacedertEquals(numberOfResultsExpected, dataNode.size());
    // Check presence of ID's
    if (expectedTaskIds != null) {
        List<String> toBeFound = new ArrayList<>(Arrays.asList(expectedTaskIds));
        Iterator<JsonNode> it = dataNode.iterator();
        while (it.hasNext()) {
            String id = it.next().get("id").textValue();
            toBeFound.remove(id);
        }
        replacedertTrue("Not all entries have been found in result, missing: " + StringUtils.join(toBeFound, ", "), toBeFound.isEmpty());
    }
}

19 View Complete Implementation : DeploymentResourceResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a deployment resource content. GET app-repository/deployments/{deploymentId}/resources/{resourceId}
 */
public void testGetDeploymentResourceContent() throws Exception {
    try {
        AppDeployment deployment = repositoryService.createDeployment().name("Deployment 1").addInputStream("test.txt", new ByteArrayInputStream("Test content".getBytes())).deploy();
        HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_DEPLOYMENT_RESOURCE_CONTENT, deployment.getId(), "test.txt"));
        httpGet.addHeader(new BasicHeader(HttpHeaders.ACCEPT, "text/plain"));
        CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
        String responsereplacedtring = IOUtils.toString(response.getEnreplacedy().getContent(), StandardCharsets.UTF_8);
        closeResponse(response);
        replacedertNotNull(responsereplacedtring);
        replacedertEquals("Test content", responsereplacedtring);
    } finally {
        // Always cleanup any created deployments, even if the test failed
        List<AppDeployment> deployments = repositoryService.createDeploymentQuery().list();
        for (AppDeployment deployment : deployments) {
            repositoryService.deleteDeployment(deployment.getId(), true);
        }
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstanceLocalDateVariable() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    LocalDate now = LocalDate.now();
    runtimeService.setVariable(caseInstance.getId(), "variable", now);
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE, caseInstance.getId(), "variable")), HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertThat(responseNode).isNotNull();
    replacedertThatJson(responseNode).when(Option.IGNORING_EXTRA_FIELDS).isEqualTo("{" + "  name: 'variable'," + "  type: 'localDate'," + "  value: '" + now.toString() + "'" + "}");
}

19 View Complete Implementation : CaseDefinitionIdentityLinksResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting idenreplacedylinks for a case definition.
 */
@Test
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetIdenreplacedyLinksForProcessDefinition() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    repositoryService.addCandidateStarterGroup(caseDefinition.getId(), "admin");
    repositoryService.addCandidateStarterUser(caseDefinition.getId(), "kermit");
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINKS_COLLECTION, caseDefinition.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertTrue(responseNode.isArray());
    replacedertEquals(2, responseNode.size());
    boolean groupCandidateFound = false;
    boolean userCandidateFound = false;
    for (int i = 0; i < responseNode.size(); i++) {
        ObjectNode link = (ObjectNode) responseNode.get(i);
        replacedertNotNull(link);
        if (!link.get("user").isNull()) {
            replacedertEquals("kermit", link.get("user").textValue());
            replacedertEquals("candidate", link.get("type").textValue());
            replacedertTrue(link.get("group").isNull());
            replacedertTrue(link.get("url").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "users", "kermit")));
            userCandidateFound = true;
        } else if (!link.get("group").isNull()) {
            replacedertEquals("admin", link.get("group").textValue());
            replacedertEquals("candidate", link.get("type").textValue());
            replacedertTrue(link.get("user").isNull());
            replacedertTrue(link.get("url").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "groups", "admin")));
            groupCandidateFound = true;
        }
    }
    replacedertTrue(groupCandidateFound);
    replacedertTrue(userCandidateFound);
}

19 View Complete Implementation : CaseDefinitionIdentityLinksResourceTest.java
Copyright Apache License 2.0
Author : flowable
@Test
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testAddCandidateStarterToCaseDefinition() throws Exception {
    CaseDefinition caseDefinition = repositoryService.createCaseDefinitionQuery().singleResult();
    // Create user candidate
    ObjectNode requestNode = objectMapper.createObjectNode();
    requestNode.put("user", "kermit");
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINKS_COLLECTION, caseDefinition.getId()));
    httpPost.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    CloseableHttpResponse response = executeRequest(httpPost, HttpStatus.SC_CREATED);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("kermit", responseNode.get("user").textValue());
    replacedertEquals("candidate", responseNode.get("type").textValue());
    replacedertTrue(responseNode.get("group").isNull());
    replacedertTrue(responseNode.get("url").asText().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "users", "kermit")));
    List<IdenreplacedyLink> createdLinks = repositoryService.getIdenreplacedyLinksForCaseDefinition(caseDefinition.getId());
    replacedertEquals(1, createdLinks.size());
    replacedertEquals("kermit", createdLinks.get(0).getUserId());
    replacedertEquals("candidate", createdLinks.get(0).getType());
    repositoryService.deleteCandidateStarterUser(caseDefinition.getId(), "kermit");
    // Create group candidate
    requestNode = objectMapper.createObjectNode();
    requestNode.put("group", "admin");
    httpPost.setEnreplacedy(new StringEnreplacedy(requestNode.toString()));
    response = executeRequest(httpPost, HttpStatus.SC_CREATED);
    responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertNotNull(responseNode);
    replacedertEquals("admin", responseNode.get("group").textValue());
    replacedertEquals("candidate", responseNode.get("type").textValue());
    replacedertTrue(responseNode.get("user").isNull());
    replacedertTrue(responseNode.get("url").textValue().endsWith(CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_DEFINITION_IDENreplacedYLINK, caseDefinition.getId(), "groups", "admin")));
    createdLinks = repositoryService.getIdenreplacedyLinksForCaseDefinition(caseDefinition.getId());
    replacedertEquals(1, createdLinks.size());
    replacedertEquals("admin", createdLinks.get(0).getGroupId());
    replacedertEquals("candidate", createdLinks.get(0).getType());
    repositoryService.deleteCandidateStarterUser(caseDefinition.getId(), "admin");
}

19 View Complete Implementation : TaskVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a task variable. GET cmmn-runtime/tasks/{taskId}/variables/{variableName}/data
 */
public void testGetTaskVariableDataSerializable() throws Exception {
    try {
        TestSerializableVariable originalSerializable = new TestSerializableVariable();
        originalSerializable.setSomeField("This is some field");
        // Test variable behaviour on standalone tasks
        Task task = taskService.newTask();
        taskService.saveTask(task);
        taskService.setVariableLocal(task.getId(), "localTaskVariable", originalSerializable);
        CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_TASK_VARIABLE_DATA, task.getId(), "localTaskVariable")), HttpStatus.SC_OK);
        // Read the serializable from the stream
        ObjectInputStream stream = new ObjectInputStream(response.getEnreplacedy().getContent());
        Object readSerializable = stream.readObject();
        replacedertNotNull(readSerializable);
        replacedertTrue(readSerializable instanceof TestSerializableVariable);
        replacedertEquals("This is some field", ((TestSerializableVariable) readSerializable).getSomeField());
        replacedertEquals("application/x-java-serialized-object", response.getEnreplacedy().getContentType().getValue());
        closeResponse(response);
    } finally {
        // Clean adhoc-tasks even if test fails
        List<Task> tasks = taskService.createTaskQuery().list();
        for (Task task : tasks) {
            taskService.deleteTask(task.getId(), true);
        }
    }
}

19 View Complete Implementation : HistoricMilestoneInstanceResourcesTest.java
Copyright Apache License 2.0
Author : flowable
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/history/caseWithOneMilestone.cmmn" })
public void testHistoricMilestoneInstanceResource() throws Exception {
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("caseWithOneMilestone").start();
    PlanItemInstance activateMilestoneEvent = runtimeService.createPlanItemInstanceQuery().planItemInstanceElementId("activateMilestoneEvent").singleResult();
    replacedertNotNull(activateMilestoneEvent);
    runtimeService.triggerPlanItemInstance(activateMilestoneEvent.getId());
    HistoricMilestoneInstance runtimeMilestone = historyService.createHistoricMilestoneInstanceQuery().singleResult();
    replacedertNotNull(runtimeMilestone);
    HttpGet milestoneHttpGet = new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_HISTORIC_MILESTONE_INSTANCE, runtimeMilestone.getId()));
    CloseableHttpResponse response = executeRequest(milestoneHttpGet, HttpStatus.SC_OK);
    replacedertEquals(HttpStatus.SC_OK, response.getStatusLine().getStatusCode());
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertHistoricMilestoneValues(runtimeMilestone, responseNode);
    // Finish the case
    runtimeService.triggerPlanItemInstance(runtimeService.createPlanItemInstanceQuery().planItemInstanceElementId("finishCaseEvent").singleResult().getId());
    replacedertCaseEnded(caseInstance.getId());
}

19 View Complete Implementation : AppDefinitionResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a single app definition. GET app-repository/app-definitions/{appeDefinitionId}
 */
@AppDeployment(resources = { "org/flowable/app/rest/service/api/repository/oneApp.app" })
public void testGetAppDefinition() throws Exception {
    AppDefinition appDefinition = repositoryService.createAppDefinitionQuery().singleResult();
    HttpGet httpGet = new HttpGet(SERVER_URL_PREFIX + AppRestUrls.createRelativeResourceUrl(AppRestUrls.URL_APP_DEFINITION, appDefinition.getId()));
    CloseableHttpResponse response = executeRequest(httpGet, HttpStatus.SC_OK);
    JsonNode responseNode = objectMapper.readTree(response.getEnreplacedy().getContent());
    closeResponse(response);
    replacedertEquals(appDefinition.getId(), responseNode.get("id").textValue());
    replacedertEquals(appDefinition.getKey(), responseNode.get("key").textValue());
    replacedertEquals(appDefinition.getCategory(), responseNode.get("category").textValue());
    replacedertEquals(appDefinition.getVersion(), responseNode.get("version").intValue());
    replacedertEquals(appDefinition.getDescription(), responseNode.get("description").textValue());
    replacedertEquals(appDefinition.getName(), responseNode.get("name").textValue());
    // Check URL's
    replacedertEquals(httpGet.getURI().toString(), responseNode.get("url").asText());
    replacedertEquals(appDefinition.getDeploymentId(), responseNode.get("deploymentId").textValue());
}

19 View Complete Implementation : HistoricVariableInstanceQueryResourceTest.java
Copyright Apache License 2.0
Author : flowable
protected void replacedertResultsPresentInDataResponse(String url, ObjectNode body, int numberOfResultsExpected, String variableName, Object variableValue) throws JsonProcessingException, IOException {
    // Do the actual call
    HttpPost httpPost = new HttpPost(SERVER_URL_PREFIX + url);
    httpPost.setEnreplacedy(new StringEnreplacedy(body.toString()));
    CloseableHttpResponse response = executeRequest(httpPost, HttpStatus.SC_OK);
    // Check status and size
    JsonNode dataNode = objectMapper.readTree(response.getEnreplacedy().getContent()).get("data");
    closeResponse(response);
    replacedertEquals(numberOfResultsExpected, dataNode.size());
    // Check presence of ID's
    if (variableName != null) {
        boolean variableFound = false;
        Iterator<JsonNode> it = dataNode.iterator();
        while (it.hasNext()) {
            JsonNode dataElementNode = it.next();
            JsonNode variableNode = dataElementNode.get("variable");
            String name = variableNode.get("name").textValue();
            if (variableName.equals(name)) {
                variableFound = true;
                if (variableValue instanceof Boolean) {
                    replacedertEquals("Variable value is not equal", variableNode.get("value").asBoolean(), (boolean) (Boolean) variableValue);
                } else if (variableValue instanceof Integer) {
                    replacedertEquals("Variable value is not equal", variableNode.get("value").asInt(), (int) (Integer) variableValue);
                } else {
                    replacedertEquals("Variable value is not equal", variableNode.get("value").asText(), (String) variableValue);
                }
            }
        }
        replacedertTrue("Variable " + variableName + " is missing", variableFound);
    }
}

19 View Complete Implementation : CaseInstanceVariableResourceTest.java
Copyright Apache License 2.0
Author : flowable
/**
 * Test getting a case instance variable data. GET cmmn-runtime/case-instances/{caseInstanceId}/variables/{variableName}
 */
@CmmnDeployment(resources = { "org/flowable/cmmn/rest/service/api/repository/oneHumanTaskCase.cmmn" })
public void testGetCaseInstanceVariableDataSerializable() throws Exception {
    TestSerializableVariable originalSerializable = new TestSerializableVariable();
    originalSerializable.setSomeField("This is some field");
    CaseInstance caseInstance = runtimeService.createCaseInstanceBuilder().caseDefinitionKey("oneHumanTaskCase").start();
    runtimeService.setVariable(caseInstance.getId(), "var", originalSerializable);
    CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + CmmnRestUrls.createRelativeResourceUrl(CmmnRestUrls.URL_CASE_INSTANCE_VARIABLE_DATA, caseInstance.getId(), "var")), HttpStatus.SC_OK);
    // Read the serializable from the stream
    ObjectInputStream stream = new ObjectInputStream(response.getEnreplacedy().getContent());
    Object readSerializable = stream.readObject();
    replacedertNotNull(readSerializable);
    replacedertTrue(readSerializable instanceof TestSerializableVariable);
    replacedertEquals("This is some field", ((TestSerializableVariable) readSerializable).getSomeField());
    replacedertEquals("application/x-java-serialized-object", response.getEnreplacedy().getContentType().getValue());
    closeResponse(response);
}