⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 actionexecutiontest.java

📁 一个java工作流引擎
💻 JAVA
字号:
package org.jbpm.service;

import java.util.*;

import org.jbpm.*;
import org.jbpm.delegation.*;
import org.jbpm.model.definition.Definition;
import org.jbpm.model.execution.Token;
import org.jbpm.model.log.InvocationLog;

import junit.framework.*;

public class ActionExecutionTest extends TestCase {
  
  public static List invocations = null; 
  public static TestHelper helper = new TestHelper();
  private ExecutionService executionService = helper.getExecutionService();
  
  static {
    helper.deployProcess( "process/actionprocess.xml" );
  }
  
  public static class ActionTestActionHandler implements ActionHandler, Configurable {
    private String configuration = null;
		public void execute(ExecutionContext executionContext) {
      invocations.add( configuration );
		}
		public void configure(String configuration) throws ConfigurationException {
      this.configuration = configuration;
		}
  }
  
  public static class ActionTestDecisionHandler implements DecisionHandler {
    public String decide(ExecutionContext executionContext) {
      return "left";
    }
  }
  
  public void testActionExecutions() throws Exception {
    invocations = new ArrayList();
    Definition definition = 
      executionService.getLatestDefinition( "the action process" );
    InvocationLog invocationLog = 
      executionService.startProcessInstance("testRunner", definition.getId());
    Token token = invocationLog.getProcessInstance().getRoot();
    assertEquals("1", invocations.size(), 4);
    assertEquals("2", invocations.get(0), "action-process-start");
    assertEquals("3", invocations.get(1), "transition-from-start-to-first-node");
    assertEquals("4", invocations.get(2), "first-node-entry");
    assertEquals("5", invocations.get(3), "first-node-after-state-assignment");
    invocationLog = executionService.endOfState("testRunner", token.getId());
    token = invocationLog.getProcessInstance().getRoot();
    assertEquals("6", invocations.size(), 18);
    assertEquals("7", invocations.get(4), "first-node-exit");
    assertEquals("8", invocations.get(5), "transition-from-first-node-to-only-decision");
    assertEquals("9.1", invocations.get(6), "only-decision-entry");
    assertEquals("9.2", invocations.get(7), "only-decision-exit");
    assertEquals("9.3", invocations.get(8), "only-decision-left-transition-to-first-fork");
    assertEquals("10", invocations.get(9), "first-fork-entry");
    assertEquals("10", invocations.get(10), "first-fork-exit");
    assertEquals("10", invocations.get(11), "first-fork-leaving-transition");
    assertEquals("11", invocations.get(12), "concurrent-node-entry");
    assertEquals("12", invocations.get(13), "concurrent-node-after-state-assignment");
    assertEquals("12.1", invocations.get(14), "first-fork-exit");
    assertEquals("13", invocations.get(15), "first-fork-leaving-transition");
    assertEquals("14", invocations.get(16), "concurrent-node-entry");
    assertEquals("15", invocations.get(17), "concurrent-node-after-state-assignment");
    Token right = (Token)token.getChildren().get("right");
    Token left = (Token)token.getChildren().get("left");
    invocationLog = executionService.endOfState("testRunner", right.getId());
    assertEquals("16", invocations.size(), 21);
    assertEquals("17", invocations.get(18), "right-node-exit");
    assertEquals("18", invocations.get(19), "transition-from-right-node-to-join");
    assertEquals("19", invocations.get(20), "join-every-entry");
    invocationLog = executionService.endOfState("testRunner", left.getId());
    assertEquals("19", invocations.size(), 26);
    assertEquals("20", invocations.get(21), "left-node-exit");
    assertEquals("21", invocations.get(22), "transition-from-left-node-to-join");
    assertEquals("22", invocations.get(23), "join-every-entry");
    assertEquals("22.1", invocations.get(24), "transition-from-join-to-end");
    assertEquals("23", invocations.get(25), "action-process-end");
  }
}

⌨️ 快捷键说明

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