@Test public void testSkipListenerInvocationF() { // given DelegateEvent.clearEvents(); ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(instance) .activityBuilder("user2") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done()); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); Batch batch = runtimeService .createModification(processDefinition.getId()) .cancelAllForActivity("user2") .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then assertEquals(0, DelegateEvent.getEvents().size()); }
@Test public void testListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when testHelper.createProcessInstanceAndMigrate(migrationPlan); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(targetProcessDefinition.getId(), event.getProcessDefinitionId()); assertEquals("subProcess", event.getCurrentActivityId()); DelegateEvent.clearEvents(); }
@Test public void testListenerInvocation() { // given DelegateEvent.clearEvents(); ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(instance) .activityBuilder("user2") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); Batch batch = runtimeService .createModification(processDefinition.getId()) .startBeforeActivity("user2") .processInstanceIds(Arrays.asList(processInstance.getId())) .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(processDefinition.getId(), event.getProcessDefinitionId()); assertEquals("user2", event.getCurrentActivityId()); DelegateEvent.clearEvents(); }
@Test public void shouldSkipCustomListeners() { // given ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(ProcessModels.TWO_TASKS_PROCESS).activityBuilder("userTask1") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, IncrementCounterListener.class.getName()).done()); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); runtimeService.deleteProcessInstance(processInstance.getId(), "test"); IncrementCounterListener.counter = 0; // when runtimeService.restartProcessInstances(processDefinition.getId()) .startBeforeActivity("userTask1") .processInstanceIds(processInstance.getId()) .skipCustomListeners() .execute(); // then assertEquals(0, IncrementCounterListener.counter); }
@Test public void testNoListenersCalled() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(modify(CompensationModels.COMPENSATION_ONE_TASK_SUBPROCESS_MODEL) .activityBuilder("subProcess") .camundaExecutionListenerClass( ExecutionListener.EVENTNAME_END, RecorderExecutionListener.class.getName()) .done()); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(CompensationModels.ONE_COMPENSATION_TASK_MODEL); MigrationPlan migrationPlan = rule.getRuntimeService().createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask2", "userTask2") .mapActivities("compensationBoundary", "compensationBoundary") .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); testHelper.completeTask("userTask1"); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then // the listener was only called once when the sub process completed properly Assert.assertEquals(1, RecorderExecutionListener.getRecordedEvents().size()); }
@Test public void testSkipListenerInvocationForRemovedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, DelegateExecutionListener.class.getName()) .done() ); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when ProcessInstance processInstance = rule.getRuntimeService() .startProcessInstanceById(migrationPlan.getSourceProcessDefinitionId()); rule.getRuntimeService() .newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .execute(); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(0, recordedEvents.size()); DelegateEvent.clearEvents(); }
@Test public void testSkipListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = engineRule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); ProcessInstance processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); Batch batch = engineRule.getRuntimeService().newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then assertEquals(0, DelegateEvent.getEvents().size()); }
@Test public void testEndListenerInvocationForRemovedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, DelegateExecutionListener.class.getName()) .done() ); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when testHelper.createProcessInstanceAndMigrate(migrationPlan); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(sourceProcessDefinition.getId(), event.getProcessDefinitionId()); assertEquals("subProcess", event.getCurrentActivityId()); assertEquals(testHelper.getSingleActivityInstanceBeforeMigration("subProcess").getId(), event.getActivityInstanceId()); DelegateEvent.clearEvents(); }
@Test public void testSkipListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when ProcessInstance processInstance = rule.getRuntimeService() .startProcessInstanceById(migrationPlan.getSourceProcessDefinitionId()); rule.getRuntimeService() .newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .execute(); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(0, recordedEvents.size()); DelegateEvent.clearEvents(); }
@Test public void testListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = engineRule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); ProcessInstance processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); Batch batch = engineRule.getRuntimeService().newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(targetProcessDefinition.getId(), event.getProcessDefinitionId()); assertEquals("subProcess", event.getCurrentActivityId()); DelegateEvent.clearEvents(); }
@Test public void shouldSkipCustomListeners() { // given ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(ProcessModels.TWO_TASKS_PROCESS).activityBuilder("userTask1") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, IncrementCounterListener.class.getName()).done()); ProcessInstance processInstance1 = runtimeService.startProcessInstanceByKey("Process"); ProcessInstance processInstance2 = runtimeService.startProcessInstanceByKey("Process"); runtimeService.deleteProcessInstance(processInstance1.getId(), "test"); runtimeService.deleteProcessInstance(processInstance2.getId(), "test"); IncrementCounterListener.counter = 0; // when Batch batch = runtimeService.restartProcessInstances(processDefinition.getId()) .startBeforeActivity("userTask1") .processInstanceIds(processInstance1.getId(), processInstance2.getId()) .skipCustomListeners() .executeAsync(); helper.completeBatch(batch); // then assertEquals(0, IncrementCounterListener.counter); }
@Test public void testSkipListenerInvocationF() { // given DelegateEvent.clearEvents(); ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(instance) .activityBuilder("user2") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done()); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); Batch batch = runtimeService .createModification(processDefinition.getId()) .cancelAllForActivity("user2") .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then assertEquals(0, DelegateEvent.getEvents().size()); }
@Test public void testListenerInvocation() { // given DelegateEvent.clearEvents(); ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(instance) .activityBuilder("user2") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId()); Batch batch = runtimeService .createModification(processDefinition.getId()) .startBeforeActivity("user2") .processInstanceIds(Arrays.asList(processInstance.getId())) .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(processDefinition.getId(), event.getProcessDefinitionId()); assertEquals("user2", event.getCurrentActivityId()); DelegateEvent.clearEvents(); }
@Test public void shouldSkipCustomListeners() { // given ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(ProcessModels.TWO_TASKS_PROCESS).activityBuilder("userTask1") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, IncrementCounterListener.class.getName()).done()); ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("Process"); runtimeService.deleteProcessInstance(processInstance.getId(), "test"); IncrementCounterListener.counter = 0; // when runtimeService.restartProcessInstances(processDefinition.getId()) .startBeforeActivity("userTask1") .processInstanceIds(processInstance.getId()) .skipCustomListeners() .execute(); // then assertEquals(0, IncrementCounterListener.counter); }
@Test public void testListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when testHelper.createProcessInstanceAndMigrate(migrationPlan); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(targetProcessDefinition.getId(), event.getProcessDefinitionId()); assertEquals("subProcess", event.getCurrentActivityId()); DelegateEvent.clearEvents(); }
@Test public void testNoListenersCalled() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(modify(CompensationModels.COMPENSATION_ONE_TASK_SUBPROCESS_MODEL) .activityBuilder("subProcess") .camundaExecutionListenerClass( ExecutionListener.EVENTNAME_END, RecorderExecutionListener.class.getName()) .done()); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(CompensationModels.ONE_COMPENSATION_TASK_MODEL); MigrationPlan migrationPlan = rule.getRuntimeService().createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask2", "userTask2") .mapActivities("compensationBoundary", "compensationBoundary") .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); testHelper.completeTask("userTask1"); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then // the listener was only called once when the sub process completed properly Assert.assertEquals(1, RecorderExecutionListener.getRecordedEvents().size()); }
@Test public void testSkipListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = migrationRule.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = migrationRule.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = engineRule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); ProcessInstance processInstance = engineRule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); Batch batch = engineRule.getRuntimeService().newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .executeAsync(); helper.executeSeedJob(batch); // when helper.executeJobs(batch); // then assertEquals(0, DelegateEvent.getEvents().size()); }
@Test public void testEndListenerInvocationForRemovedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_END, DelegateExecutionListener.class.getName()) .done() ); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when testHelper.createProcessInstanceAndMigrate(migrationPlan); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(1, recordedEvents.size()); DelegateEvent event = recordedEvents.get(0); assertEquals(sourceProcessDefinition.getId(), event.getProcessDefinitionId()); assertEquals("subProcess", event.getCurrentActivityId()); assertEquals(testHelper.getSingleActivityInstanceBeforeMigration("subProcess").getId(), event.getActivityInstanceId()); DelegateEvent.clearEvents(); }
@Test public void testSkipListenerInvocationForNewlyCreatedScope() { // given DelegateEvent.clearEvents(); ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.ONE_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(modify(ProcessModels.SUBPROCESS_PROCESS) .activityBuilder("subProcess") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, DelegateExecutionListener.class.getName()) .done() ); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("userTask", "userTask") .build(); // when ProcessInstance processInstance = rule.getRuntimeService() .startProcessInstanceById(migrationPlan.getSourceProcessDefinitionId()); rule.getRuntimeService() .newMigration(migrationPlan) .processInstanceIds(Arrays.asList(processInstance.getId())) .skipCustomListeners() .execute(); // then List<DelegateEvent> recordedEvents = DelegateEvent.getEvents(); assertEquals(0, recordedEvents.size()); DelegateEvent.clearEvents(); }
@Test public void shouldSkipCustomListeners() { // given ProcessDefinition processDefinition = testRule.deployAndGetDefinition(modify(ProcessModels.TWO_TASKS_PROCESS).activityBuilder("userTask1") .camundaExecutionListenerClass(ExecutionListener.EVENTNAME_START, IncrementCounterListener.class.getName()).done()); ProcessInstance processInstance1 = runtimeService.startProcessInstanceByKey("Process"); ProcessInstance processInstance2 = runtimeService.startProcessInstanceByKey("Process"); runtimeService.deleteProcessInstance(processInstance1.getId(), "test"); runtimeService.deleteProcessInstance(processInstance2.getId(), "test"); IncrementCounterListener.counter = 0; // when Batch batch = runtimeService.restartProcessInstances(processDefinition.getId()) .startBeforeActivity("userTask1") .processInstanceIds(processInstance1.getId(), processInstance2.getId()) .skipCustomListeners() .executeAsync(); helper.completeBatch(batch); // then assertEquals(0, IncrementCounterListener.counter); }