deleteprocessinstancedbtest.java

来自「jBpm是一个灵活可扩展的工作流管理系统。作为jBpm运行时server输入的业」· Java 代码 · 共 123 行

JAVA
123
字号
package org.jbpm.db;

import org.jbpm.graph.def.ProcessDefinition;
import org.jbpm.graph.exe.ProcessInstance;

public class DeleteProcessInstanceDbTest extends AbstractDbTestCase {

  public void testDeleteProcessInstance() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition name='make fondue'>" +
      "  <start-state>" +
      "    <transition to='buy cheese' />" +
      "  </start-state>" +
      "  <state name='buy cheese' />" +
      "</process-definition>"
    );    
    jbpmContext.deployProcessDefinition(processDefinition);
    newTransaction();
    
    ProcessInstance processInstance = jbpmContext.newProcessInstance("make fondue");
    processInstance.signal();
    
    processInstance = saveAndReload(processInstance);
    
    jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
    
    newTransaction();
    
    assertEquals(0, session.createQuery("from org.jbpm.graph.exe.ProcessInstance").list().size());
  }

  public void testDeleteProcessInstanceWithTask() {
    ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(
      "<process-definition name='make fondue'>" +
      "  <start-state>" +
      "    <transition to='buy cheese' />" +
      "  </start-state>" +
      "  <task-node name='buy cheese'>" +
      "    <task />" +
      "  </task-node>" +
      "</process-definition>"
    );    
    jbpmContext.deployProcessDefinition(processDefinition);
    newTransaction();
    
    ProcessInstance processInstance = jbpmContext.newProcessInstance("make fondue");
    processInstance.signal();
    
    processInstance = saveAndReload(processInstance);
    
    jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
    
    newTransaction();
    
    assertEquals(0, session.createQuery("from org.jbpm.graph.exe.ProcessInstance").list().size());
  }

  public void testDeleteProcessInstanceWithSubProcessInstance() {
    ProcessDefinition buyCheese = ProcessDefinition.parseXmlString(
      "<process-definition name='buy cheese'>" +
      "  <start-state>" +
      "    <transition to='find shop' />" +
      "  </start-state>" +
      "  <state name='find shop' />" +
      "</process-definition>"
    );    
    jbpmContext.deployProcessDefinition(buyCheese);
    
    ProcessDefinition makeFondue = ProcessDefinition.parseXmlString(
      "<process-definition name='make fondue'>" +
      "  <start-state>" +
      "    <transition to='buy cheese' />" +
      "  </start-state>" +
      "  <process-state name='buy cheese'>" +
      "    <sub-process name='buy cheese' />" +
      "  </process-state>" +
      "</process-definition>"
    );    
    jbpmContext.deployProcessDefinition(makeFondue);
    newTransaction();
    
    ProcessInstance processInstance = jbpmContext.newProcessInstance("make fondue");
    processInstance.signal();
    
    processInstance = saveAndReload(processInstance);
    
    jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
    
    newTransaction();
    
    assertEquals(0, session.createQuery("from org.jbpm.graph.exe.ProcessInstance").list().size());
  }

  public void testDeleteProcessInstanceWithConcurrentPathsOfExecution() {
    ProcessDefinition makeFondue = ProcessDefinition.parseXmlString(
      "<process-definition name='make fondue'>" +
      "  <start-state>" +
      "    <transition to='fork' />" +
      "  </start-state>" +
      "  <fork name='fork'>" +
      "    <transition name='cheese' to='buy cheese' />" +
      "    <transition name='bread' to='bake bread' />" +
      "  </fork>" +
      "  <state name='buy cheese' />" +
      "  <state name='bake bread' />" +
      "</process-definition>"
    );    
    jbpmContext.deployProcessDefinition(makeFondue);
    newTransaction();
    
    ProcessInstance processInstance = jbpmContext.newProcessInstance("make fondue");
    processInstance.signal();
    
    processInstance = saveAndReload(processInstance);
    
    jbpmContext.getGraphSession().deleteProcessInstance(processInstance);
    
    newTransaction();
    
    assertEquals(0, session.createQuery("from org.jbpm.graph.exe.ProcessInstance").list().size());
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?