1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.scxml;
17
18 import java.util.HashSet;
19 import java.util.Set;
20
21 import org.apache.commons.jexl.JexlContext;
22 import org.apache.commons.scxml.env.SimpleContext;
23 import org.apache.commons.scxml.env.jexl.JexlEvaluator;
24 import org.apache.commons.scxml.model.History;
25 import org.apache.commons.scxml.model.State;
26 import org.apache.commons.scxml.model.TransitionTarget;
27
28 import junit.framework.Test;
29 import junit.framework.TestCase;
30 import junit.framework.TestSuite;
31
32 public class SCInstanceTest extends TestCase {
33
34 public SCInstanceTest(String testName) {
35 super(testName);
36 }
37
38 public static Test suite() {
39 return new TestSuite(SCInstanceTest.class);
40 }
41
42 public static void main(String args[]) {
43 String[] testCaseName = { SCInstanceTest.class.getName()};
44 junit.textui.TestRunner.main(testCaseName);
45 }
46
47 private SCInstance instance;
48
49 public void setUp() {
50 instance = new SCInstance(null);
51 }
52
53 public void testGetRootContextNull() {
54 assertNull(instance.getRootContext());
55 }
56
57 public void testGetRootContext() {
58 Context context = new SimpleContext();
59 context.set("name", "value");
60
61 instance.setRootContext(context);
62 assertEquals("value", instance.getRootContext().get("name"));
63 }
64
65 public void testGetRootContextEvaluator() {
66 Evaluator evaluator = new JexlEvaluator();
67
68 instance.setEvaluator(evaluator);
69
70 assertTrue(instance.getRootContext() instanceof JexlContext);
71 }
72
73 public void testGetContext() {
74 TransitionTarget target = new State();
75 target.setId("1");
76
77 Context context = new SimpleContext();
78 context.set("name", "value");
79
80 instance.setContext(target, context);
81
82 assertEquals("value", instance.getContext(target).get("name"));
83 }
84
85 public void testGetContextNullParent() {
86 TransitionTarget target = new State();
87 target.setId("1");
88
89 Context context = new SimpleContext();
90 context.set("name", "value");
91 instance.setRootContext(context);
92
93 Evaluator evaluator = new JexlEvaluator();
94 instance.setEvaluator(evaluator);
95
96 assertEquals("value", instance.getContext(target).get("name"));
97 assertEquals("value", instance.lookupContext(target).get("name"));
98 }
99
100 public void testGetContextParent() {
101 TransitionTarget target = new State();
102 target.setId("1");
103
104 State parent = new State();
105 parent.setId("parent");
106
107 target.setParent(parent);
108
109 Context context = new SimpleContext();
110 context.set("name", "value");
111 instance.setRootContext(context);
112
113 Evaluator evaluator = new JexlEvaluator();
114 instance.setEvaluator(evaluator);
115
116 assertEquals("value", instance.getContext(target).get("name"));
117 assertEquals("value", instance.lookupContext(target).get("name"));
118 }
119
120 public void testGetLastConfigurationNull() {
121 History history = new History();
122
123 Set returnConfiguration = instance.getLastConfiguration(history);
124
125 assertEquals(0, returnConfiguration.size());
126 }
127
128
129 public void testGetLastConfiguration() {
130 History history = new History();
131 history.setId("1");
132
133 Set configuration = new HashSet();
134 configuration.add("value1");
135 configuration.add("value2");
136
137 instance.setLastConfiguration(history, configuration);
138
139 Set returnConfiguration = instance.getLastConfiguration(history);
140
141 assertEquals(2, returnConfiguration.size());
142 assertTrue(returnConfiguration.contains("value1"));
143 assertTrue(returnConfiguration.contains("value2"));
144 }
145
146 public void testIsEmpty() {
147 assertTrue(instance.isEmpty(new History()));
148 }
149
150 public void testIsEmptyFalse() {
151 History history = new History();
152 history.setId("1");
153
154 Set configuration = new HashSet();
155 configuration.add("value1");
156 configuration.add("value2");
157
158 instance.setLastConfiguration(history, configuration);
159
160 assertFalse(instance.isEmpty(history));
161 }
162
163 public void testReset() {
164 History history = new History();
165 history.setId("1");
166
167 Set configuration = new HashSet();
168 configuration.add("value1");
169 configuration.add("value2");
170
171 instance.setLastConfiguration(history, configuration);
172
173 instance.reset(history);
174
175 assertTrue(instance.isEmpty(history));
176 }
177
178 }