[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