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