package org.jbpm.migration.scenarios;
import static org.jbpm.migration.tools.listeners.TrackingListenerAssert.assertProcessCompleted;
import static org.jbpm.migration.tools.listeners.TrackingListenerAssert.assertTriggeredAndLeft;
import java.util.HashMap;
import org.assertj.core.api.Assertions;
import org.jbpm.migration.JbpmMigrationRuntimeTest;
import org.jbpm.migration.tools.jpdl.JpdlAssert;
import org.jbpm.migration.tools.jpdl.JpdlHelper;
import org.jbpm.migration.tools.jpdl.handlers.DefaultActionHandler;
import org.jbpm.migration.tools.jpdl.listeners.TrackingActionListener;
import org.jbpm.migration.tools.listeners.TrackingProcessEventListener;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.exe.TaskInstance;
import org.jbpm.test.JbpmJUnitTestCase;
import org.junit.BeforeClass;
import org.junit.Test;
import org.kie.api.runtime.process.WorkItem;
/**
* Testing migration of swimlanes.
*
*/
public class SwimlanesTest extends JbpmMigrationRuntimeTest {
public static final String definition
= "org/jbpm/migration/scenarios/swimlanesTest/processdefinition.xml";
public static final String processId = "swimlanesTest_Process";
@BeforeClass
public static void getTestReady() {
prepareProcess(definition);
}
@Test
public void testJpdl() {
ProcessInstance pi = processDef.createProcessInstance();
TrackingActionListener listener = new TrackingActionListener();
DefaultActionHandler.setTrackingListener(listener);
pi.signal();
JpdlAssert.assertProcessStarted(pi);
TaskInstance ti = JpdlHelper.getTaskInstance("task-node1", pi);
Assertions.assertThat(ti.getActorId()).isEqualTo("1111");
ti.end();
ti = JpdlHelper.getTaskInstance("task-node2", pi);
Assertions.assertThat(ti.getActorId()).isEqualTo("2222");
ti.end();
JpdlAssert.assertProcessCompleted(pi);
}
@Test
public void testBpmn() {
ksession = kbase.newKieSession();
TrackingProcessEventListener listener = new TrackingProcessEventListener();
ksession.addEventListener(listener);
JbpmJUnitTestCase.TestWorkItemHandler handler = new JbpmJUnitTestCase.TestWorkItemHandler();
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", handler);
ksession.startProcess(processId);
WorkItem wi = handler.getWorkItem();
ksession.getWorkItemManager().completeWorkItem(wi.getId(), new HashMap<String, Object>());
assertTriggeredAndLeft(listener, "task-node1");
wi = handler.getWorkItem();
ksession.getWorkItemManager().completeWorkItem(wi.getId(), new HashMap<String, Object>());
assertTriggeredAndLeft(listener, "task-node2");
assertProcessCompleted(listener, processId);
}
}