📄 flow1test.java
字号:
package com.xiangfeng.workflow.test;
import java.util.Collection;
import junit.framework.TestCase;
import org.jbpm.graph.def.Node;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.exe.Token;
import org.jbpm.taskmgmt.exe.TaskInstance;
public class Flow1Test extends TestCase {
public void testFlow1(){
//流程定义
ProcessDefinition definition = ProcessDefinition.parseXmlInputStream(
Thread.currentThread().getContextClassLoader()
.getResourceAsStream("flow1/processdefinition.xml")
);
//创建一个流程实例
ProcessInstance processInstance = new ProcessInstance(definition);
//每个流程实例,都会有其对应的执行主路径,从主路径中,可以获取当前节点的信息
//也可以通过Token来触发流程流向下一个节点
Token token = processInstance.getRootToken();
//当前节点在哪里?
Node current = token.getNode();
//起始节点
Node start = definition.getStartState();
//当前节点正是起始节点
assertEquals(start, current);
//触发流程流向下一个节点
//这些方法的调用,可以由页面表单的提交按钮触发(比如在OA系统中)
token.signal();
//当前应该处在state1节点
assertEquals(token.getNode(),definition.getNode("状态1"));
//继续往下走
token.signal();
Collection collection = processInstance.getTaskMgmtInstance().getTaskInstances();
//因为只有一个任务,所以
TaskInstance taskInstance = (TaskInstance)collection.iterator().next();
taskInstance.end();
//此时应该在结束节点!
assertEquals(token.getNode(),definition.getNode("task1"));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -