📄 firstflowprocesstest.java
字号:
package com.firstflow;import java.util.Collection;import java.util.Iterator;import java.util.List;import junit.framework.TestCase;import org.jbpm.context.exe.ContextInstance;import org.jbpm.graph.def.ProcessDefinition;import org.jbpm.graph.def.Transition;import org.jbpm.graph.exe.ProcessInstance;import org.jbpm.taskmgmt.exe.TaskInstance;public class FirstFlowProcessTest extends TestCase { ProcessDefinition pdf ; ProcessInstance pi; public void test4000YuanApplication() throws Exception { deployProcessDefinition(); createProcessInstance("linly"); submitApplication(4000); approveByManager(true); checkTasks(); } public void test6000YuanApplication() throws Exception { deployProcessDefinition(); createProcessInstance("linly"); submitApplication(6000); approveByManager(true); approveByPresident(true); checkTasks(); } public void test7000YuanApplication() throws Exception { deployProcessDefinition(); createProcessInstance("linly"); submitApplication(7000); approveByManager(true); approveByPresident(false); checkTasks(); } /** * 部署流程定义 * @throws Exception */ protected void deployProcessDefinition() throws Exception{ System.out.println("==FirstFlowProcessTest.deployProcessDefinition()=="); pdf = ProcessDefinition.parseXmlResource("firstflow/processdefinition.xml"); assertNotNull("Definition should not be null", pdf); } /** * 生成流程实例 */ protected void createProcessInstance(String user){ System.out.println("==FirstFlowProcessTest.createProcessInstance()=="); assertNotNull("Definition should not be null", pdf); //生成实例 pi = pdf.createProcessInstance(); assertNotNull("processInstance should not be null", pi); //设置流程发起人 pi.getContextInstance().createVariable("initiator", user); //触发流程转向 pi.signal(); } /** * 填写提交申请单 * @param money */ protected void submitApplication(int money){ System.out.println("==FirstFlowProcessTest.submitApplication()=="); TaskInstance ti = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next() ; System.out.println("ti.actor = " + ti.getActorId()); ContextInstance ci = ti.getContextInstance(); ci.setVariable("money",new Integer(money)); ti.end(); } /** * 部门经理审批 * @param pass */ @SuppressWarnings("unchecked") protected void approveByManager(boolean pass){ System.out.println("==FirstFlowProcessTest.approveByManager()=="); Iterator<TaskInstance> it = pi.getTaskMgmtInstance().getTaskInstances().iterator(); for( ;it.hasNext(); ){ TaskInstance ti = it.next(); if(ti.getActorId().equals("DepartmentManager")){ List<Transition> transitions = ti.getToken().getNode().getLeavingTransitions(); for(Transition t : transitions){ System.out.println("----Transition" + t.getName()); } assertEquals("DepartmentManager",ti.getActorId()); if(pass){ ti.end("部门经理审批通过"); }else{ ti.end("部门经理驳回"); } return; } } } /** * 总经理审批 * @param pass */ @SuppressWarnings("unchecked") protected void approveByPresident(boolean pass){ System.out.println("==FirstFlowProcessTest.approveByPresident()=="); Iterator<TaskInstance> it = pi.getTaskMgmtInstance().getTaskInstances().iterator(); for( ;it.hasNext(); ){ TaskInstance ti = it.next(); if(ti.getActorId().equals("President")){ List<Transition> transitions = ti.getToken().getNode().getLeavingTransitions(); for(Transition t : transitions){ System.out.println("----Transition" + t.getName()); } assertEquals("President",ti.getActorId()); if(pass){ ti.end("总经理审批通过"); }else{ ti.end("总经理驳回"); } return; } } } /** * 打印任务记录 */ @SuppressWarnings("unchecked") protected void checkTasks(){ System.out.println("==FirstFlowProcessTest.checkTasks()=="); Collection<TaskInstance> coll = pi.getTaskMgmtInstance().getTaskInstances(); System.out.println("====Process has task:===="); for(TaskInstance ti : coll){ System.out.println("=="+ti.getName()+"=="); System.out.println("=="+ti.getActorId()+"=="); System.out.println("=="+ti.getVariables().toString() +"=="); } System.out.println("====end===="); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -