1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.statemachine.context;
21
22 import static org.junit.Assert.assertSame;
23
24 import java.util.HashMap;
25 import java.util.Map;
26
27 import org.junit.Test;
28
29
30
31
32
33
34 public class AbstractStateContextLookupTest {
35 @Test
36 public void testLookup() throws Exception {
37 Map<String, StateContext> map = new HashMap<String, StateContext>();
38 AbstractStateContextLookup lookup = new AbstractStateContextLookup(new DefaultStateContextFactory()) {
39 protected boolean supports(Class<?> c) {
40 return Map.class.isAssignableFrom(c);
41 }
42
43 @SuppressWarnings("unchecked")
44 protected StateContext lookup(Object eventArg) {
45 Map<String, StateContext> map = (Map<String, StateContext>) eventArg;
46 return map.get("context");
47 }
48
49 @SuppressWarnings("unchecked")
50 protected void store(Object eventArg, StateContext context) {
51 Map<String, StateContext> map = (Map<String, StateContext>) eventArg;
52 map.put("context", context);
53 }
54 };
55 Object[] args1 = new Object[] { new Object(), map, new Object() };
56 Object[] args2 = new Object[] { map, new Object() };
57 StateContext sc = lookup.lookup(args1);
58 assertSame(map.get("context"), sc);
59 assertSame(map.get("context"), lookup.lookup(args1));
60 assertSame(map.get("context"), lookup.lookup(args2));
61 }
62
63 }