1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.scxml.env;
17
18 import java.util.HashMap;
19 import java.util.Map;
20
21 import junit.framework.Test;
22 import junit.framework.TestCase;
23 import junit.framework.TestSuite;
24
25 public class SimpleContextTest extends TestCase {
26
27 public SimpleContextTest(String testName) {
28 super(testName);
29 }
30
31 public static Test suite() {
32 return new TestSuite(SimpleContextTest.class);
33 }
34
35 public static void main(String args[]) {
36 String[] testCaseName = { SimpleContextTest.class.getName()};
37 junit.textui.TestRunner.main(testCaseName);
38 }
39
40 private SimpleContext context;
41
42 protected void setUp() throws Exception {
43 context = new SimpleContext();
44 }
45
46 public void testHasTrue() {
47 Map vars = new HashMap();
48 vars.put("key", "value");
49
50 context.setVars(vars);
51
52 assertTrue(context.has("key"));
53 }
54
55 public void testHasNullParent() {
56 Map vars = new HashMap();
57 vars.put("key", "value");
58
59 context.setVars(vars);
60
61 assertFalse(context.has("differentKey"));
62 }
63
64 public void testHasParentWrongKey() {
65 Map parentVars = new HashMap();
66 parentVars.put("key", "value");
67
68 SimpleContext parentContext = new SimpleContext(parentVars);
69
70 Map vars = new HashMap();
71 vars.put("key", "value");
72
73 context.setVars(vars);
74 context = new SimpleContext(parentContext, parentVars);
75
76 assertFalse(context.has("differentKey"));
77 }
78
79 public void testHasParentCorrectKey() {
80 Map parentVars = new HashMap();
81 parentVars.put("differentKey", "value");
82
83 SimpleContext parentContext = new SimpleContext(parentVars);
84
85 Map vars = new HashMap();
86 vars.put("key", "value");
87
88 context.setVars(vars);
89 context = new SimpleContext(parentContext, parentVars);
90
91 assertTrue(context.has("differentKey"));
92 }
93
94 public void testGetNull() {
95 Object value = context.get("key");
96
97 assertNull(value);
98 }
99
100 public void testGetValue() {
101 Map vars = new HashMap();
102 vars.put("key", "value");
103
104 context.setVars(vars);
105
106 assertEquals("value", context.get("key"));
107 }
108
109 public void testGetParentValue() {
110 Map parentVars = new HashMap();
111 parentVars.put("differentKey", "differentValue");
112
113 SimpleContext parentContext = new SimpleContext(parentVars);
114
115 Map vars = new HashMap();
116 vars.put("key", "value");
117
118 context.setVars(vars);
119 context = new SimpleContext(parentContext, parentVars);
120
121 assertEquals("differentValue", context.get("differentKey"));
122 }
123
124 public void testGetParentNull() {
125 Map vars = new HashMap();
126 vars.put("key", "value");
127
128 context.setVars(vars);
129
130 assertNull(context.get("differentKey"));
131 }
132
133 public void testGetParentWrongValue() {
134 Map parentVars = new HashMap();
135 parentVars.put("differentKey", "differentValue");
136
137 SimpleContext parentContext = new SimpleContext(parentVars);
138
139 Map vars = new HashMap();
140 vars.put("key", "value");
141
142 context.setVars(vars);
143 context = new SimpleContext(parentContext, parentVars);
144
145 assertNull(context.get("reallyDifferentKey"));
146 }
147
148 public void testSetVarsChangeValue() {
149 Map vars = new HashMap();
150 vars.put("key", "value");
151
152 context.setVars(vars);
153
154 context.set("key", "newValue");
155
156 assertEquals("newValue", context.get("key"));
157 }
158
159 public void testSetVarsEmpty() {
160 Map vars = new HashMap();
161 context.setVars(vars);
162
163 context.set("key", "newValue");
164
165 assertEquals("newValue", context.get("key"));
166 }
167
168 public void testSetVarsParent() {
169 Map parentVars = new HashMap();
170 parentVars.put("differentKey", "differentValue");
171
172 SimpleContext parentContext = new SimpleContext(parentVars);
173
174 Map vars = new HashMap();
175 vars.put("key", "value");
176
177 context.setVars(vars);
178 context = new SimpleContext(parentContext, parentVars);
179
180 context.set("differentKey", "newValue");
181
182 assertEquals("newValue", context.get("differentKey"));
183 }
184 }