Thanks, Junit and jbpm xml file are below.
package com.jpmorgan.orion.workflow.ny; import org.jbpm.graph.def.ProcessDefinition; import org.jbpm.graph.exe.ProcessInstance; import org.junit.Test; import com.jpmorgan.orion.workflow.service.BaseManagerTestCase; /** * Phil Segal * @date @14 May 2009 */ public class JoinsTest extends BaseManagerTestCase { @Test public void testNoAdjustments() throws Exception { ProcessDefinition def = ProcessDefinition.parseXmlResource("workflow/ny-workflow-2/processdefinition.xml"); assertNotNull("Definition should not be null", def); ProcessInstance instance = new ProcessInstance(def); assertEquals("Def should be at start", "start-daily-pnl", instance.getRootToken().getNode().getName()); instance.signal("default"); instance.getRootToken().getChild("signoff").signal("signoff pnl"); instance.getRootToken().getChild("propose").signal("cancel fork1"); assertEquals("Def should be at auto approve", "auto-signoff-adj", instance.getRootToken().getNode().getName() ); instance.signal("leave-asa"); assertEquals("Def should be at ds feeds", "downstream-feeds", instance.getRootToken().getNode().getName()); instance.signal("leave-dsf"); assertEquals("Def should be at fork 3", "fork3", instance.getRootToken().getNode().getName()); instance.getRootToken().getChild("reviewed").signal("review"); instance.getRootToken().getChild("unsignoff").signal("cancel"); // instance.signal(); assertTrue("Instance has ended", instance.hasEnded()); } @Test public void testWithAdjustmentsProcessNoApprove() throws Exception { ProcessDefinition def = ProcessDefinition.parseXmlResource("workflow/ny-workflow-2/processdefinition.xml"); assertNotNull("Definition should not be null", def); ProcessInstance instance = new ProcessInstance(def); assertEquals("Def should be at start", "start-daily-pnl", instance.getRootToken().getNode().getName()); instance.signal("default"); instance.getRootToken().getChild("propose").signal("propose an adjustment"); assertEquals("Def should be at fork2", "fork2", instance.getRootToken().getChild("propose").getNode().getName()); instance.getRootToken().getChild("propose").getChild("propose").signal("cancel"); instance.getRootToken().getChild("propose").getChild("approve").signal("cancel"); assertEquals("child should be at join1", "join1", instance.getRootToken().getChild("propose").getNode().getName()); assertEquals("parent should be at fork1", "fork1", instance.getRootToken().getNode().getName()); instance.getRootToken().getChild("signoff").signal("signoff pnl"); assertEquals("Def should be at auto approve", "auto-signoff-adj", instance.getRootToken().getNode().getName() ); } @Test public void testWithMultipleAdjustmentsProcessNoApprove() throws Exception { ProcessDefinition def = ProcessDefinition.parseXmlResource("workflow/ny-workflow-2/processdefinition.xml"); assertNotNull("Definition should not be null", def); ProcessInstance instance = new ProcessInstance(def); assertEquals("Def should be at start", "start-daily-pnl", instance.getRootToken().getNode().getName()); instance.signal("default"); instance.getRootToken().getChild("propose").signal("propose an adjustment"); assertEquals("Def should be at fork2", "fork2", instance.getRootToken().getChild("propose").getNode().getName()); instance.getRootToken().getChild("propose").getChild("propose").signal("propose an adjustment"); // Use either just cancel, or both approve and default signals for approve signalling... // instance.getRootToken().getChild("propose").getChild("approve").signal("cancel"); instance.getRootToken().getChild("propose").getChild("approve").signal("approve"); instance.getRootToken().getChild("propose").getChild("approve").signal("default"); instance.getRootToken().getChild("propose").getChild("propose").getChild("propose").signal("cancel"); instance.getRootToken().getChild("propose").getChild("propose").getChild("approve").signal("cancel"); assertEquals("propose/propose should be at join1", "join1", instance.getRootToken().getChild("propose").getChild("propose").getNode().getName()); assertEquals("propose/approve should be at join2", "join2", instance.getRootToken().getChild("propose").getChild("approve").getNode().getName()); assertEquals("parent should be at fork1", "fork1", instance.getRootToken().getNode().getName()); assertEquals("propose should be at join1", "join1", instance.getRootToken().getChild("propose").getNode().getName()); instance.getRootToken().getChild("signoff").signal("signoff pnl"); assertEquals("signoff should be at join1", "join1", instance.getRootToken().getChild("signoff").getNode().getName()); // instance.getRootToken().getChild("propose").getChild("propose").getChild("propose").signal("cancel"); // instance.getRootToken().getChild("propose").getChild("propose").getChild("propose").signal("propose an adjustment"); // instance.getRootToken().getChild("propose").getChild("propose").getChild("propose").getChild("propose").signal("cancel fork1"); // instance.getRootToken().getChild("propose").getChild("propose").getChild("approve").signal("cancel fork1"); // instance.getRootToken().getChild("propose").getChild("propose").getChild("propose").getChild("approve").signal("cancel fork1"); assertEquals("Def should be at auto approve", "auto-signoff-adj", instance.getRootToken().getNode().getName() ); } } ____________________________________________________ processdefinition <?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="" name="ny-workflow-2"> <start-state name="start-daily-pnl"> </start-state> <task-node name="signoff-pnl"> <!-- timer name="signoff-timer" duedate="1 minute" repeat="true"> <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> signOffTimerAction jbpmConfiguration </timer--> <assignment config-type="bean" class="org.springmodules.workflow.jbpm31.JbpmHandler"> pnlSignOffMOAssignmentHandler jbpmConfiguration <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> signOffMultiAction jbpmConfiguration <!-- cancel-timer name="signoff-timer"/--> </task-node> <task-node name="propose-adjustments"> <assignment config-type="bean" class="org.springmodules.workflow.jbpm31.JbpmHandler"> proposeAdjustmentAssignmentHandler jbpmConfiguration <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> proposeAdjustmentsAction jbpmConfiguration </task-node> <task-node name="approve-reject-adj"> <assignment config-type="bean" class="org.springmodules.workflow.jbpm31.JbpmHandler"> approveRejectAdjustmentAssignmentHandler jbpmConfiguration </task-node> <!-- Reject select adjustment(s) --> <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> rejectAdjustmentsAction jbpmConfiguration <task-node name="review"> <assignment config-type="bean" class="org.springmodules.workflow.jbpm31.JbpmHandler"> reviewPnlAssignmentHandler jbpmConfiguration <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> reviewPnlAction jbpmConfiguration </task-node> <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> autoApproveAdjustmentsAction jbpmConfiguration <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> approveAdjustmentsAction jbpmConfiguration <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> downstreamFeedsAction jbpmConfiguration <task-node name="unsignoff-pnl"> <assignment config-type="bean" class="org.springmodules.workflow.jbpm31.JbpmHandler"> pnlSignOffMOAssignmentHandler jbpmConfiguration <action config-type="bean" class="org.springmodules.workflow.jbpm31.JbpmHandler"> unsignoffAction jbpmConfiguration <!-- timer name="unsignoff-timer" duedate="1 business second" repeat="true"> <action class="org.springmodules.workflow.jbpm31.JbpmHandler" config-type="bean"> unsignOffTimerAction jbpmConfiguration </timer--> <!--cancel-timer name="unsignoff-timer"/--> <!--cancel-timer name="unsignoff-timer"/--> </task-node> <end-state name="end-daily-pnl"></end-state> </process-definition> View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4236034#4236034 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4236034 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user