use of org.activiti.engine.runtime.ProcessInstance in project Activiti by Activiti.
the class MultiInstanceTest method testExecutionListenersOnMultiInstanceUserTask.
@Deployment
public void testExecutionListenersOnMultiInstanceUserTask() {
resetTestCounts();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testExecutionListenersOnMultiInstanceUserTask");
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
for (Task task : tasks) {
taskService.complete(task.getId());
}
assertEquals(4, TestTaskCompletionListener.count.get());
assertEquals(4, TestStartExecutionListener.countWithLoopCounter.get());
assertEquals(4, TestEndExecutionListener.countWithLoopCounter.get());
assertEquals(1, TestStartExecutionListener.countWithoutLoopCounter.get());
assertEquals(1, TestEndExecutionListener.countWithoutLoopCounter.get());
}
use of org.activiti.engine.runtime.ProcessInstance in project Activiti by Activiti.
the class MultiInstanceTest method testNestedMultiInstanceTasks.
@Deployment(resources = { "org/activiti/engine/test/bpmn/multiinstance/MultiInstanceTest.testNestedMultiInstanceTasks.bpmn20.xml" })
public void testNestedMultiInstanceTasks() {
List<String> processes = Arrays.asList("process A", "process B");
List<String> assignees = Arrays.asList("kermit", "gonzo");
Map<String, Object> variableMap = new HashMap<String, Object>();
variableMap.put("subProcesses", processes);
variableMap.put("assignees", assignees);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("miNestedMultiInstanceTasks", variableMap);
List<Task> tasks = taskService.createTaskQuery().list();
assertEquals(processes.size() * assignees.size(), tasks.size());
for (Task t : tasks) {
taskService.complete(t.getId());
}
List<ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery().processDefinitionKey("miNestedMultiInstanceTasks").list();
assertEquals(0, processInstances.size());
assertProcessEnded(processInstance.getId());
}
use of org.activiti.engine.runtime.ProcessInstance in project Activiti by Activiti.
the class MultiInstanceTest method checkParallelUserTasksCustomExtensions.
private void checkParallelUserTasksCustomExtensions(String processDefinitionKey) {
Map<String, Object> vars = new HashMap<String, Object>();
List<String> assigneeList = Arrays.asList("kermit", "gonzo", "fozzie");
vars.put("assigneeList", assigneeList);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey, vars);
List<Task> tasks = taskService.createTaskQuery().orderByTaskName().asc().list();
assertEquals(3, tasks.size());
assertEquals("My Task 0", tasks.get(0).getName());
assertEquals("My Task 1", tasks.get(1).getName());
assertEquals("My Task 2", tasks.get(2).getName());
tasks = taskService.createTaskQuery().orderByTaskAssignee().asc().list();
assertEquals("fozzie", tasks.get(0).getAssignee());
assertEquals("gonzo", tasks.get(1).getAssignee());
assertEquals("kermit", tasks.get(2).getAssignee());
// Completing 3 tasks will trigger completioncondition
taskService.complete(tasks.get(0).getId());
taskService.complete(tasks.get(1).getId());
taskService.complete(tasks.get(2).getId());
assertEquals(0, taskService.createTaskQuery().count());
assertProcessEnded(processInstance.getProcessInstanceId());
}
use of org.activiti.engine.runtime.ProcessInstance in project Activiti by Activiti.
the class MultiInstanceTest method testSequentialMultiInstanceCallActivityWithErrorBoundaryEvent.
@Deployment(resources = { "org/activiti/engine/test/bpmn/multiinstance/MultiInstanceTest.callActivityWithBoundaryErrorEventSequential.bpmn20.xml", "org/activiti/engine/test/bpmn/multiinstance/MultiInstanceTest.throwingErrorEventSubProcess.bpmn20.xml" })
public void testSequentialMultiInstanceCallActivityWithErrorBoundaryEvent() {
Map<String, Object> variableMap = new HashMap<String, Object>();
variableMap.put("assignees", Arrays.asList("kermit", "gonzo"));
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("process", variableMap);
List<Task> tasks = taskService.createTaskQuery().list();
assertEquals(1, tasks.size());
// finish first call activity with error
variableMap = new HashMap<String, Object>();
variableMap.put("done", false);
taskService.complete(tasks.get(0).getId(), variableMap);
tasks = taskService.createTaskQuery().list();
assertEquals(1, tasks.size());
taskService.complete(tasks.get(0).getId());
List<ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery().processDefinitionKey("process").list();
assertEquals(0, processInstances.size());
assertProcessEnded(processInstance.getId());
}
use of org.activiti.engine.runtime.ProcessInstance in project Activiti by Activiti.
the class MultiInstanceTest method testParalellEmptyCollectionWithNonEmptyCollection.
@Deployment(resources = { "org/activiti/engine/test/bpmn/multiinstance/MultiInstanceTest.testParallelEmptyCollection.bpmn20.xml" })
public void testParalellEmptyCollectionWithNonEmptyCollection() {
Collection<String> collection = Collections.singleton("Test");
Map<String, Object> variableMap = new HashMap<String, Object>();
variableMap.put("collection", collection);
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testParalellEmptyCollection", variableMap);
assertNotNull(processInstance);
Task task = taskService.createTaskQuery().singleResult();
assertNotNull(task);
taskService.complete(task.getId());
assertProcessEnded(processInstance.getId());
}
Aggregations