use of org.activiti.engine.task.Task in project Activiti by Activiti.
the class MultiInstanceTest method testEndTimeOnMiSubprocess.
@Deployment
public void testEndTimeOnMiSubprocess() {
if (!processEngineConfiguration.getHistoryLevel().isAtLeast(HistoryLevel.AUDIT)) {
return;
}
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("multiInstanceSubProcessParallelTasks");
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
assertEquals(2, tasks.size());
assertEquals("User Task 1", tasks.get(0).getName());
assertEquals("User Task 1", tasks.get(1).getName());
// End time should not be set for the subprocess
List<HistoricActivityInstance> historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("subprocess1").list();
assertEquals(2, historicActivityInstances.size());
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
assertNotNull(historicActivityInstance.getStartTime());
assertNull(historicActivityInstance.getEndTime());
}
// Complete one of the user tasks. This should not trigger setting of end time of the subprocess, but due to a bug it did exactly that
taskService.complete(tasks.get(0).getId());
historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("subprocess1").list();
assertEquals(2, historicActivityInstances.size());
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
assertNull(historicActivityInstance.getEndTime());
}
taskService.complete(tasks.get(1).getId());
historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("subprocess1").list();
assertEquals(2, historicActivityInstances.size());
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
assertNull(historicActivityInstance.getEndTime());
}
tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskName("User Task 3").list();
assertEquals(2, tasks.size());
for (Task task : tasks) {
taskService.complete(task.getId());
historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("subprocess1").list();
assertEquals(2, historicActivityInstances.size());
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
assertNull(historicActivityInstance.getEndTime());
}
}
// Finishing the tasks should also set the end time
tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
assertEquals(2, tasks.size());
for (Task task : tasks) {
taskService.complete(task.getId());
}
historicActivityInstances = historyService.createHistoricActivityInstanceQuery().activityId("subprocess1").list();
assertEquals(2, historicActivityInstances.size());
for (HistoricActivityInstance historicActivityInstance : historicActivityInstances) {
assertNotNull(historicActivityInstance.getEndTime());
}
}
use of org.activiti.engine.task.Task in project Activiti by Activiti.
the class MultiInstanceTest method testMultiInstanceParallelReceiveTask.
@Deployment
public void testMultiInstanceParallelReceiveTask() {
runtimeService.startProcessInstanceByKey("multi-instance-receive");
List<Execution> executions = runtimeService.createExecutionQuery().activityId("theReceiveTask").list();
assertEquals(4, executions.size());
// Complete all four of the executions
for (Execution execution : executions) {
runtimeService.signal(execution.getId());
}
// There is one task after the task
Task task = taskService.createTaskQuery().singleResult();
assertNotNull(task);
taskService.complete(task.getId());
assertEquals(0, runtimeService.createExecutionQuery().count());
}
use of org.activiti.engine.task.Task in project Activiti by Activiti.
the class MultiInstanceTest method testParallelCallActivityWithTimer.
@Deployment(resources = { "org/activiti/engine/test/bpmn/multiinstance/MultiInstanceTest.testParallelCallActivityWithTimer.bpmn20.xml", "org/activiti/engine/test/bpmn/multiinstance/MultiInstanceTest.externalSubProcess.bpmn20.xml" })
public void testParallelCallActivityWithTimer() {
String procId = runtimeService.startProcessInstanceByKey("miParallelCallActivity").getId();
List<Task> tasks = taskService.createTaskQuery().list();
assertEquals(6, tasks.size());
for (int i = 0; i < 2; i++) {
taskService.complete(tasks.get(i).getId());
}
// Fire timer
Job timer = managementService.createJobQuery().singleResult();
managementService.executeJob(timer.getId());
Task taskAfterTimer = taskService.createTaskQuery().singleResult();
assertEquals("taskAfterTimer", taskAfterTimer.getTaskDefinitionKey());
taskService.complete(taskAfterTimer.getId());
assertProcessEnded(procId);
}
use of org.activiti.engine.task.Task in project Activiti by Activiti.
the class MultiInstanceTest method testSequentialSubProcessCompletionCondition.
@Deployment
public void testSequentialSubProcessCompletionCondition() {
String procId = runtimeService.startProcessInstanceByKey("miSequentialSubprocessCompletionCondition").getId();
TaskQuery query = taskService.createTaskQuery().orderByTaskName().asc();
for (int i = 0; i < 3; i++) {
List<Task> tasks = query.list();
assertEquals(2, tasks.size());
assertEquals("task one", tasks.get(0).getName());
assertEquals("task two", tasks.get(1).getName());
taskService.complete(tasks.get(0).getId());
taskService.complete(tasks.get(1).getId());
}
assertProcessEnded(procId);
}
use of org.activiti.engine.task.Task in project Activiti by Activiti.
the class MultiInstanceTest method checkSequentialUserTasks.
private void checkSequentialUserTasks(String processDefinitionKey) {
String procId = runtimeService.startProcessInstanceByKey(processDefinitionKey, CollectionUtil.singletonMap("nrOfLoops", 3)).getId();
Task task = taskService.createTaskQuery().singleResult();
assertEquals("My Task", task.getName());
assertEquals("kermit_0", task.getAssignee());
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
assertEquals("My Task", task.getName());
assertEquals("kermit_1", task.getAssignee());
taskService.complete(task.getId());
task = taskService.createTaskQuery().singleResult();
assertEquals("My Task", task.getName());
assertEquals("kermit_2", task.getAssignee());
taskService.complete(task.getId());
assertNull(taskService.createTaskQuery().singleResult());
assertProcessEnded(procId);
}
Aggregations