use of org.camunda.bpm.engine.runtime.VariableInstance in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testSequentialMultiInstanceSubProcess.
@Deployment
public void testSequentialMultiInstanceSubProcess() {
// given a process instance in sequential MI
ProcessInstance instance = runtimeService.startProcessInstanceByKey("miSequentialSubprocess");
// when
VariableInstance nrOfInstances = runtimeService.createVariableInstanceQuery().variableName("nrOfInstances").singleResult();
VariableInstance nrOfActiveInstances = runtimeService.createVariableInstanceQuery().variableName("nrOfActiveInstances").singleResult();
VariableInstance nrOfCompletedInstances = runtimeService.createVariableInstanceQuery().variableName("nrOfCompletedInstances").singleResult();
VariableInstance loopCounter = runtimeService.createVariableInstanceQuery().variableName("loopCounter").singleResult();
// then the activity instance ids of the variable instances should be correct
ActivityInstance tree = runtimeService.getActivityInstance(instance.getId());
assertEquals(tree.getActivityInstances("miSubProcess#multiInstanceBody")[0].getId(), nrOfInstances.getActivityInstanceId());
assertEquals(tree.getActivityInstances("miSubProcess#multiInstanceBody")[0].getId(), nrOfActiveInstances.getActivityInstanceId());
assertEquals(tree.getActivityInstances("miSubProcess#multiInstanceBody")[0].getId(), nrOfCompletedInstances.getActivityInstanceId());
assertEquals(tree.getActivityInstances("miSubProcess#multiInstanceBody")[0].getId(), loopCounter.getActivityInstanceId());
}
use of org.camunda.bpm.engine.runtime.VariableInstance in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryByNameAndVariableLessThanAndEqual_Double.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryByNameAndVariableLessThanAndEqual_Double() {
// given
Map<String, Object> variables1 = new HashMap<String, Object>();
variables1.put("doubleValue", 123.456);
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables1);
Map<String, Object> variables2 = new HashMap<String, Object>();
variables2.put("doubleValue", 654.321);
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables2);
Map<String, Object> variables3 = new HashMap<String, Object>();
variables3.put("doubleValue", 999.999);
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables3);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableValueLessThanOrEqual("doubleValue", 999.999);
// then
List<VariableInstance> result = query.list();
assertFalse(result.isEmpty());
assertEquals(3, result.size());
assertEquals(3, query.count());
for (VariableInstance var : result) {
assertEquals("doubleValue", var.getName());
assertEquals("double", var.getTypeName());
if (var.getValue().equals(123.456)) {
assertEquals(123.456, var.getValue());
} else if (var.getValue().equals(654.321)) {
assertEquals(654.321, var.getValue());
} else if (var.getValue().equals(999.999)) {
assertEquals(999.999, var.getValue());
} else {
fail("A non expected value occured: " + var.getValue());
}
}
}
use of org.camunda.bpm.engine.runtime.VariableInstance in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryByNameAndVariableValueEquals_Short.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryByNameAndVariableValueEquals_Short() {
// given
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("shortValue", (short) 123);
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableValueEquals("shortValue", (short) 123);
// then
List<VariableInstance> result = query.list();
assertFalse(result.isEmpty());
assertEquals(1, result.size());
assertEquals(1, query.count());
VariableInstance var = result.get(0);
assertEquals("shortValue", var.getName());
assertEquals((short) 123, var.getValue());
assertEquals("short", var.getTypeName());
}
use of org.camunda.bpm.engine.runtime.VariableInstance in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testParallelGatewayVariables.
@Test
@Deployment
public void testParallelGatewayVariables() {
// given
Map<String, Object> processVariables = new HashMap<String, Object>();
processVariables.put("processVariable", "aProcessVariable");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("parallelGatewayProcess", processVariables);
Execution execution = runtimeService.createExecutionQuery().activityId("task1").singleResult();
runtimeService.setVariableLocal(execution.getId(), "aLocalVariable", "aLocalValue");
ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId());
assertEquals(2, tree.getChildActivityInstances().length);
ActivityInstance task1Instance = tree.getActivityInstances("task1")[0];
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableName("aLocalVariable").activityInstanceIdIn(task1Instance.getId());
VariableInstance localVariable = query.singleResult();
assertNotNull(localVariable);
assertEquals("aLocalVariable", localVariable.getName());
assertEquals("aLocalValue", localVariable.getValue());
Task task = taskService.createTaskQuery().executionId(execution.getId()).singleResult();
taskService.complete(task.getId());
tree = runtimeService.getActivityInstance(processInstance.getId());
assertEquals(2, tree.getChildActivityInstances().length);
ActivityInstance task3Instance = tree.getActivityInstances("task3")[0];
query = runtimeService.createVariableInstanceQuery().variableName("aLocalVariable").activityInstanceIdIn(task3Instance.getId());
localVariable = query.singleResult();
assertNotNull(localVariable);
assertEquals("aLocalVariable", localVariable.getName());
assertEquals("aLocalValue", localVariable.getValue());
}
use of org.camunda.bpm.engine.runtime.VariableInstance in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryOrderByActivityInstanceId_Asc.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryOrderByActivityInstanceId_Asc() {
// given
Map<String, Object> variables1 = new HashMap<String, Object>();
variables1.put("intVar", 123);
ProcessInstance procInst1 = runtimeService.startProcessInstanceByKey("oneTaskProcess", variables1);
String activityId1 = runtimeService.getActivityInstance(procInst1.getId()).getChildActivityInstances()[0].getId();
Map<String, Object> variables2 = new HashMap<String, Object>();
variables2.put("stringVar", "test");
ProcessInstance procInst2 = runtimeService.startProcessInstanceByKey("oneTaskProcess", variables2);
String activityId2 = runtimeService.getActivityInstance(procInst2.getId()).getChildActivityInstances()[0].getId();
int comparisonResult = activityId1.compareTo(activityId2);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().orderByActivityInstanceId().asc();
// then
List<VariableInstance> result = query.list();
assertFalse(result.isEmpty());
assertEquals(2, result.size());
VariableInstance first = result.get(0);
VariableInstance second = result.get(1);
if (comparisonResult < 0) {
assertEquals("intVar", first.getName());
assertEquals("integer", first.getTypeName());
assertEquals("stringVar", second.getName());
assertEquals("string", second.getTypeName());
} else if (comparisonResult > 0) {
assertEquals("stringVar", first.getName());
assertEquals("string", first.getTypeName());
assertEquals("intVar", second.getName());
assertEquals("integer", second.getTypeName());
} else {
fail("Something went wrong: both activity instances have the same id " + activityId1 + " and " + activityId2);
}
}
Aggregations