use of org.camunda.bpm.engine.runtime.VariableInstanceQuery 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.VariableInstanceQuery 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.VariableInstanceQuery 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);
}
}
use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryByNameAndVariableValueEquals_String.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryByNameAndVariableValueEquals_String() {
// given
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("stringVar", "test");
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableValueEquals("stringVar", "test");
// then
List<VariableInstance> result = query.list();
assertFalse(result.isEmpty());
assertEquals(1, result.size());
assertEquals(1, query.count());
VariableInstance var = result.get(0);
assertEquals("stringVar", var.getName());
assertEquals("test", var.getValue());
assertEquals("string", var.getTypeName());
}
use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryByNameAndVariableValueEquals_Bytes.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryByNameAndVariableValueEquals_Bytes() {
// given
byte[] bytes = "somebytes".getBytes();
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("bytesVar", bytes);
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableValueEquals("bytesVar", bytes);
// then
try {
query.list();
fail("A ProcessEngineException was expected: Variables of type ByteArray cannot be used to query.");
} catch (ProcessEngineException e) {
// expected exception
}
}
Aggregations