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