[jbpm-commits] JBoss JBPM SVN: r6199 - jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sat Feb 27 10:16:30 EST 2010
Author: kukeltje
Date: 2010-02-27 10:16:29 -0500 (Sat, 27 Feb 2010)
New Revision: 6199
Added:
jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/JoinSwimlane2749.java
Log:
Test for JBPM-2749
Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/JoinSwimlane2749.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/JoinSwimlane2749.java (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/activities/JoinSwimlane2749.java 2010-02-27 15:16:29 UTC (rev 6199)
@@ -0,0 +1,199 @@
+package org.jbpm.test.activities;
+
+import java.util.List;
+
+import org.jbpm.api.Execution;
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.api.TaskQuery;
+import org.jbpm.api.job.Job;
+import org.jbpm.api.task.Task;
+import org.jbpm.test.JbpmTestCase;
+
+/**
+ * @author Ronald van Kuijk
+ */
+public class JoinSwimlane2749 extends JbpmTestCase {
+
+ public void testJoinSwimlaneAsync () {
+
+ deployJpdlXmlString("<?xml version='1.0' encoding='UTF-8'?>"
+ +"<process name='JoinSwimlaneBugAsync2749' xmlns='http://jbpm.org/4.4/jpdl'>"
+ +" <swimlane candidate-groups='A' name='A'/>"
+ +" <swimlane candidate-groups='B' name='B'/>"
+ +" <start name='start'>"
+ +" <transition to='task1A'/>"
+ +" </start>"
+ +" <task name='task1A' swimlane='A'>"
+ +" <transition to='task1B'/>"
+ +" </task>"
+ +" <task name='task1B' swimlane='B'>"
+ +" <transition to='fork'/>"
+ +" </task>"
+ +" <fork name='fork'>"
+ +" <transition to='task2A'/>"
+ +" <transition to='task2B'/>"
+ +" </fork>"
+ +" <task name='task2A' swimlane='A'>"
+ +" <transition to='join'/>"
+ +" </task>"
+ +" <task name='task2B' swimlane='B'>"
+ +" <transition to='join'/>"
+ +" </task>"
+ +" <join name='join' continue='async'>"
+ +" <transition to='end'/>"
+ +" </join>"
+ +" <end name='end'/>"
+ +"</process>"
+ );
+
+
+ ProcessInstance processInstance = executionService.startProcessInstanceByKey("JoinSwimlaneBugAsync2749");
+
+ String processInstanceId = processInstance.getId();
+
+ assertActivitiesActive(processInstanceId, "task1A");
+
+ TaskQuery taskQuery = taskService.createTaskQuery();
+ taskQuery.processInstanceId(processInstanceId);
+
+ Task t1a = getTask(taskQuery.list(),"task1A");
+ taskService.assignTask(t1a.getId(), "someone2");
+ taskService.completeTask(t1a.getId());
+
+ assertActivitiesActive(processInstanceId, "task1B");
+
+ Task t1b = getTask(taskQuery.list(),"task1B");
+ taskService.assignTask(t1b.getId(), "someone1");
+ taskService.completeTask(t1b.getId());
+
+ assertActivitiesActive(processInstanceId, "task2A","task2B");
+
+ taskService.completeTask(getTask(taskQuery.list(),"task2A").getId());
+
+ assertNotActivityActive(processInstanceId, "task1A");
+ assertActivitiesActive(processInstanceId, "task2B");
+
+ Task t2b = getTask(taskQuery.list(),"task2B");
+ taskService.completeTask(t2b.getId());
+
+ assertEquals(Execution.STATE_ACTIVE_ROOT, processInstance.getState());
+
+ List<Job> jobs = managementService
+ .createJobQuery()
+ .processInstanceId(processInstanceId)
+ .list();
+
+ assertEquals(2, jobs.size());
+
+ managementService.executeJob(jobs.get(0).getId());
+ managementService.executeJob(jobs.get(1).getId());
+
+ jobs = managementService
+ .createJobQuery()
+ .processInstanceId(processInstanceId)
+ .list();
+
+ assertEquals(0, jobs.size());
+
+ assertProcessInstanceEnded(processInstance);
+ }
+
+ public void testJoinSwimlane () {
+
+ deployJpdlXmlString("<?xml version='1.0' encoding='UTF-8'?>"
+ +"<process name='JoinSwimlaneBug2749' xmlns='http://jbpm.org/4.4/jpdl'>"
+ +" <swimlane candidate-groups='A' name='A'/>"
+ +" <swimlane candidate-groups='B' name='B'/>"
+ +" <start name='start'>"
+ +" <transition to='task1A'/>"
+ +" </start>"
+ +" <task name='task1A' swimlane='A'>"
+ +" <transition to='task1B'/>"
+ +" </task>"
+ +" <task name='task1B' swimlane='B'>"
+ +" <transition to='fork'/>"
+ +" </task>"
+ +" <fork name='fork'>"
+ +" <transition to='task2A'/>"
+ +" <transition to='task2B'/>"
+ +" </fork>"
+ +" <task name='task2A' swimlane='A'>"
+ +" <transition to='join'/>"
+ +" </task>"
+ +" <task name='task2B' swimlane='B'>"
+ +" <transition to='join'/>"
+ +" </task>"
+ +" <join name='join'>"
+ +" <transition to='end'/>"
+ +" </join>"
+ +" <end name='end'/>"
+ +"</process>"
+ );
+
+
+ ProcessInstance processInstance = executionService.startProcessInstanceByKey("JoinSwimlaneBug2749");
+
+ String processInstanceId = processInstance.getId();
+
+ assertActivitiesActive(processInstanceId, "task1A");
+
+ TaskQuery taskQuery = taskService.createTaskQuery();
+ taskQuery.processInstanceId(processInstanceId);
+
+ Task t1a = getTask(taskQuery.list(),"task1A");
+ taskService.assignTask(t1a.getId(), "someone2");
+ taskService.completeTask(t1a.getId());
+
+ assertActivitiesActive(processInstanceId, "task1B");
+
+ Task t1b = getTask(taskQuery.list(),"task1B");
+ taskService.assignTask(t1b.getId(), "someone1");
+ taskService.completeTask(t1b.getId());
+
+ assertActivitiesActive(processInstanceId, "task2A","task2B");
+
+ taskService.completeTask(getTask(taskQuery.list(),"task2A").getId());
+
+ assertNotActivityActive(processInstanceId, "task1A");
+ assertActivitiesActive(processInstanceId, "task2B");
+
+ Task t2b = getTask(taskQuery.list(),"task2B");
+ taskService.completeTask(t2b.getId());
+
+ assertProcessInstanceEnded(processInstance);
+}
+
+
+
+ public void testSwimlane () {
+
+ deployJpdlXmlString("<?xml version='1.0' encoding='UTF-8'?>"
+ +"<process name='SwimlaneBug2749' xmlns='http://jbpm.org/4.4/jpdl'>"
+ +" <swimlane candidate-groups='A' name='A'/>"
+ +" <start name='start'>"
+ +" <transition to='task1A'/>"
+ +" </start>"
+ +" <task name='task1A' swimlane='A'>"
+ +" <transition to='end'/>"
+ +" </task>"
+ +" <end name='end'/>"
+ +"</process>"
+ );
+
+
+ ProcessInstance processInstance = executionService.startProcessInstanceByKey("SwimlaneBug2749");
+
+ assertActivitiesActive(processInstance.getId(), "task1A");
+
+ TaskQuery taskQuery = taskService.createTaskQuery();
+ taskQuery.processInstanceId(processInstance.getId());
+
+ Task t1a = getTask(taskQuery.list(),"task1A");
+ taskService.assignTask(t1a.getId(), "someone2");
+ taskService.completeTask(t1a.getId());
+
+ assertProcessInstanceEnded(processInstance);
+ }
+
+
+}
More information about the jbpm-commits
mailing list