1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.struts2.util;
19
20 import java.util.HashMap;
21 import java.util.Map;
22
23 import org.apache.struts2.StrutsTestCase;
24
25 import com.mockobjects.dynamic.Mock;
26 import com.opensymphony.xwork2.ActionContext;
27 import com.opensymphony.xwork2.ActionInvocation;
28 import com.opensymphony.xwork2.ActionProxy;
29 import com.opensymphony.xwork2.util.ValueStack;
30 import com.opensymphony.xwork2.util.ValueStackFactory;
31
32
33 /***
34 * InvocationSessionStoreTest
35 *
36 */
37 public class InvocationSessionStoreTest extends StrutsTestCase {
38
39 private static final String INVOCATION_KEY = "org.apache.struts2.util.InvocationSessionStoreTest.invocation";
40 private static final String TOKEN_VALUE = "org.apache.struts2.util.InvocationSessionStoreTest.token";
41
42
43 private ActionInvocation invocation;
44 private Map session;
45 private Mock invocationMock;
46 private ValueStack stack;
47
48
49 public void testStore() {
50 assertNull(InvocationSessionStore.loadInvocation(INVOCATION_KEY, TOKEN_VALUE));
51 InvocationSessionStore.storeInvocation(INVOCATION_KEY, TOKEN_VALUE, invocation);
52 assertNotNull(InvocationSessionStore.loadInvocation(INVOCATION_KEY, TOKEN_VALUE));
53 assertEquals(invocation, InvocationSessionStore.loadInvocation(INVOCATION_KEY, TOKEN_VALUE));
54 }
55
56 public void testValueStackReset() {
57 ActionContext actionContext = ActionContext.getContext();
58 assertEquals(stack, actionContext.getValueStack());
59 InvocationSessionStore.storeInvocation(INVOCATION_KEY, TOKEN_VALUE, invocation);
60 actionContext.setValueStack(null);
61 assertNull(actionContext.getValueStack());
62 InvocationSessionStore.loadInvocation(INVOCATION_KEY, TOKEN_VALUE);
63 assertEquals(stack, actionContext.getValueStack());
64 }
65
66 protected void setUp() throws Exception {
67 stack = ValueStackFactory.getFactory().createValueStack();
68
69 ActionContext actionContext = new ActionContext(stack.getContext());
70 ActionContext.setContext(actionContext);
71
72 session = new HashMap();
73 actionContext.setSession(session);
74
75 invocationMock = new Mock(ActionInvocation.class);
76 invocation = (ActionInvocation) invocationMock.proxy();
77
78 actionContext.setValueStack(stack);
79 invocationMock.matchAndReturn("getStack", stack);
80
81 Mock proxyMock = new Mock(ActionProxy.class);
82 proxyMock.matchAndReturn("getInvocation", invocation);
83
84 ActionProxy proxy = (ActionProxy) proxyMock.proxy();
85
86 invocationMock.matchAndReturn("getProxy", proxy);
87 }
88 }