[jboss-user] [jBPM] New message: "Re: Strange Fork Behavior"
Andre Muniz
do-not-reply at jboss.com
Wed Jan 20 15:40:51 EST 2010
User development,
A new message was posted in the thread "Strange Fork Behavior":
http://community.jboss.org/message/521203#521203
Author : Andre Muniz
Profile : http://community.jboss.org/people/andre.muniz
Message:
--------------------------------------------------------------
Sorry, the test really wasn't clear enough. I know task3 is duplicated because I debugged it!
Here goes the new unit test:
package test2;
import java.util.List;
import org.jbpm.api.task.Task;
import org.jbpm.test.JbpmTestCase;
public class ForkTest extends JbpmTestCase {
/** Deployment id. */
String deploymentId;
/**
* Set up.
* @throws Exception exception
*/
protected void setUp() throws Exception {
super.setUp();
// XML definition
StringBuilder jpdl = new StringBuilder();
jpdl.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
jpdl.append("<process key=\"forkTest\" name=\"Fork Test\" xmlns=\"http://jbpm.org/4.3/jpdl\">");
jpdl.append(" <start g=\"7,137,48,48\" name=\"Lease Termination\">");
jpdl.append(" <transition g=\"-43,-18\" name=\"to fork1\" to=\"fork1\"/>");
jpdl.append(" </start>");
jpdl.append(" <end g=\"841,83,48,48\" name=\"end1\"/>");
jpdl.append(" <fork g=\"118,140,48,48\" name=\"fork1\">");
jpdl.append(" <transition g=\"-44,-18\" name=\"to task1\" to=\"task1\"/>");
jpdl.append(" <transition g=\"-44,-18\" name=\"to task2\" to=\"task2\"/>");
jpdl.append(" </fork>");
jpdl.append(" <task candidate-groups=\"leasing\" g=\"231,71,92,52\" name=\"task1\">");
jpdl.append(" <transition name=\"to join2\" to=\"join2\" g=\"-41,-18\"/>");
jpdl.append(" </task>");
jpdl.append(" <task candidate-groups=\"leasing\" g=\"230,225,92,52\" name=\"task2\">");
jpdl.append(" <transition name=\"to fork2\" to=\"fork2\" g=\"-43,-18\"/>");
jpdl.append(" </task>");
jpdl.append(" <task candidate-groups=\"leasing\" g=\"507,188,92,52\" name=\"task3\">");
jpdl.append(" <transition g=\"-41,-18\" name=\"to join1\" to=\"join1\"/>");
jpdl.append(" </task>");
jpdl.append(" <task candidate-groups=\"leasing\" g=\"511,306,92,52\" name=\"task4\">");
jpdl.append(" <transition g=\"-41,-18\" name=\"to join1\" to=\"join1\"/>");
jpdl.append(" </task>");
jpdl.append(" <join g=\"653,244,48,48\" name=\"join1\">");
jpdl.append(" <transition g=\"-44,-18\" name=\"to task5\" to=\"task5\"/>");
jpdl.append(" </join>");
jpdl.append(" <task candidate-groups=\"leasing\" g=\"781,237,92,52\" name=\"task5\">");
jpdl.append(" <transition g=\"-41,-18\" name=\"to join2\" to=\"join2\"/>");
jpdl.append(" </task>");
jpdl.append(" <join g=\"674,80,48,48\" name=\"join2\">");
jpdl.append(" <transition g=\"-42,-18\" name=\"to end1\" to=\"end1\"/>");
jpdl.append(" </join>");
jpdl.append(" <fork g=\"402,232,48,48\" name=\"fork2\">");
jpdl.append(" <transition g=\"-44,-18\" name=\"to task3\" to=\"task3\"/>");
jpdl.append(" <transition g=\"-44,-18\" name=\"to task4\" to=\"task4\"/>");
jpdl.append(" </fork>");
jpdl.append("</process>");
// Deploys the process
deploymentId =
repositoryService.createDeployment().addResourceFromString("forkTest.jpdl.xml", jpdl.toString())
.deploy();
}
/**
* Tear down.
* @throws Exception exception
*/
protected void tearDown() throws Exception {
repositoryService.deleteDeploymentCascade(deploymentId);
super.tearDown();
}
/**
* Tests the process.
*/
public void testProcess() {
// Starts a new process instance
executionService.startProcessInstanceByKey("forkTest");
// Gets the pending tasks (task1 and task2)
List < Task > taskList = taskService.createTaskQuery().list();
assertEquals(2, taskList.size());
assertContainsTask(taskList, "task1");
assertContainsTask(taskList, "task2");
// Completes task1 and task2
taskService.completeTask(taskList.get(0).getId());
taskService.completeTask(taskList.get(1).getId());
// Gets the pending tasks (task3 and task4)
taskList = taskService.createTaskQuery().list();
// At this point we should have 2 pending tasks ([0] = task3, [1] = task4)
// But the following tests shows that the taskList collection contains 3 pending tasks ([0] = task3, [1] = task4, [2] = task3)
assertEquals(3, taskList.size());
assertEquals("task3", taskList.get(0).getName());
assertEquals("task4", taskList.get(1).getName());
assertEquals("task3", taskList.get(2).getName());
// This should be the right result, but it's where the test is breaking now
// Failure Trace: "expected:<2> but was:<3>"
assertEquals(2, taskList.size());
assertEquals("task3", taskList.get(0).getName());
assertEquals("task4", taskList.get(1).getName());
}
}
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/521203#521203
More information about the jboss-user
mailing list