1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.scxml2.invoke;
18
19 import java.util.Set;
20
21 import org.apache.commons.scxml2.SCXMLExecutor;
22 import org.apache.commons.scxml2.SCXMLTestHelper;
23 import org.apache.commons.scxml2.env.SimpleDispatcher;
24 import org.apache.commons.scxml2.env.SimpleErrorReporter;
25 import org.apache.commons.scxml2.io.SCXMLReader;
26 import org.apache.commons.scxml2.model.EnterableState;
27 import org.apache.commons.scxml2.model.SCXML;
28 import org.junit.Assert;
29 import org.junit.Test;
30
31
32
33
34
35 public class InvokeTest {
36
37
38
39
40 @Test
41 public void testInvoke01Sample() throws Exception {
42 SCXML scxml = SCXMLReader.read(SCXMLTestHelper.getResource("org/apache/commons/scxml2/invoke/invoker-01.xml"));
43 SCXMLExecutor exec = new SCXMLExecutor(null, new SimpleDispatcher(), new SimpleErrorReporter());
44 exec.setStateMachine(scxml);
45 exec.registerInvokerClass("scxml", SimpleSCXMLInvoker.class);
46 exec.go();
47 Set<EnterableState> currentStates = exec.getStatus().getStates();
48 Assert.assertEquals(1, currentStates.size());
49 Assert.assertEquals("invoker", currentStates.iterator().next().getId());
50 }
51
52 @Test
53 public void testInvoke02Sample() throws Exception {
54 SCXML scxml = SCXMLReader.read(SCXMLTestHelper.getResource("org/apache/commons/scxml2/invoke/invoker-02.xml"));
55 SCXMLExecutor exec = new SCXMLExecutor(null, new SimpleDispatcher(), new SimpleErrorReporter());
56 exec.setStateMachine(scxml);
57 exec.registerInvokerClass("scxml", SimpleSCXMLInvoker.class);
58 exec.go();
59 Set<EnterableState> currentStates = exec.getStatus().getStates();
60 Assert.assertEquals(1, currentStates.size());
61 }
62
63 @Test
64 public void testInvoke03Sample() throws Exception {
65 SCXML scxml = SCXMLReader.read(SCXMLTestHelper.getResource("org/apache/commons/scxml2/invoke/invoker-03.xml"));
66 SCXMLExecutor exec = new SCXMLExecutor(null, new SimpleDispatcher(), new SimpleErrorReporter());
67 exec.setStateMachine(scxml);
68 exec.registerInvokerClass("scxml", SimpleSCXMLInvoker.class);
69 exec.go();
70 Set<EnterableState> currentStates = exec.getStatus().getStates();
71 Assert.assertEquals(1, currentStates.size());
72 SCXMLTestHelper.fireEvent(exec, "s1.next");
73 SCXMLTestHelper.fireEvent(exec, "state1.next");
74 }
75 }
76