*/
@Test
public void startProcess() throws Exception {
RepositoryService repositoryService = activitiRule.getRepositoryService();
repositoryService.createDeployment().addInputStream("quitFlowOnParallel.bpmn20.xml", new FileInputStream(filename)).deploy();
RuntimeService runtimeService = activitiRule.getRuntimeService();
Map<String, Object> variableMap = new HashMap<String, Object>();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("quitFlowOnParallel", variableMap);
assertNotNull(processInstance.getId());
System.out.println("id " + processInstance.getId() + " " + processInstance.getProcessDefinitionId());
// task 1111111
TaskService taskService = activitiRule.getTaskService();
Task task111111 = taskService.createTaskQuery().taskName("11111").singleResult();
taskService.complete(task111111.getId());
// 两个并行任务
long count = taskService.createTaskQuery().count();
assertEquals(2, count);
// 完成任务:22222222,回到任务11111
Task task22222222 = taskService.createTaskQuery().taskName("22222222").singleResult();
variableMap = new HashMap<String, Object>();
variableMap.put("type", "back");
taskService.complete(task22222222.getId(), variableMap);
// 统计任务数量
count = taskService.createTaskQuery().count();
assertEquals(2, count);
// 再次完成任务111111
task111111 = taskService.createTaskQuery().taskName("11111").singleResult();
taskService.complete(task111111.getId());
count = taskService.createTaskQuery().count();
assertEquals(3, count);
// 清理未完成的流程,避免影响其他测试方法
runtimeService.deleteProcessInstance(processInstance.getId(), "");
HistoryService historyService = activitiRule.getHistoryService();
historyService.deleteHistoricProcessInstance(processInstance.getId());
}