use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class ExclusiveTaskTest method testExclusiveService.
@Deployment
public void testExclusiveService() {
// start process
runtimeService.startProcessInstanceByKey("exclusive");
// now there should be 1 exclusive job in the database:
Job job = managementService.createJobQuery().singleResult();
assertNotNull(job);
assertTrue(((JobEntity) job).isExclusive());
waitForJobExecutorToProcessAllJobs(6000L, 100L);
// all the jobs are done
assertEquals(0, managementService.createJobQuery().count());
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class SignalEventTest method testSignalStartEventFromProcesAsync.
public void testSignalStartEventFromProcesAsync() {
// Deploy test processes
repositoryService.createDeployment().addClasspathResource("org/activiti/engine/test/bpmn/event/signal/SignalEventTest.testSignalStartEventAsync.bpmn20.xml").deploy();
// Starting the process that fires the signal should start 1 process instance that are listening on that signal, the others are done async
runtimeService.startProcessInstanceByKey("processWithSignalThrow");
// Verify
assertEquals(0, runtimeService.createProcessInstanceQuery().count());
assertEquals(0, taskService.createTaskQuery().count());
assertEquals(3, managementService.createJobQuery().count());
for (Job job : managementService.createJobQuery().list()) {
managementService.executeJob(job.getId());
}
assertEquals(3, runtimeService.createProcessInstanceQuery().count());
assertEquals(3, taskService.createTaskQuery().count());
List<Task> tasks = taskService.createTaskQuery().orderByTaskName().asc().list();
List<String> names = Arrays.asList("A", "B", "C");
for (int i = 0; i < tasks.size(); i++) {
assertEquals("Task in process " + names.get(i), tasks.get(i).getName());
}
// Start a process with a signal boundary event
runtimeService.startProcessInstanceByKey("processWithSignalCatch");
assertEquals(4, runtimeService.createProcessInstanceQuery().count());
assertEquals(4, taskService.createTaskQuery().count());
assertEquals(1, taskService.createTaskQuery().taskName("Task in process D").count());
// Firing again
runtimeService.startProcessInstanceByKey("processWithSignalThrow");
assertEquals(4, managementService.createJobQuery().count());
for (Job job : managementService.createJobQuery().list()) {
managementService.executeJob(job.getId());
}
assertEquals(7, runtimeService.createProcessInstanceQuery().count());
assertEquals(7, taskService.createTaskQuery().count());
assertEquals(1, taskService.createTaskQuery().taskName("Task after signal").count());
// Cleanup
for (org.activiti.engine.repository.Deployment deployment : repositoryService.createDeploymentQuery().list()) {
repositoryService.deleteDeployment(deployment.getId(), true);
}
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class BoundaryTimerNonInterruptingEventTest method testTimerOnEmbeddedSubprocess.
@Deployment
public /**
* see https://activiti.atlassian.net/browse/ACT-1173
*/
void testTimerOnEmbeddedSubprocess() {
String id = runtimeService.startProcessInstanceByKey("nonInterruptingTimerOnEmbeddedSubprocess").getId();
TaskQuery tq = taskService.createTaskQuery().taskAssignee("kermit");
assertEquals(1, tq.count());
// Simulate timer
Job timer = managementService.createJobQuery().singleResult();
managementService.executeJob(timer.getId());
tq = taskService.createTaskQuery().taskAssignee("kermit");
assertEquals(2, tq.count());
List<Task> tasks = tq.list();
taskService.complete(tasks.get(0).getId());
taskService.complete(tasks.get(1).getId());
assertProcessEnded(id);
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class BoundaryTimerNonInterruptingEventTest method testTimerOnConcurrentTasks2.
// Difference with previous test: now the join will be reached first
@Deployment(resources = { "org/activiti/engine/test/bpmn/event/timer/BoundaryTimerNonInterruptingEventTest.testTimerOnConcurrentTasks.bpmn20.xml" })
public void testTimerOnConcurrentTasks2() {
String procId = runtimeService.startProcessInstanceByKey("nonInterruptingOnConcurrentTasks").getId();
assertEquals(2, taskService.createTaskQuery().count());
Job timer = managementService.createJobQuery().singleResult();
managementService.executeJob(timer.getId());
assertEquals(3, taskService.createTaskQuery().count());
// Complete 2 tasks that will trigger the join
Task task = taskService.createTaskQuery().taskDefinitionKey("firstTask").singleResult();
taskService.complete(task.getId());
task = taskService.createTaskQuery().taskDefinitionKey("secondTask").singleResult();
taskService.complete(task.getId());
assertEquals(1, taskService.createTaskQuery().count());
// Finally, complete the task that was created due to the timer
task = taskService.createTaskQuery().taskDefinitionKey("timerFiredTask").singleResult();
taskService.complete(task.getId());
assertProcessEnded(procId);
}
use of org.activiti.engine.runtime.Job in project Activiti by Activiti.
the class BoundaryTimerNonInterruptingEventTest method testTimerOnConcurrentTasks.
@Deployment
public void testTimerOnConcurrentTasks() {
String procId = runtimeService.startProcessInstanceByKey("nonInterruptingOnConcurrentTasks").getId();
assertEquals(2, taskService.createTaskQuery().count());
Job timer = managementService.createJobQuery().singleResult();
managementService.executeJob(timer.getId());
assertEquals(3, taskService.createTaskQuery().count());
// Complete task that was reached by non interrupting timer
Task task = taskService.createTaskQuery().taskDefinitionKey("timerFiredTask").singleResult();
taskService.complete(task.getId());
assertEquals(2, taskService.createTaskQuery().count());
// Complete other tasks
for (Task t : taskService.createTaskQuery().list()) {
taskService.complete(t.getId());
}
assertProcessEnded(procId);
}
Aggregations