1
2
3
4
5 package org.marketchangers.prayer.portlet;
6
7 import java.io.IOException;
8 import java.text.ParseException;
9 import java.text.SimpleDateFormat;
10 import java.util.Collections;
11 import java.util.List;
12
13 import javax.portlet.ActionRequest;
14 import javax.portlet.ActionResponse;
15 import javax.portlet.Portlet;
16 import javax.portlet.PortletConfig;
17 import javax.portlet.PortletContext;
18 import javax.portlet.PortletException;
19 import javax.portlet.PortletPreferences;
20 import javax.portlet.PortletRequestDispatcher;
21 import javax.portlet.RenderRequest;
22 import javax.portlet.RenderResponse;
23
24 import junit.framework.TestCase;
25
26 import org.marketchangers.ServiceLocator;
27 import org.marketchangers.prayer.PrayerCategory;
28 import org.marketchangers.prayer.PrayerRequest;
29 import org.marketchangers.prayer.PrayerRequestManager;
30
31 import com.mockobjects.dynamic.C;
32 import com.mockobjects.dynamic.Mock;
33 ;
34
35 /***
36 * @author: <a href="mailto:jniu@wc-group.com">Jianshuo Niu</a>
37 * @author: <a href="mailto:ypak@wc-group.com">Yong Pak</a>
38 *
39 */
40 public class SubmitRequestPortletTest extends TestCase {
41 private Portlet portlet;
42
43 private Mock actionRequest;
44 private Mock actionResponse;
45 private Mock config;
46 private Mock context;
47 private Mock dispatcher;
48 private Mock prayerRequestManager;
49 private Mock preferences;
50 private Mock renderRequest;
51 private Mock renderResponse;
52 private Mock serviceLocator;
53
54
55 public void setUp() {
56 portlet = new SubmitRequestPortlet();
57
58 actionRequest = new Mock(ActionRequest.class);
59 actionResponse = new Mock(ActionResponse.class);
60 config = new Mock(PortletConfig.class);
61 context = new Mock(PortletContext.class);
62 dispatcher = new Mock(PortletRequestDispatcher.class);
63 prayerRequestManager = new Mock(PrayerRequestManager.class);
64 preferences = new Mock(PortletPreferences.class);
65 renderRequest = new Mock(RenderRequest.class);
66 renderResponse = new Mock(RenderResponse.class);
67 serviceLocator = new Mock(ServiceLocator.class);
68 }
69
70
71 public void dtearDown() {
72 actionRequest.verify();
73 actionResponse.verify();
74 config.verify();
75 context.verify();
76 dispatcher.verify();
77 prayerRequestManager.verify();
78 preferences.verify();
79 renderRequest.verify();
80 renderResponse.verify();
81 serviceLocator.verify();
82 }
83
84
85
86 public void testNothing() {
87
88 }
89
90
91 public void doNotTestRender() throws Exception {
92 context.expectAndReturn(
93 "getRequestDispatcher",
94 "/submitrequest.jsp",
95 (PortletRequestDispatcher)dispatcher.proxy());
96
97 dispatcher.expect(
98 "include",
99 C.args(
100 C.eq((RenderRequest)renderRequest.proxy()),
101 C.eq((RenderResponse)renderResponse.proxy())));
102
103 renderRequest.expectAndReturn("getRemoteUser","THELMA MAE");
104
105 expectLooksUpPrayerRequestManager();
106 List categoryList = Collections.EMPTY_LIST;
107
108 prayerRequestManager.expectAndReturn("getCategoriesForRequestor","THELMA MAE",categoryList);
109 renderRequest.expect("setAttribute",C.args(C.eq("categories"),C.eq(categoryList)));
110
111 portlet.init((PortletConfig)config.proxy());
112
113 portlet.render(
114 (RenderRequest)renderRequest.proxy(),
115 (RenderResponse)renderResponse.proxy());
116 }
117
118
119 public void doNotTestProcessActionWithExistingCategory()
120 throws PortletException, IOException, ParseException {
121
122 setUpActionRequest(
123 "03-03-2003",
124 "04-04-2004",
125 "TEST CATEGORY",
126 "",
127 "TEST BACKGROUND",
128 "TEST CONTENT",
129 "TEST SUBJECT");
130
131 actionRequest.expectAndReturn("getRemoteUser", "JOE BOB");
132 actionResponse.matchAndReturn("setRenderParameter",C.args(C.eq("DateFormat"),C.eq("true")),"this is a void method");
133
134 expectLooksUpPrayerRequestManager();
135
136 PrayerCategory prayerCategory = new PrayerCategory();
137 prayerCategory.setName("TEST CATEGORY");
138
139 prayerRequestManager.expectAndReturn(
140 "getPrayerCategory",
141 "TEST CATEGORY",
142 prayerCategory);
143
144 PrayerRequest request = new PrayerRequest();
145 request.setStartDate(
146 new SimpleDateFormat("MM-dd-yyyy").parse("03-03-2003"));
147 request.setEndDate(
148 new SimpleDateFormat("MM-dd-yyyy").parse("04-04-2004"));
149 request.setCategory(prayerCategory);
150 request.setContent("TEST CONTENT");
151 request.setBackground("TEST BACKGROUND");
152 request.setSubject("TEST SUBJECT");
153 request.setRequestorUserId("JOE BOB");
154 request.setStatus(PrayerRequest.OPEN);
155
156 prayerRequestManager.expectAndReturn(
157 "submitPrayerRequest",
158 request,
159 true);
160
161 portlet.init((PortletConfig)config.proxy());
162
163 portlet.processAction(
164 (ActionRequest)actionRequest.proxy(),
165 (ActionResponse)actionResponse.proxy());
166 }
167
168
169 public void doNotTestProcessActionWithNewCategory() throws Exception {
170 setUpActionRequest(
171 "03-03-2003",
172 "04-04-2004",
173 "add a new category...",
174 "TEST NEW CATEGORY",
175 "TEST BACKGROUND",
176 "TEST CONTENT",
177 "TEST SUBJECT");
178
179 actionRequest.expectAndReturn("getRemoteUser", "JOE BOB");
180
181 expectLooksUpPrayerRequestManager();
182
183 PrayerCategory prayerCategory = new PrayerCategory();
184 prayerCategory.setName("TEST NEW CATEGORY");
185
186 prayerRequestManager.expectAndReturn(
187 "createPrayerCategory",
188 prayerCategory,
189 true);
190
191 PrayerRequest request = new PrayerRequest();
192 request.setStartDate(
193 new SimpleDateFormat("MM-dd-yyyy").parse("03-03-2003"));
194 request.setEndDate(
195 new SimpleDateFormat("MM-dd-yyyy").parse("04-04-2004"));
196 request.setCategory(prayerCategory);
197 request.setContent("TEST CONTENT");
198 request.setBackground("TEST BACKGROUND");
199 request.setSubject("TEST SUBJECT");
200 request.setRequestorUserId("JOE BOB");
201 request.setStatus(PrayerRequest.OPEN);
202
203 prayerRequestManager.expectAndReturn(
204 "submitPrayerRequest",
205 request,
206 true);
207 actionResponse.matchAndReturn("setRenderParameter",C.args(C.eq("DateFormat"),C.eq("true")),"this is a void method");
208 portlet.init((PortletConfig)config.proxy());
209
210 portlet.processAction(
211 (ActionRequest)actionRequest.proxy(),
212 (ActionResponse)actionResponse.proxy());
213 }
214
215
216 private void expectLooksUpPrayerRequestManager() {
217 config.expectAndReturn(
218 "getPortletContext",
219 (PortletContext)context.proxy());
220
221 context.expectAndReturn(
222 "getAttribute",
223 ServiceLocator.KEY,
224 (ServiceLocator)serviceLocator.proxy());
225
226 serviceLocator.expectAndReturn(
227 "get",
228 PrayerRequestManager.class,
229 (PrayerRequestManager)prayerRequestManager.proxy());
230 }
231
232 private void setUpActionRequest(
233 String startDate,
234 String endDate,
235 String category,
236 String newCategory,
237 String background,
238 String content,
239 String subject) {
240
241 actionRequest.expectAndReturn("getParameter", "startdate", startDate);
242 actionRequest.expectAndReturn("getParameter", "enddate", endDate);
243 actionRequest.expectAndReturn("getParameter", "category", category);
244 actionRequest.expectAndReturn(
245 "getParameter",
246 "newcategory",
247 newCategory);
248 actionRequest.expectAndReturn("getParameter", "background", background);
249 actionRequest.expectAndReturn("getParameter", "content", content);
250 actionRequest.expectAndReturn("getParameter", "subject", subject);
251 }
252
253 }