package com.liuzm.activiti.day2.receivetask;
import org.activiti.engine.runtime.Execution;
import org.activiti.engine.runtime.ProcessInstance;
import org.junit.Assert;
import org.junit.Test;
import com.liuzm.activiti.day2.BPMNTestUtils;
/**
* 自动任务测试
*/
public class ReceiveTaskTest extends BPMNTestUtils {
@Test
public void test1() throws Exception {
// 部署流程规则
deployProcess("receiveTask.bpmn");
// 启动流程
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey("receiveTask");
String pid = processInstance.getId();
// 在当前流程中,是否有一个Execution对象在描述“汇总当日销售额ID”活动
Execution e1 = runtimeService.createExecutionQuery()
.processInstanceId(pid).activityId("汇总当日销售额ID").singleResult();
Assert.assertNotNull(e1);
// 复杂逻辑
Double money = 8888.8d;
// 把变量放入流程变量作用域
runtimeService.setVariable(e1.getId(), "当日销售额", money);
// 推动流程
runtimeService.signal(e1.getId());
// 在当前流程中,是否有一个Execution对象在描述“给老板发短信ID”的活动
Execution e2 = runtimeService.createExecutionQuery()
.processInstanceId(pid).activityId("给老板发短信ID").singleResult();
Assert.assertNotNull(e2);
//获取流程变量
Double money2 = (Double) runtimeService.getVariable(e2.getId(), "当日销售额");
System.out.println("老板,今天赚了: " + money2);
//推动流程
runtimeService.signal(e2.getId());
//检查流程状态
ProcessInstance processInstance2 = getProcessInstance(pid);
Assert.assertNull(processInstance2);
System.out.println("流程成功执行!!!");
}
}