package org.jbpm.spring.test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import java.util.List; import org.drools.runtime.process.ProcessInstance; import org.jbpm.spring.domain.HumanTaskEngine; import org.jbpm.spring.domain.ProcessEngine; import org.jbpm.task.query.TaskSummary; import org.jbpm.test.JBPMHelper; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"classpath:jbpm-context.xml"}) public class ProcessEngineTest { @Autowired private ProcessEngine engine; @Autowired private HumanTaskEngine taskClient; @BeforeClass public static void setupOnce() { JBPMHelper.startH2Server(); JBPMHelper.setupDataSource(); } @Test public void testStartScriptProcess() { engine.startProcess("script"); } @Test public void testStartHumanProcess() throws Exception { long piId = engine.startProcess("humantask"); List<TaskSummary> tasks = taskClient.getTaskForUser("john"); assertNotNull(tasks); assertEquals(1, tasks.size()); long taskId = tasks.get(0).getId(); taskClient.startTask(taskId, "john"); taskClient.completeTask(taskId, "john"); tasks = taskClient.getTaskForUser("john"); assertNotNull(tasks); assertEquals(1, tasks.size()); taskId = tasks.get(0).getId(); taskClient.startTask(taskId, "john"); taskClient.completeTask(taskId, "john"); tasks = taskClient.getTaskForUser("john"); assertNotNull(tasks); assertEquals(1, tasks.size()); taskId = tasks.get(0).getId(); taskClient.startTask(taskId, "john"); taskClient.completeTask(taskId, "john"); ProcessInstance pi = engine.getKsession().getProcessInstance(piId); assertNull(pi); } }