verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.stringValue("valueLocal"))); verify(mockInstantiationBuilder).setVariable(eq("var"), argThat(EqualsPrimitiveValue.stringValue("value"))); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(74))); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(75)));
verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.stringValue("valueLocal"))); verify(mockInstantiationBuilder).setVariable(eq("var"), argThat(EqualsPrimitiveValue.stringValue("value"))); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(74))); verify(mockInstantiationBuilder).setVariableLocal(eq("varLocal"), argThat(EqualsPrimitiveValue.integerValue(75)));
@Deployment(resources = SUBPROCESS_PROCESS) public void testSetProcessInstanceVariable() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("subprocess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", "aValue4")) .startBeforeActivity("innerTask") .execute(); // then List<VariableInstance> variables = runtimeService.createVariableInstanceQuery() .orderByVariableName().asc().list(); assertEquals(4, variables.size()); assertEquals("aVariable1", variables.get(0).getName()); assertEquals("aValue1", variables.get(0).getValue()); assertEquals(instance.getId(), variables.get(0).getExecutionId()); assertEquals("aVariable2", variables.get(1).getName()); assertEquals("aValue2", variables.get(1).getValue()); assertEquals(instance.getId(), variables.get(1).getExecutionId()); assertEquals("aVariable3", variables.get(2).getName()); assertEquals("aValue3", variables.get(2).getValue()); assertEquals(instance.getId(), variables.get(2).getExecutionId()); assertEquals("aVariable4", variables.get(3).getName()); assertEquals("aValue4", variables.get(3).getValue()); assertEquals(instance.getId(), variables.get(3).getExecutionId()); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testConcurrentLocalVariablesAreAccessible() { // when runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task2") .startBeforeActivity("task1") .setVariableLocal("priority", 14) // this is a local variable on the // concurrent execution entering the activity .execute(); // then Job job = managementService.createJobQuery().activityId("task1").singleResult(); assertNotNull(job); assertEquals(14, job.getPriority()); }
@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); }
@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); }
@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 @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); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testMultipleActivitiesInstantiationWithVariables() { // when runtimeService .createProcessInstanceByKey("exclusiveGateway") .startBeforeActivity("task1") .setVariableLocal("aVar1", "aValue1") .startBeforeActivity("task2") .setVariableLocal("aVar2", "aValue2") .execute(); // then // variables for task2's execution Execution task2Execution = runtimeService.createExecutionQuery().activityId("task2").singleResult(); assertNotNull(task2Execution); assertNull(runtimeService.getVariableLocal(task2Execution.getId(), "aVar1")); assertEquals("aValue2", runtimeService.getVariableLocal(task2Execution.getId(), "aVar2")); // variables for task1's execution Execution task1Execution = runtimeService.createExecutionQuery().activityId("task1").singleResult(); assertNotNull(task1Execution); assertNull(runtimeService.getVariableLocal(task1Execution.getId(), "aVar2")); // this variable is not a local variable on execution1 due to tree expansion assertNull(runtimeService.getVariableLocal(task1Execution.getId(), "aVar1")); assertEquals("aValue1", runtimeService.getVariable(task1Execution.getId(), "aVar1")); }
@Deployment(resources = SUBPROCESS_PROCESS) public void testSetProcessInstanceVariable() { // when ProcessInstance instance = runtimeService .createProcessInstanceByKey("subprocess") .setVariable("aVariable1", "aValue1") .setVariableLocal("aVariable2", "aValue2") .setVariables(Variables.createVariables().putValue("aVariable3", "aValue3")) .setVariablesLocal(Variables.createVariables().putValue("aVariable4", "aValue4")) .startBeforeActivity("innerTask") .execute(); // then List<VariableInstance> variables = runtimeService.createVariableInstanceQuery() .orderByVariableName().asc().list(); assertEquals(4, variables.size()); assertEquals("aVariable1", variables.get(0).getName()); assertEquals("aValue1", variables.get(0).getValue()); assertEquals(instance.getId(), variables.get(0).getExecutionId()); assertEquals("aVariable2", variables.get(1).getName()); assertEquals("aValue2", variables.get(1).getValue()); assertEquals(instance.getId(), variables.get(1).getExecutionId()); assertEquals("aVariable3", variables.get(2).getName()); assertEquals("aValue3", variables.get(2).getValue()); assertEquals(instance.getId(), variables.get(2).getExecutionId()); assertEquals("aVariable4", variables.get(3).getName()); assertEquals("aValue4", variables.get(3).getValue()); assertEquals(instance.getId(), variables.get(3).getExecutionId()); }
@Deployment(resources = "org/camunda/bpm/engine/test/bpmn/job/jobPrioExpressionProcess.bpmn20.xml") public void testConcurrentLocalVariablesAreAccessible() { // when runtimeService .createProcessInstanceByKey("jobPrioExpressionProcess") .startBeforeActivity("task2") .startBeforeActivity("task1") .setVariableLocal("priority", 14) // this is a local variable on the // concurrent execution entering the activity .execute(); // then Job job = managementService.createJobQuery().activityId("task1").singleResult(); assertNotNull(job); assertEquals(14, job.getPriority()); }
@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); }
@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); }
@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 = 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); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testMultipleActivitiesInstantiationWithVariables() { // when runtimeService .createProcessInstanceByKey("exclusiveGateway") .startBeforeActivity("task1") .setVariableLocal("aVar1", "aValue1") .startBeforeActivity("task2") .setVariableLocal("aVar2", "aValue2") .execute(); // then // variables for task2's execution Execution task2Execution = runtimeService.createExecutionQuery().activityId("task2").singleResult(); assertNotNull(task2Execution); assertNull(runtimeService.getVariableLocal(task2Execution.getId(), "aVar1")); assertEquals("aValue2", runtimeService.getVariableLocal(task2Execution.getId(), "aVar2")); // variables for task1's execution Execution task1Execution = runtimeService.createExecutionQuery().activityId("task1").singleResult(); assertNotNull(task1Execution); assertNull(runtimeService.getVariableLocal(task1Execution.getId(), "aVar2")); // this variable is not a local variable on execution1 due to tree expansion assertNull(runtimeService.getVariableLocal(task1Execution.getId(), "aVar1")); assertEquals("aValue1", runtimeService.getVariable(task1Execution.getId(), "aVar1")); }
@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); }