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

Reply via email to