[jbpm-commits] JBoss JBPM SVN: r6352 - jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task.

do-not-reply at jboss.org do-not-reply at jboss.org
Sat May 15 22:49:50 EDT 2010


Author: rebody
Date: 2010-05-15 22:49:49 -0400 (Sat, 15 May 2010)
New Revision: 6352

Added:
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskAfterJoinTest.java
Modified:
   jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskQueryCandidatesTest.java
Log:
JBPM-2836 testcase for task after join problem

Added: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskAfterJoinTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskAfterJoinTest.java	                        (rev 0)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskAfterJoinTest.java	2010-05-16 02:49:49 UTC (rev 6352)
@@ -0,0 +1,78 @@
+
+package org.jbpm.test.task;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.jbpm.api.ProcessInstance;
+import org.jbpm.test.JbpmTestCase;
+
+/**
+ * JBPM-2836.
+ *
+ * @author Huisheng Xu
+ */
+public class TaskAfterJoinTest extends JbpmTestCase {
+  protected static final String PROCESS_XML = ""
+    + "<process name='TaskAfterJoinTest' xmlns='http://jbpm.org/4.3/jpdl'>"
+    + "   <start g='16,60,48,48'>"
+    + "      <transition to='fork'/>"
+    + "   </start>"
+    + "   <fork g='96,60,48,48' name='fork'>"
+    + "      <transition g='120,41:' to='state1'/>"
+    + "      <transition to='state2' g='120,126:'/>"
+    + "   </fork>"
+    + "   <state g='176,16,149,52' name='state1'>"
+    + "      <transition g='379,40:' to='join'/>"
+    + "   </state>"
+    + "   <state g='176,100,149,52' name='state2'>"
+    + "      <transition to='join' g='382,125:'/>"
+    + "   </state>"
+    + "   <join g='357,60,48,48' name='join'>"
+    + "      <transition to='task1'/>"
+    + "   </join>"
+    + "   <end g='561,60,48,48' name='end'/>"
+    + "   <task candidate-groups='sales-dept' g='437,58,92,52' name='task1'>"
+    + "      <transition to='end'/>"
+    + "   </task>"
+    + "</process>";
+
+  public void testTask() {
+    deployJpdlXmlString(PROCESS_XML);
+
+    ProcessInstance processInstance = executionService.startProcessInstanceByKey("TaskAfterJoinTest");
+    String pid = processInstance.getId();
+
+    Set<String> expectedActivityNames = new HashSet<String>();
+    expectedActivityNames.add("state1");
+    expectedActivityNames.add("state2");
+
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
+
+    assertNotNull(processInstance.findActiveExecutionIn("state1"));
+    assertNotNull(processInstance.findActiveExecutionIn("state2"));
+
+    String state1Id = processInstance.findActiveExecutionIn("state1").getId();
+    processInstance = executionService.signalExecutionById(state1Id);
+
+    expectedActivityNames.remove("state1");
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
+
+    assertNotNull(processInstance.findActiveExecutionIn("state2"));
+
+    String state2Id = processInstance.findActiveExecutionIn("state2").getId();
+    // HERE - it raises NullPointerException
+    processInstance = executionService.signalExecutionById(state2Id);
+
+    expectedActivityNames.remove("state2");
+    expectedActivityNames.add("task1");
+    assertEquals(expectedActivityNames, processInstance.findActiveActivityNames());
+
+    assertNotNull(processInstance.findActiveExecutionIn("task1"));
+
+    String task1Id = processInstance.findActiveExecutionIn("task1").getId();
+    processInstance = executionService.signalExecutionById(task1Id);
+
+    assertNull("execution "+pid+" should not exist", executionService.findExecutionById(pid));
+  }
+}

Modified: jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskQueryCandidatesTest.java
===================================================================
--- jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskQueryCandidatesTest.java	2010-05-16 02:47:47 UTC (rev 6351)
+++ jbpm4/trunk/modules/test-db/src/test/java/org/jbpm/test/task/TaskQueryCandidatesTest.java	2010-05-16 02:49:49 UTC (rev 6352)
@@ -175,4 +175,19 @@
     
     taskService.deleteTaskCascade(taskId);
   }
+
+  /**
+   * JBPM-2641.
+   */
+  public void testCountUserCandidateDuplicate() {
+    Task task = taskService.newTask();
+    task.setName("do laundry");
+    String taskId = taskService.saveTask(task);
+    taskService.addTaskParticipatingUser(taskId, "boss_rigging", Participation.CANDIDATE);
+    taskService.addTaskParticipatingUser(taskId, "boss_rigging", Participation.CANDIDATE);
+
+    assertEquals(1, taskService.createTaskQuery().candidate("boss_rigging").list().size());
+
+    taskService.deleteTaskCascade(taskId);
+  }
 }



More information about the jbpm-commits mailing list