protected ProcessInstance startProcessInstanceForTenant(String tenant, String var) { return runtimeService.createProcessInstanceByKey("testProcess") .setVariable(VARIABLE_NAME, var) .processDefinitionTenantId(tenant) .execute(); }
@Test @Deployment(resources = SET_VARIABLE_IN_DELEGATE_PROCESS) public void testReturnVariablesFromStartAndExecution() { //given executed process which sets variables in java delegate ProcessInstanceWithVariables procInstance = engineRule.getRuntimeService().createProcessInstanceByKey("variableProcess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", new byte[]{127, 34, 64})) .executeWithVariablesInReturn(); //when returned instance contains variables VariableMap map = procInstance.getVariables(); assertNotNull(map); // then variables equal to variables which are accessible via query checkVariables(map, 12); }
@Test @Deployment(resources = SIMPLE_PROCESS) public void testReturnVariablesFromStart() { //given execute process with variables ProcessInstanceWithVariables procInstance = engineRule.getRuntimeService() .createProcessInstanceByKey("simpleProcess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", new byte[]{127, 34, 64})) .executeWithVariablesInReturn(false, false); //when returned instance contains variables VariableMap map = procInstance.getVariables(); assertNotNull(map); // then variables equal to variables which are accessible via query checkVariables(map, 4); }
public void testStartProcessInstanceAndSetVariable() { ProcessInstance processInstance = runtimeService.createProcessInstanceByKey(PROCESS_DEFINITION_KEY).setVariable("var", "value").execute(); Object variable = runtimeService.getVariable(processInstance.getId(), "var"); assertThat(variable, is(notNullValue())); assertThat(variable, is((Object) "value")); }
@Test @Deployment(resources = SUBPROCESS_PROCESS) public void testReturnVariablesFromStartWithWaitstate() { //given execute process with variables and wait state ProcessInstanceWithVariables procInstance = engineRule.getRuntimeService() .createProcessInstanceByKey("subprocess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", new byte[]{127, 34, 64})) .executeWithVariablesInReturn(false, false); //when returned instance contains variables VariableMap map = procInstance.getVariables(); assertNotNull(map); // then variables equal to variables which are accessible via query checkVariables(map, 4); }
protected ProcessInstance startProcessInstanceForTenant(String tenant, String var) { return runtimeService.createProcessInstanceByKey("testProcess") .setVariable("myVar", var) .processDefinitionTenantId(tenant) .execute(); }
@Test @Deployment(resources = SET_VARIABLE_IN_DELEGATE_WITH_WAIT_STATE_PROCESS) public void testReturnVariablesFromStartAndExecutionWithWaitstate() { //given executed process which overwrites these four variables in java delegate // and adds four additional variables ProcessInstanceWithVariables procInstance = engineRule.getRuntimeService().createProcessInstanceByKey("variableProcess") .setVariable("stringVar", "aValue1") .setVariableLocal("integerVar", 56789) .setVariables(Variables.createVariables().putValue("longVar", 123L)) .setVariablesLocal(Variables.createVariables().putValue("byteVar", new byte[]{127, 34, 64})) .executeWithVariablesInReturn(false, false); //when returned instance contains variables VariableMap map = procInstance.getVariables(); assertNotNull(map); // then variables equal to variables which are accessible via query checkVariables(map, 8); }
@Test public void testTriggerGlobalEventSubProcess() { //given deployConditionalEventSubProcess(TASK_MODEL, CONDITIONAL_EVENT_PROCESS_KEY, true); //when runtimeService.createProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY) .startBeforeActivity(TASK_BEFORE_CONDITION_ID) .setVariable(VARIABLE_NAME, "1") .executeWithVariablesInReturn(); //then tasksAfterVariableIsSet = taskService.createTaskQuery().list(); assertEquals(1, tasksAfterVariableIsSet.size()); assertEquals(TASK_AFTER_CONDITION_ID, tasksAfterVariableIsSet.get(0).getTaskDefinitionKey()); }
@Test @Deployment(resources = SUBPROCESS_PROCESS) public void testReturnVariablesFromStartWithWaitstateStartInSubProcess() { //given execute process with variables and wait state in sub process ProcessInstanceWithVariables procInstance = engineRule.getRuntimeService() .createProcessInstanceByKey("subprocess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", new byte[]{127, 34, 64})) .startBeforeActivity("innerTask") .executeWithVariablesInReturn(true, true); //when returned instance contains variables VariableMap map = procInstance.getVariables(); assertNotNull(map); // then variables equal to variables which are accessible via query checkVariables(map, 4); }
@Test public void testTriggerBoundaryEvent() { //given deployConditionalBoundaryEventProcess(TASK_MODEL, TASK_BEFORE_CONDITION_ID, true); //when runtimeService.createProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY) .startBeforeActivity(TASK_BEFORE_CONDITION_ID) .setVariable(VARIABLE_NAME, "1") .executeWithVariablesInReturn(); //then tasksAfterVariableIsSet = taskService.createTaskQuery().list(); assertEquals(1, tasksAfterVariableIsSet.size()); assertEquals(TASK_AFTER_CONDITION_ID, tasksAfterVariableIsSet.get(0).getTaskDefinitionKey()); }
@Test public void decisionRefVersionTagBinding() { // given testRule.deploy(DECISION_VERSION_TAG_OKAY_DMN); testRule.deploy(BPMN_VERSION_TAG_BINDING); // when ProcessInstance processInstance = runtimeService.createProcessInstanceByKey("process") .setVariable("status", "gold") .execute(); // then assertEquals("A", getDecisionResult(processInstance)); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testExpressionEvaluatesToNull() { // when try { runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task3") .setVariable("priority", null) .execute(); fail("this should not succeed since the priority variable is not defined"); } catch (ProcessEngineException e) { assertTextPresentIgnoreCase("Priority value is not an Integer", e.getMessage()); } }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testExpressionEvaluatesToNonNumericalValue() { // when try { runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task3") .setVariable("priority", "aNonNumericalVariableValue") .execute(); fail("this should not succeed since the priority must be integer"); } catch (ProcessEngineException e) { assertTextPresentIgnoreCase("Priority value is not an Integer", e.getMessage()); } }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testExpressionEvaluatesToNonIntegerValue() { // when try { runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task3") .setVariable("priority", 4.2d) .execute(); fail("this should not succeed since the priority must be integer"); } catch (ProcessEngineException e) { assertTextPresentIgnoreCase("Priority value must be either Short, Integer, or Long", e.getMessage()); } }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartEventInstantiationWithVariables() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("exclusiveGateway") .startBeforeActivity("theStart") .setVariable("aVariable", "aValue") .execute(); // then assertNotNull(instance); assertEquals("aValue", runtimeService.getVariable(instance.getId(), "aVariable")); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testVariableValueExpressionPrioritization() { // when runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task1") .setVariable("priority", 22) .execute(); // then Job job = managementService.createJobQuery().singleResult(); assertNotNull(job); assertEquals(22, job.getPriority()); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testExecutionExpressionPrioritization() { // when runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task1") .setVariable("priority", 25) .execute(); // then Job job = managementService.createJobQuery().singleResult(); assertNotNull(job); assertEquals(25, job.getPriority()); }
@Test public void testNonInterruptingTriggerBoundaryEvent() { //given deployConditionalBoundaryEventProcess(TASK_MODEL, TASK_BEFORE_CONDITION_ID, false); //when runtimeService.createProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY) .startBeforeActivity(TASK_BEFORE_CONDITION_ID) .setVariable(VARIABLE_NAME, "1") .executeWithVariablesInReturn(); //then tasksAfterVariableIsSet = taskService.createTaskQuery().list(); assertEquals(2, tasksAfterVariableIsSet.size()); assertEquals(1, taskService.createTaskQuery().taskName(TASK_AFTER_CONDITION).count()); assertEquals(1, conditionEventSubscriptionQuery.count()); }
@Test public void testNonInterruptingTriggerGlobalEventSubProcess() { //given deployConditionalEventSubProcess(TASK_MODEL, CONDITIONAL_EVENT_PROCESS_KEY, false); //when runtimeService.createProcessInstanceByKey(CONDITIONAL_EVENT_PROCESS_KEY) .startBeforeActivity(TASK_BEFORE_CONDITION_ID) .setVariable(VARIABLE_NAME, "1") .executeWithVariablesInReturn(); //then tasksAfterVariableIsSet = taskService.createTaskQuery().list(); assertEquals(2, tasksAfterVariableIsSet.size()); assertEquals(1, taskService.createTaskQuery().taskName(TASK_AFTER_CONDITION).count()); assertEquals(1, conditionEventSubscriptionQuery.count()); }
public void testEvaluateDecisionTenantIdExpression() { BpmnModelInstance process = Bpmn.createExecutableProcess("process") .startEvent() .businessRuleTask() .camundaDecisionRef("decision") .camundaDecisionRefBinding("latest") .camundaDecisionRefTenantId("${'"+TENANT_ONE+"'}") .camundaMapDecisionResult("singleEntry") .camundaResultVariable("decisionVar") .camundaAsyncAfter() .endEvent() .done(); deploymentForTenant(TENANT_ONE, DMN_FILE); deploymentForTenant(TENANT_TWO, DMN_FILE_VERSION_TWO); deployment(process); ProcessInstance processInstanceOne = runtimeService.createProcessInstanceByKey("process") .setVariable("status", "gold").execute(); assertThat((String)runtimeService.getVariable(processInstanceOne.getId(), "decisionVar"), is(RESULT_OF_VERSION_ONE)); }