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
19
View Complete Implementation : TaskVariablesCollectionResourceTest.java
Copyright Apache License 2.0
Author : flowable
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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);
}