package com.hisoft.shipping.meetingSummary.jbpm.test;
import java.io.InputStream;
import java.util.Collection;
import java.util.Iterator;
import junit.framework.TestCase;
import org.jbpm.JbpmConfiguration;
import org.jbpm.JbpmContext;
import org.jbpm.context.exe.ContextInstance;
import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;
import org.jbpm.graph.node.Join;
import org.jbpm.taskmgmt.exe.TaskInstance;
import com.hisoft.shipping.leave.common.LeaveVariables;
public class LeaveProcessTest extends TestCase
{
// static JbpmConfiguration cfg = JbpmConfiguration.getInstance();
ProcessDefinition pdf;
ProcessInstance pi;
String userId;
boolean isChiefHere;
public void setUp()
{
userId = "zwchen";
isChiefHere = true;
}
public void test14DayAndBossNotApprove() throws Exception
{
this.deployProcessDefinition();
this.createProcessInstance();
this.userWriteRequest(14);
this.chiefDecide(true);
this.bossDecide(true);
// 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();
}
public void testDeployProcessDefinition() throws Exception
{
System.out.println("begin to deploy process definition: ");
System.out.println("-------------------------------------------------");
// retrieve context
JbpmConfiguration config = JbpmConfiguration.getInstance();
JbpmContext context = config.createJbpmContext();
// retrieve definition
InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream(
"leave3/processdefinition.xml");
ProcessDefinition pd = ProcessDefinition.parseXmlInputStream(is);
context.deployProcessDefinition(pd);
context.close();
System.out.println("------------------------------------------------");
System.out.println("deploy ended!");
}
public void testDeleteProcessInstance() throws Exception
{
long pid = 14;
JbpmContext jContext = JbpmConfiguration.getInstance().createJbpmContext();
jContext.getGraphSession().deleteProcessInstance(pid);
jContext.close();
}
public void testUndeployProcessDefinition() throws Exception
{
long pd = 2;
JbpmContext jContext = JbpmConfiguration.getInstance().createJbpmContext();
jContext.getGraphSession().deleteProcessDefinition(pd);
jContext.close();
}
protected void deployProcessDefinition() throws Exception
{
System.out.println("==MyRequestProcessTest.deployProcessDefinition()==");
InputStream fis = Thread.currentThread().getContextClassLoader().getResourceAsStream(
"leave/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(LeaveVariables.applicant, this.userId);
// 设置流程运行是,部门主管是否在岗
pi.getContextInstance().createVariable(LeaveVariables.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("wangbo", 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("caidehui", 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实例
共188个文件
xml:54个
class:43个
java:43个
3星 · 超过75%的资源 需积分: 6 51 下载量 12 浏览量
2010-10-28
18:40:51
上传
评论
收藏 642KB RAR 举报
温馨提示
jbpm,jbpm实际例子。jbpm介绍
资源推荐
资源详情
资源评论
收起资源包目录
项目之中jbpm实例 (188个子文件)
LeaveProcessTest.class 7KB
LeaveProcessTest.class 7KB
LeaveService.class 6KB
LeaveFormAction.class 3KB
SimpleProcessTest.class 3KB
LoginAction.class 3KB
MeetingSummaryTest.class 3KB
LeaveServiceTest.class 3KB
LeaveForm.class 3KB
PropertiesLoaderUtils.class 3KB
MultiCheckActionHandler.class 2KB
ListMyLeaveTasksAction.class 2KB
FinishedActionHandler.class 2KB
AuthenticationInterceptor.class 2KB
CancelActionHandler.class 2KB
BossDecideAssignmentHandler.class 2KB
DoSomethingDecisionHandler.class 2KB
ChiefDecideAssignmentHandler.class 2KB
NotApproveActionHandler.class 2KB
NeedBossDecideDecisionHandler.class 2KB
CancelRequestAssignmentHandler.class 2KB
ApproveActionHandler.class 2KB
WriteRequestAssignmentHandler.class 2KB
ChiefApproveActionHandler.class 2KB
RequestCancelActionHandler.class 2KB
MessageActionHandler.class 1KB
ServiceLocator.class 1KB
IsChiefHereDecisionHandler.class 1KB
ChiefNotApproveActionHandler.class 1KB
BossNotApproveActionHandler.class 1KB
BossApproveActionHandler.class 1KB
WriteLeaveActionHandler.class 1KB
NotNeedActionHandler.class 1KB
DraftOpinionAssignmentHandler.class 1KB
DraftAssignmentHandler.class 1KB
LeaveVariables.class 889B
ChooseLeaderAssignmentHandler.class 763B
RegisterAssignmentHandler.class 751B
HomeAction.class 653B
DraftActionHandler.class 640B
RequestState.class 573B
LeaveFormState.class 519B
MSVariables.class 467B
.classpath 732B
.component 693B
default.css 655B
LeaveProcessTest.java 8KB
LeaveProcessTest.java 8KB
LeaveService.java 8KB
LeaveFormAction.java 3KB
LoginAction.java 3KB
SimpleProcessTest.java 3KB
LeaveForm.java 2KB
LeaveServiceTest.java 2KB
PropertiesLoaderUtils.java 2KB
MeetingSummaryTest.java 2KB
MultiCheckActionHandler.java 1KB
FinishedActionHandler.java 1KB
CancelActionHandler.java 1KB
RequestCancelActionHandler.java 1KB
LeaveVariables.java 1KB
ListMyLeaveTasksAction.java 1KB
AuthenticationInterceptor.java 1KB
DoSomethingDecisionHandler.java 1022B
ChiefApproveActionHandler.java 901B
BossDecideAssignmentHandler.java 886B
ChiefDecideAssignmentHandler.java 867B
NeedBossDecideDecisionHandler.java 858B
MessageActionHandler.java 846B
ApproveActionHandler.java 842B
CancelRequestAssignmentHandler.java 766B
ServiceLocator.java 758B
IsChiefHereDecisionHandler.java 753B
WriteRequestAssignmentHandler.java 751B
NotApproveActionHandler.java 740B
ChiefNotApproveActionHandler.java 679B
BossNotApproveActionHandler.java 675B
BossApproveActionHandler.java 671B
WriteLeaveActionHandler.java 661B
NotNeedActionHandler.java 653B
DraftOpinionAssignmentHandler.java 605B
DraftAssignmentHandler.java 597B
HomeAction.java 515B
ChooseLeaderAssignmentHandler.java 418B
RegisterAssignmentHandler.java 416B
RequestState.java 367B
LeaveFormState.java 321B
DraftActionHandler.java 308B
MSVariables.java 203B
processimage.jpg 59KB
processimage.jpg 51KB
processimage.jpg 51KB
processimage.jpg 49KB
processimage.jpg 47KB
processimage.jpg 47KB
processimage.jpg 45KB
processimage.jpg 45KB
processimage.jpg 41KB
processimage.jpg 41KB
processimage.jpg 41KB
共 188 条
- 1
- 2
资源评论
- syn12302013-12-04jar包缺失,项目无法运行
chennianbo
- 粉丝: 0
- 资源: 32
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功