use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryOrderByType_Asc.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryOrderByType_Asc() {
// given
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("intVar", 123);
variables.put("myVar", "test123");
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().orderByVariableType().asc();
// then
List<VariableInstance> result = query.list();
assertFalse(result.isEmpty());
assertEquals(2, result.size());
VariableInstance first = result.get(0);
VariableInstance second = result.get(1);
// integer
assertEquals("intVar", first.getName());
assertEquals("integer", first.getTypeName());
// string
assertEquals("myVar", second.getName());
assertEquals("string", second.getTypeName());
}
use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testSubProcessVariables.
@Test
@Deployment
public void testSubProcessVariables() {
// given
Map<String, Object> processVariables = new HashMap<String, Object>();
processVariables.put("processVariable", "aProcessVariable");
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("processWithSubProcess", processVariables);
ActivityInstance tree = runtimeService.getActivityInstance(processInstance.getId());
assertNotNull(tree);
assertEquals(1, tree.getChildActivityInstances().length);
// when
VariableInstanceQuery query1 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(tree.getId());
// then
VariableInstance processVariable = query1.singleResult();
assertNotNull(processVariable);
assertEquals("processVariable", processVariable.getName());
assertEquals("aProcessVariable", processVariable.getValue());
// when
ActivityInstance subProcessActivityInstance = tree.getActivityInstances("SubProcess_1")[0];
VariableInstanceQuery query2 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(subProcessActivityInstance.getId());
// then
checkVariables(query2.list());
// when setting a task local variable
Task task = taskService.createTaskQuery().singleResult();
taskService.setVariableLocal(task.getId(), "taskVariable", "taskVariableValue");
// skip mi body instance
ActivityInstance taskActivityInstance = subProcessActivityInstance.getChildActivityInstances()[0];
VariableInstanceQuery query3 = runtimeService.createVariableInstanceQuery().activityInstanceIdIn(taskActivityInstance.getId());
// then
List<VariableInstance> variables = query3.list();
VariableInstance taskVariable = query3.singleResult();
assertNotNull(taskVariable);
assertEquals("taskVariable", taskVariable.getName());
assertEquals("taskVariableValue", taskVariable.getValue());
}
use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testDisableCustomObjectDeserialization.
@Test
public void testDisableCustomObjectDeserialization() {
// given
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("customSerializable", new CustomSerializable());
variables.put("failingSerializable", new FailingSerializable());
Task task = taskService.newTask();
taskService.saveTask(task);
taskService.setVariablesLocal(task.getId(), variables);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().disableCustomObjectDeserialization();
// then
List<VariableInstance> results = query.list();
// both variables are not deserialized, but their serialized values are available
assertEquals(2, results.size());
for (VariableInstance variableInstance : results) {
assertNull(variableInstance.getErrorMessage());
ObjectValue typedValue = (ObjectValue) variableInstance.getTypedValue();
assertNotNull(typedValue);
assertFalse(typedValue.isDeserialized());
// cannot access the deserialized value
try {
typedValue.getValue();
} catch (IllegalStateException e) {
assertTextPresent("Object is not deserialized", e.getMessage());
}
assertNotNull(typedValue.getValueSerialized());
}
// delete task
taskService.deleteTask(task.getId(), true);
}
use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryByVariableNameLikeWithoutAnyResult.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryByVariableNameLikeWithoutAnyResult() {
// given
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("stringVar", "test");
runtimeService.startProcessInstanceByKey("oneTaskProcess", variables);
// when
VariableInstanceQuery query = runtimeService.createVariableInstanceQuery().variableNameLike("%ingV_");
// then
List<VariableInstance> result = query.list();
assertTrue(result.isEmpty());
assertEquals(0, query.count());
}
use of org.camunda.bpm.engine.runtime.VariableInstanceQuery in project camunda-bpm-platform by camunda.
the class VariableInstanceQueryTest method testQueryByNameAndVariableGreaterThan_Double.
@Test
@Deployment(resources = { "org/camunda/bpm/engine/test/api/runtime/oneTaskProcess.bpmn20.xml" })
public void testQueryByNameAndVariableGreaterThan_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().variableValueGreaterThan("doubleValue", 123.456);
// then
List<VariableInstance> result = query.list();
assertFalse(result.isEmpty());
assertEquals(2, result.size());
assertEquals(2, query.count());
for (VariableInstance var : result) {
assertEquals("doubleValue", var.getName());
assertEquals("double", var.getTypeName());
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());
}
}
}
Aggregations