@SuppressWarnings("unchecked") protected ProcessInstantiationBuilder setUpMockInstantiationBuilder() { ProcessInstanceWithVariables resultInstanceWithVariables = MockProvider.createMockInstanceWithVariables(); ProcessInstantiationBuilder mockInstantiationBuilder = mock(ProcessInstantiationBuilder.class); when(mockInstantiationBuilder.startAfterActivity(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.startBeforeActivity(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.startTransition(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.setVariables(any(Map.class))).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.setVariablesLocal(any(Map.class))).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.businessKey(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.caseInstanceId(anyString())).thenReturn(mockInstantiationBuilder); when(mockInstantiationBuilder.execute(anyBoolean(), anyBoolean())).thenReturn(resultInstanceWithVariables); when(mockInstantiationBuilder.executeWithVariablesInReturn(anyBoolean(), anyBoolean())).thenReturn(resultInstanceWithVariables); return mockInstantiationBuilder; }
@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()); }
@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 = 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 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 = 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 = 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()); }
@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); }