@Test public void testChangeTaskType() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ExternalTaskModels.ONE_EXTERNAL_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel() .startEvent() .businessRuleTask("externalBusinessRuleTask") .camundaType(ExternalTaskModels.EXTERNAL_TASK_TYPE) .camundaTopic(ExternalTaskModels.TOPIC) .camundaTaskPriority(ExternalTaskModels.PRIORITY.toString()) .endEvent() .done()); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("externalTask", "externalBusinessRuleTask") .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then the task and process can be completed LockedExternalTask task = fetchAndLockSingleTask(ExternalTaskModels.TOPIC); rule.getExternalTaskService().complete(task.getId(), WORKER_ID); testHelper.assertProcessEnded(processInstance.getId()); }
@Test public void testChangeTaskType() { // given ProcessDefinition sourceProcessDefinition = testHelper.deployAndGetDefinition(ExternalTaskModels.ONE_EXTERNAL_TASK_PROCESS); ProcessDefinition targetProcessDefinition = testHelper.deployAndGetDefinition(ProcessModels.newModel() .startEvent() .businessRuleTask("externalBusinessRuleTask") .camundaType(ExternalTaskModels.EXTERNAL_TASK_TYPE) .camundaTopic(ExternalTaskModels.TOPIC) .camundaTaskPriority(ExternalTaskModels.PRIORITY.toString()) .endEvent() .done()); MigrationPlan migrationPlan = rule.getRuntimeService() .createMigrationPlan(sourceProcessDefinition.getId(), targetProcessDefinition.getId()) .mapActivities("externalTask", "externalBusinessRuleTask") .build(); ProcessInstance processInstance = rule.getRuntimeService().startProcessInstanceById(sourceProcessDefinition.getId()); // when testHelper.migrateProcessInstance(migrationPlan, processInstance); // then the task and process can be completed LockedExternalTask task = fetchAndLockSingleTask(ExternalTaskModels.TOPIC); rule.getExternalTaskService().complete(task.getId(), WORKER_ID); testHelper.assertProcessEnded(processInstance.getId()); }