View Javadoc

1   /*
2    * $Id: InvocationSessionStoreTest.java 451544 2006-09-30 05:38:02Z mrdon $
3    *
4    * Copyright 2006 The Apache Software Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
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  }