📄 actionexecutiontest.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 + -