package com.myrequest;
import org.jbpm.graph.node.*;
import java.io.FileInputStream;
import java.util.*;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.taskmgmt.*;
import org.jbpm.identity.*;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.taskmgmt.exe.*;
import junit.framework.TestCase;
import com.myrequest.*;
public class MyRequestProcessTest extends TestCase {
//static JbpmConfiguration cfg = JbpmConfiguration.getInstance();
ProcessDefinition pdf ;
ProcessInstance pi;
String userId;
boolean isChiefHere;
public void setUp(){
userId = "dust";
isChiefHere=true;
}
public void test14DayAndBossNotApprove() throws Exception {
this.deployProcessDefinition() ;
this.createProcessInstance() ;
this.userWriteRequest(14) ;
this.chiefDecide(true) ;
this.bossDecide(false);
this.checkTasks();
}
public void test4DayAndChiefApprove() throws Exception {
this.deployProcessDefinition() ;
this.createProcessInstance() ;
this.userWriteRequest(4) ;
this.chiefDecide(true) ;
this.checkTasks();
}
public void test14DayAndChiefApproveAndUserCancel() throws Exception {
this.deployProcessDefinition() ;
this.createProcessInstance() ;
this.userWriteRequest(14) ;
this.chiefDecide(true) ;
this.userCancel();
this.checkTasks();
}
protected void deployProcessDefinition() throws Exception{
System.out.println("==MyRequestProcessTest.deployProcessDefinition()==");
FileInputStream fis = new FileInputStream("processes/MyRequest/processdefinition.xml");
pdf = ProcessDefinition.parseXmlInputStream(fis);
assertNotNull("Definition should not be null", pdf);
}
protected void createProcessInstance() throws Exception{
System.out.println("==MyRequestProcessTest.createProcessInstance()==");
assertNotNull("Definition should not be null", pdf);
pi = new ProcessInstance(pdf);
assertNotNull("processInstance should not be null", pi);
Join join_Request = (Join)pi.getProcessDefinition().getNode("Join_Request");
assertNotNull("should find join_request node !",join_Request);
join_Request.setDiscriminator( true);
//设置申请人
pi.getContextInstance() .createVariable(RequestVariable.userId,this.userId);
//设置流程运行是,部门主管是否在岗
pi.getContextInstance() .createVariable(RequestVariable.isChiefHere,new Boolean(this.isChiefHere));
//启动流程
pi.getRootToken().signal();
}
/**
* @param daycount 请假天数
* */
protected void userWriteRequest(int daycount){
System.out.println("==MyRequestProcessTest.userWriteRequest()==");
TaskInstance wr = (TaskInstance)pi.getTaskMgmtInstance().getTaskInstances().iterator() .next() ;
assertEquals(this.userId,wr.getActorId()) ;
ContextInstance ci = pi.getContextInstance();
ci.setVariable("dayCount",new Integer(daycount));
wr.end();
}
/**
* @param isApprove 部门主管是否同意请假
* */
protected void chiefDecide(boolean isApprove){
System.out.println("==MyRequestProcessTest.chiefDecide()==");
//String chiefId="today123";
/**
* 如果后台使用数据库的话,就可以使用
* org.jbpm.db.TaskMgmtSession.findTaskInstances(java.lang.String actorId) 得到所有分配给chiefId的taskInstance
* */
Collection coll = pi.getTaskMgmtInstance().getTaskInstances();
Iterator it = coll.iterator();
while(it.hasNext()){
TaskInstance ti = (TaskInstance)it.next();
if(ti.getName().equals("Task_ChiefDecide")){
assertEquals("today123",ti.getActorId());
if(isApprove)
ti.end("Tr_ChiefApprove");
else
ti.end("Tr_ChiefNotApprove");
return;
}
}
}
/**
* @param isApprove 老板是否同意请假
* */
protected void bossDecide(boolean isApprove){
System.out.println("==MyRequestProcessTest.bossDecide()==");
//String bossId="elena";
/**
* 如果后台使用数据库的话,就可以使用
* org.jbpm.db.TaskMgmtSession.findTaskInstances(java.lang.String actorId) 得到所有分配给bossId的taskInstance
* */
Collection coll = pi.getTaskMgmtInstance().getTaskInstances();
Iterator it = coll.iterator();
while(it.hasNext()){
TaskInstance ti = (TaskInstance)it.next();
if(ti.getName().equals("Task_BossDecide")){
assertEquals("elena",ti.getActorId());
if(isApprove)
ti.end("Tr_BossApprove");
else
ti.end("Tr_BossNotApprove");
return;
}
}
}
protected void userCancel(){
System.out.println("==MyRequestProcessTest.userCancel()==");
/**
* 如果后台使用数据库的话,就可以使用
* org.jbpm.db.TaskMgmtSession.findTaskInstances(java.lang.String actorId) 得到所有分配给userid的taskInstance
* */
Collection coll = pi.getTaskMgmtInstance().getTaskInstances();
Iterator it = coll.iterator();
while(it.hasNext()){
TaskInstance ti = (TaskInstance)it.next();
if(ti.getName().equals("Task_CancelRequest")){
assertEquals(this.userId,ti.getActorId());
ti.end();
return;
}
}
}
protected void checkTasks(){
System.out.println("==MyRequestProcessTest.checkTasks()==");
Collection coll = pi.getTaskMgmtInstance().getTaskInstances();
Iterator it = coll.iterator();
System.out.println("====Process has task:====");
while(it.hasNext()){
TaskInstance ti = (TaskInstance)it.next();
System.out.println("=="+ti.getName()+"==");
System.out.println("=="+ti.getActorId()+"==");
System.out.println("=="+ti.getVariables().toString() +"==");
}
System.out.println("====end====");
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
JBPM的文档例子说明详细
共64个文件
java:24个
class:24个
xml:10个
需积分: 0 25 下载量 150 浏览量
2007-10-18
10:48:55
上传
评论
收藏 112KB RAR 举报
温馨提示
JBPM的文档例子说明详细
资源详情
资源评论
资源推荐
收起资源包目录
jbpm.rar (64个子文件)
jbpm
.project 380B
bin
simple
gpd.xml 2KB
DeployProcessTest.class 1KB
processdefinition.xml 4KB
processimage.jpg 45KB
jbpm.cfg.xml 299B
log4j.properties 1KB
com
myrequest
RequestState.class 365B
RequestVariable.class 338B
MyRequestProcessTest.class 6KB
action
WriteLeaveActionHandler.class 1KB
CancelActionHandler.class 2KB
NotApproveActionHandler.class 1KB
ApproveActionHandler.class 1KB
RequestCancelActionHandler.class 1KB
NotNeedActionHandler.class 1KB
FinishedActionHandler.class 2KB
ChiefNotApproveActionHandler.class 1KB
ChiefApproveActionHandler.class 1KB
BossNotApproveActionHandler.class 1KB
BossApproveActionHandler.class 1KB
decision
NeedBossDecideDecisionHandler.class 1KB
DoSomethingDecisionHandler.class 1KB
IsChiefHereDecisionHandler.class 1KB
task
ChiefDecideAssignmentHandler.class 2KB
WriteRequestAssignmentHandler.class 1KB
CancelRequestAssignmentHandler.class 1KB
BossDecideAssignmentHandler.class 865B
sample
action
MessageActionHandler.class 935B
SimpleProcessTest.class 2KB
ehcache.xml 3KB
hibernate.cfg.xml 9KB
src
test
java
com
sample
SimpleProcessTest.java 2KB
main
jpdl
simple
gpd.xml 2KB
DeployProcessTest.java 1KB
processdefinition.xml 4KB
processimage.jpg 45KB
java
com
myrequest
RequestVariable.java 470B
action
BossApproveActionHandler.java 509B
CancelActionHandler.java 1KB
RequestCancelActionHandler.java 1KB
NotNeedActionHandler.java 501B
ChiefApproveActionHandler.java 597B
WriteLeaveActionHandler.java 674B
BossNotApproveActionHandler.java 520B
ApproveActionHandler.java 825B
FinishedActionHandler.java 1KB
ChiefNotApproveActionHandler.java 525B
NotApproveActionHandler.java 853B
RequestState.java 290B
decision
IsChiefHereDecisionHandler.java 648B
NeedBossDecideDecisionHandler.java 624B
DoSomethingDecisionHandler.java 835B
MyRequestProcessTest.java 6KB
task
WriteRequestAssignmentHandler.java 693B
CancelRequestAssignmentHandler.java 795B
ChiefDecideAssignmentHandler.java 839B
BossDecideAssignmentHandler.java 555B
sample
action
MessageActionHandler.java 702B
config
jbpm.cfg.xml 299B
log4j.properties 1KB
ehcache.xml 3KB
hibernate.cfg.xml 9KB
.classpath 603B
共 64 条
- 1
gabriel80
- 粉丝: 735
- 资源: 31
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0