package org.jbpm.graph.exe;
import org.jbpm.db.AbstractDbTestCase;
import org.jbpm.graph.def.ProcessDefinition;
public final class StateDbTest extends AbstractDbTestCase {
public void testDbState() throws Exception {
ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
"<process-definition>" +
" <start-state name='zero'>" +
" <transition to='one' />" +
" </start-state>" +
" <state name='one'>" +
" <transition to='two' />" +
" </state>" +
" <state name='two'>" +
" <transition to='three' />" +
" </state>" +
" <state name='three'>" +
" <transition to='end' />" +
" </state>" +
" <end-state name='end' />" +
"</process-definition>"
);
processDefinition = saveAndReload(processDefinition);
ProcessInstance processInstance = new ProcessInstance(processDefinition);
long instanceId = processInstance.getId();
Token rootToken = processInstance.getRootToken();
assertEquals("zero", rootToken.getNode().getName());
newTransaction();
processInstance = jbpmContext.loadProcessInstance(instanceId);
rootToken = processInstance.getRootToken();
processInstance.signal();
assertEquals("one", rootToken.getNode().getName());
newTransaction();
processInstance = jbpmContext.loadProcessInstance(instanceId);
rootToken = processInstance.getRootToken();
processInstance.signal();
assertEquals("two", rootToken.getNode().getName());
newTransaction();
processInstance = jbpmContext.loadProcessInstance(instanceId);
rootToken = processInstance.getRootToken();
processInstance.signal();
assertEquals("three", rootToken.getNode().getName());
newTransaction();
processInstance = jbpmContext.loadProcessInstance(instanceId);
rootToken = processInstance.getRootToken();
processInstance.signal();
assertEquals("end", rootToken.getNode().getName());
}
}
StateDbTest(Jbpm)
最新推荐文章于 2024-04-18 11:11:20 发布
本文介绍了一个使用JBPM工作流引擎进行状态流转测试的例子。该测试定义了一个简单的流程,包括开始、中间过渡及结束状态,并验证了每个状态之间的正确转换。
445

被折叠的 条评论
为什么被折叠?



