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(
39 new DefaultStateContextFactory()) {
40 protected boolean supports(Class<?> c) {
41 return Map.class.isAssignableFrom(c);
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 @SuppressWarnings("unchecked")
49 protected void store(Object eventArg, StateContext context) {
50 Map<String, StateContext> map = (Map<String, StateContext>) eventArg;
51 map.put("context", context);
52 }
53 };
54 Object[] args1 = new Object[] {new Object(), map, new Object()};
55 Object[] args2 = new Object[] {map, new Object()};
56 StateContext sc = lookup.lookup(args1);
57 assertSame(map.get("context"), sc);
58 assertSame(map.get("context"), lookup.lookup(args1));
59 assertSame(map.get("context"), lookup.lookup(args2));
60 }
61
62 }