@SuppressWarnings("unchecked") protected ProcessInstanceModificationInstantiationBuilder setUpMockModificationBuilder() { ProcessInstanceModificationInstantiationBuilder mockModificationBuilder = mock(ProcessInstanceModificationInstantiationBuilder.class); when(mockModificationBuilder.cancelActivityInstance(anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.cancelAllForActivity(anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.startAfterActivity(anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.startAfterActivity(anyString(), anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.startBeforeActivity(anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.startBeforeActivity(anyString(), anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.startTransition(anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.startTransition(anyString(), anyString())).thenReturn(mockModificationBuilder); when(mockModificationBuilder.setVariables(any(Map.class))).thenReturn(mockModificationBuilder); when(mockModificationBuilder.setVariablesLocal(any(Map.class))).thenReturn(mockModificationBuilder); return mockModificationBuilder; }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartBeforeWithVariables() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2").setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue").setVariables(Variables.createVariables().putValue("procInstMapVar", "procInstMapValue")) .setVariablesLocal(Variables.createVariables().putValue("localMapVar", "localMapValue")).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.getId()); assertNotNull(updatedTree); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ActivityInstance task2Instance = getChildInstanceForActivity(updatedTree, "task2"); assertNotNull(task2Instance); assertEquals(1, task2Instance.getExecutionIds().length); String task2ExecutionId = task2Instance.getExecutionIds()[0]; assertEquals(4, runtimeService.createVariableInstanceQuery().count()); assertEquals("procInstValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstVar")); assertEquals("localValue", runtimeService.getVariableLocal(task2ExecutionId, "localVar")); assertEquals("procInstMapValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstMapVar")); assertEquals("localMapValue", runtimeService.getVariableLocal(task2ExecutionId, "localMapVar")); completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstance.getId()); }
@Deployment(resources = EXCLUSIVE_GATEWAY_PROCESS) public void testStartBeforeWithVariables() { ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("exclusiveGateway"); runtimeService.createProcessInstanceModification(processInstance.getId()).startBeforeActivity("task2").setVariable("procInstVar", "procInstValue") .setVariableLocal("localVar", "localValue").setVariables(Variables.createVariables().putValue("procInstMapVar", "procInstMapValue")) .setVariablesLocal(Variables.createVariables().putValue("localMapVar", "localMapValue")).execute(); ActivityInstance updatedTree = runtimeService.getActivityInstance(processInstance.getId()); assertNotNull(updatedTree); assertThat(updatedTree).hasStructure(describeActivityInstanceTree(processInstance.getProcessDefinitionId()).activity("task1").activity("task2").done()); ActivityInstance task2Instance = getChildInstanceForActivity(updatedTree, "task2"); assertNotNull(task2Instance); assertEquals(1, task2Instance.getExecutionIds().length); String task2ExecutionId = task2Instance.getExecutionIds()[0]; assertEquals(4, runtimeService.createVariableInstanceQuery().count()); assertEquals("procInstValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstVar")); assertEquals("localValue", runtimeService.getVariableLocal(task2ExecutionId, "localVar")); assertEquals("procInstMapValue", runtimeService.getVariableLocal(processInstance.getId(), "procInstMapVar")); assertEquals("localMapValue", runtimeService.getVariableLocal(task2ExecutionId, "localMapVar")); completeTasksInOrder("task1", "task2"); assertProcessEnded(processInstance.getId()); }