Search in sources :

Example 26 with Task

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());
    }
}
Also used : Task(org.activiti.engine.task.Task) DelegateTask(org.activiti.engine.delegate.DelegateTask) HistoricProcessInstance(org.activiti.engine.history.HistoricProcessInstance) ProcessInstance(org.activiti.engine.runtime.ProcessInstance) HistoricActivityInstance(org.activiti.engine.history.HistoricActivityInstance) Deployment(org.activiti.engine.test.Deployment)

Example 27 with Task

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());
}
Also used : Task(org.activiti.engine.task.Task) DelegateTask(org.activiti.engine.delegate.DelegateTask) Execution(org.activiti.engine.runtime.Execution) DelegateExecution(org.activiti.engine.delegate.DelegateExecution) Deployment(org.activiti.engine.test.Deployment)

Example 28 with Task

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);
}
Also used : Task(org.activiti.engine.task.Task) DelegateTask(org.activiti.engine.delegate.DelegateTask) Job(org.activiti.engine.runtime.Job) Deployment(org.activiti.engine.test.Deployment)

Example 29 with Task

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);
}
Also used : Task(org.activiti.engine.task.Task) DelegateTask(org.activiti.engine.delegate.DelegateTask) TaskQuery(org.activiti.engine.task.TaskQuery) Deployment(org.activiti.engine.test.Deployment)

Example 30 with Task

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);
}
Also used : Task(org.activiti.engine.task.Task) DelegateTask(org.activiti.engine.delegate.DelegateTask)

Aggregations

Task (org.activiti.engine.task.Task)718 Deployment (org.activiti.engine.test.Deployment)469 ProcessInstance (org.activiti.engine.runtime.ProcessInstance)374 HashMap (java.util.HashMap)152 HistoricProcessInstance (org.activiti.engine.history.HistoricProcessInstance)95 Date (java.util.Date)51 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)49 DelegateTask (org.activiti.engine.delegate.DelegateTask)42 JsonNode (com.fasterxml.jackson.databind.JsonNode)41 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)41 Test (org.junit.Test)40 Job (org.activiti.engine.runtime.Job)39 HttpGet (org.apache.http.client.methods.HttpGet)36 Calendar (java.util.Calendar)35 Execution (org.activiti.engine.runtime.Execution)33 ArrayList (java.util.ArrayList)32 TaskQuery (org.activiti.engine.task.TaskQuery)32 HistoricTaskInstance (org.activiti.engine.history.HistoricTaskInstance)28 HttpPost (org.apache.http.client.methods.HttpPost)23 StringEntity (org.apache.http.entity.StringEntity)21