@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; }
inOrder.verify(mockModificationBuilder).cancelAllForActivity("activityId"); inOrder.verify(mockModificationBuilder).cancelActivityInstance("activityInstanceId"); inOrder.verify(mockModificationBuilder).cancelTransitionInstance("transitionInstanceId");
inOrder.verify(mockModificationBuilder).cancelAllForActivity("activityId"); inOrder.verify(mockModificationBuilder).cancelActivityInstance("activityInstanceId"); inOrder.verify(mockModificationBuilder).cancelTransitionInstance("transitionInstanceId");
/** * CAM-4090 */ @Deployment(resources = NESTED_PARALLEL_ASYNC_BEFORE_SCOPE_TASK_PROCESS) public void testRepeatedStartAndCancellationForTransitionInstance() { // given there is one transition instance in a scope ProcessInstance instance = runtimeService.createProcessInstanceByKey("nestedConcurrentTasksProcess") .startBeforeActivity("innerTask1") .execute(); ActivityInstance tree = runtimeService.getActivityInstance(instance.getId()); TransitionInstance transitionInstance = tree.getTransitionInstances("innerTask1")[0]; // when I start an activity in the same scope // and cancel the first transition instance runtimeService.createProcessInstanceModification(instance.getId()) .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .cancelTransitionInstance(transitionInstance.getId()) .execute(); // then the process has ended assertProcessEnded(instance.getId()); }
.cancelTransitionInstance(transitionInstances[0].getId()) // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelTransitionInstance(transitionInstances[1].getId())
.cancelAllForActivity("innerTask1") .execute();
/** * CAM-4090 */ @Deployment(resources = NESTED_PARALLEL_ASYNC_BEFORE_SCOPE_TASK_PROCESS) public void testRepeatedStartAndCancellationForTransitionInstance() { // given there is one transition instance in a scope ProcessInstance instance = runtimeService.createProcessInstanceByKey("nestedConcurrentTasksProcess") .startBeforeActivity("innerTask1") .execute(); ActivityInstance tree = runtimeService.getActivityInstance(instance.getId()); TransitionInstance transitionInstance = tree.getTransitionInstances("innerTask1")[0]; // when I start an activity in the same scope // and cancel the first transition instance runtimeService.createProcessInstanceModification(instance.getId()) .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .cancelTransitionInstance(transitionInstance.getId()) .execute(); // then the process has ended assertProcessEnded(instance.getId()); }
.cancelTransitionInstance(transitionInstances[0].getId()) // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelAllForActivity("innerTask2") // compact tree .startBeforeActivity("innerTask2") // expand tree .cancelTransitionInstance(transitionInstances[1].getId())
.cancelAllForActivity("innerTask1") .execute();