1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.apache.struts2.portlet;
22
23 import java.util.Arrays;
24 import java.util.Enumeration;
25 import java.util.Iterator;
26 import java.util.List;
27 import java.util.Map;
28 import java.util.Set;
29
30 import javax.portlet.PortletRequest;
31 import javax.portlet.PortletSession;
32
33 import org.jmock.Mock;
34 import org.jmock.MockObjectTestCase;
35 import org.jmock.core.Constraint;
36
37
38 /***
39 * PortletSessionMapTest. Insert description.
40 *
41 */
42 public class PortletSessionMapTest extends MockObjectTestCase {
43
44 public void testPut() {
45
46 Mock mockSession = mock(PortletSession.class);
47 Mock mockRequest = mock(PortletRequest.class);
48
49 PortletRequest req = (PortletRequest)mockRequest.proxy();
50 PortletSession session = (PortletSession)mockSession.proxy();
51
52 mockRequest.expects(once()).method("getPortletSession").will(returnValue(session));
53 Constraint[] params = new Constraint[]{eq("testAttribute1"), eq("testValue1")};
54 mockSession.expects(once()).method("setAttribute").with(params);
55 mockSession.expects(once()).method("getAttribute").with(eq("testAttribute1")).will(returnValue("testValue1"));
56 params = new Constraint[]{eq("testAttribute2"), eq("testValue2")};
57 mockSession.expects(once()).method("setAttribute").with(params);
58 mockSession.expects(once()).method("getAttribute").with(eq("testAttribute2")).will(returnValue("testValue2"));
59
60 PortletSessionMap map = new PortletSessionMap(req);
61 map.put("testAttribute1", "testValue1");
62 map.put("testAttribute2", "testValue2");
63
64 }
65
66 public void testGet() {
67 Mock mockSession = mock(PortletSession.class);
68 Mock mockRequest = mock(PortletRequest.class);
69
70 PortletRequest req = (PortletRequest)mockRequest.proxy();
71 PortletSession session = (PortletSession)mockSession.proxy();
72
73 mockRequest.expects(once()).method("getPortletSession").will(returnValue(session));
74 mockSession.expects(once()).method("getAttribute").with(eq("testAttribute1")).will(returnValue("testValue1"));
75 mockSession.expects(once()).method("getAttribute").with(eq("testAttribute2")).will(returnValue("testValue2"));
76
77 PortletSessionMap map = new PortletSessionMap(req);
78 Object val1 = map.get("testAttribute1");
79 Object val2 = map.get("testAttribute2");
80 assertEquals("testValue1", val1);
81 assertEquals("testValue2", val2);
82 }
83
84 public void testClear() {
85 Mock mockSession = mock(PortletSession.class);
86 Mock mockRequest = mock(PortletRequest.class);
87
88 PortletRequest req = (PortletRequest)mockRequest.proxy();
89 PortletSession session = (PortletSession)mockSession.proxy();
90
91 mockRequest.expects(once()).method("getPortletSession").will(returnValue(session));
92 mockSession.expects(once()).method("invalidate");
93
94 PortletSessionMap map = new PortletSessionMap(req);
95 map.clear();
96 }
97
98 public void testRemove() {
99 Mock mockSession = mock(PortletSession.class);
100 Mock mockRequest = mock(PortletRequest.class);
101
102 PortletRequest req = (PortletRequest)mockRequest.proxy();
103 PortletSession session = (PortletSession)mockSession.proxy();
104
105
106 mockRequest.expects(once()).method("getPortletSession").will(returnValue(session));
107 mockSession.stubs().method("getAttribute").with(eq("dummyKey")).will(returnValue("dummyValue"));
108 mockSession.expects(once()).method("removeAttribute").with(eq("dummyKey"));
109
110 PortletSessionMap map = new PortletSessionMap(req);
111 Object ret = map.remove("dummyKey");
112 assertEquals("dummyValue", ret);
113 }
114
115 public void testEntrySet() {
116 Mock mockSession = mock(PortletSession.class);
117 Mock mockRequest = mock(PortletRequest.class);
118
119 PortletRequest req = (PortletRequest)mockRequest.proxy();
120 PortletSession session = (PortletSession)mockSession.proxy();
121
122 Enumeration names = new Enumeration() {
123
124 List keys = Arrays.asList(new Object[]{"key1", "key2"});
125 Iterator it = keys.iterator();
126
127 public boolean hasMoreElements() {
128 return it.hasNext();
129 }
130
131 public Object nextElement() {
132 return it.next();
133 }
134
135 };
136
137 mockSession.stubs().method("getAttributeNames").will(returnValue(names));
138 mockSession.stubs().method("getAttribute").with(eq("key1")).will(returnValue("value1"));
139 mockSession.stubs().method("getAttribute").with(eq("key2")).will(returnValue("value2"));
140
141 mockRequest.expects(once()).method("getPortletSession").will(returnValue(session));
142
143 PortletSessionMap map = new PortletSessionMap(req);
144 Set entries = map.entrySet();
145
146 assertEquals(2, entries.size());
147 Iterator it = entries.iterator();
148 Map.Entry entry = (Map.Entry)it.next();
149 assertEquals("key2", entry.getKey());
150 assertEquals("value2", entry.getValue());
151 entry = (Map.Entry)it.next();
152 assertEquals("key1", entry.getKey());
153 assertEquals("value1", entry.getValue());
154
155 }
156
157 }