1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.apache.commons.chain.web.servlet;
17
18
19 import org.apache.commons.chain.web.MockEnumeration;
20 import org.apache.commons.chain.web.MockPrincipal;
21
22 import javax.servlet.RequestDispatcher;
23 import javax.servlet.ServletInputStream;
24 import javax.servlet.http.Cookie;
25 import javax.servlet.http.HttpServletRequest;
26 import javax.servlet.http.HttpSession;
27 import java.io.BufferedReader;
28 import java.security.Principal;
29 import java.util.*;
30
31
32
33 public class MockHttpServletRequest implements HttpServletRequest {
34
35
36 public MockHttpServletRequest() {
37 super();
38 }
39
40
41 public MockHttpServletRequest(HttpSession session) {
42 super();
43 setHttpSession(session);
44 }
45
46
47 public MockHttpServletRequest(String contextPath, String servletPath,
48 String pathInfo, String queryString) {
49 super();
50 setPathElements(contextPath, servletPath, pathInfo, queryString);
51 }
52
53
54
55 public MockHttpServletRequest(String contextPath, String servletPath,
56 String pathInfo, String queryString,
57 HttpSession session) {
58 super();
59 setPathElements(contextPath, servletPath, pathInfo, queryString);
60 setHttpSession(session);
61 }
62
63
64
65 protected HashMap attributes = new HashMap();
66 protected String contextPath = null;
67 protected HashMap headers = new HashMap();
68 protected Cookie[] cookies = new Cookie[0];
69 protected Locale locale = null;
70 protected HashMap parameters = new HashMap();
71 protected String pathInfo = null;
72 protected Principal principal = null;
73 protected String queryString = null;
74 protected String servletPath = null;
75 protected HttpSession session = null;
76
77
78
79
80
81 public void addHeader(String name, String value) {
82 String values[] = (String[]) headers.get(name);
83 if (values == null) {
84 String results[] = new String[] { value };
85 headers.put(name, results);
86 return;
87 }
88 String results[] = new String[values.length + 1];
89 System.arraycopy(values, 0, results, 0, values.length);
90 results[values.length] = value;
91 headers.put(name, results);
92 }
93
94
95 public void addParameter(String name, String value) {
96 String values[] = (String[]) parameters.get(name);
97 if (values == null) {
98 String results[] = new String[] { value };
99 parameters.put(name, results);
100 return;
101 }
102 String results[] = new String[values.length + 1];
103 System.arraycopy(values, 0, results, 0, values.length);
104 results[values.length] = value;
105 parameters.put(name, results);
106 }
107
108 public void addCookie(String name, String value) {
109 addCookie(new Cookie(name, value));
110 }
111
112 public void addCookie(Cookie cookie) {
113 Cookie[] newValues = new Cookie[cookies.length + 1];
114 System.arraycopy(cookies, 0, newValues, 0, cookies.length);
115 cookies = newValues;
116 cookies[cookies.length - 1] = cookie;
117 }
118
119
120 public void setHttpSession(HttpSession session) {
121 this.session = session;
122 }
123
124
125 public void setLocale(Locale locale) {
126 this.locale = locale;
127 }
128
129
130 public void setPathElements(String contextPath, String servletPath,
131 String pathInfo, String queryString) {
132
133 this.contextPath = contextPath;
134 this.servletPath = servletPath;
135 this.pathInfo = pathInfo;
136 this.queryString = queryString;
137
138 }
139
140
141 public void setUserPrincipal(Principal principal) {
142 this.principal = principal;
143 }
144
145
146
147
148
149
150 public String getAuthType() {
151 throw new UnsupportedOperationException();
152 }
153
154
155 public String getContextPath() {
156 return (contextPath);
157 }
158
159
160 public Cookie[] getCookies() {
161 return cookies;
162 }
163
164
165 public long getDateHeader(String name) {
166 throw new UnsupportedOperationException();
167 }
168
169
170 public String getHeader(String name) {
171 String values[] = (String[]) headers.get(name);
172 if (values != null) {
173 return (values[0]);
174 } else {
175 return (null);
176 }
177 }
178
179
180 public Enumeration getHeaderNames() {
181 return (new MockEnumeration(headers.keySet().iterator()));
182 }
183
184
185 public Enumeration getHeaders(String name) {
186 String headers[] = (String[]) this.headers.get(name);
187 if (headers == null) {
188 headers = new String[0];
189 }
190 List list = new ArrayList();
191 for (int i = 0; i < headers.length; i++) {
192 list.add(headers[i]);
193 }
194 return (new MockEnumeration(list.iterator()));
195 }
196
197
198 public int getIntHeader(String name) {
199 throw new UnsupportedOperationException();
200 }
201
202
203 public String getMethod() {
204 throw new UnsupportedOperationException();
205 }
206
207
208 public String getPathInfo() {
209 return (pathInfo);
210 }
211
212
213 public String getPathTranslated() {
214 throw new UnsupportedOperationException();
215 }
216
217
218 public String getQueryString() {
219 return (queryString);
220 }
221
222
223 public String getRemoteUser() {
224 if (principal != null) {
225 return (principal.getName());
226 } else {
227 return (null);
228 }
229 }
230
231
232 public String getRequestedSessionId() {
233 throw new UnsupportedOperationException();
234 }
235
236
237 public String getRequestURI() {
238 StringBuffer sb = new StringBuffer();
239 if (contextPath != null) {
240 sb.append(contextPath);
241 }
242 if (servletPath != null) {
243 sb.append(servletPath);
244 }
245 if (pathInfo != null) {
246 sb.append(pathInfo);
247 }
248 if (sb.length() > 0) {
249 return (sb.toString());
250 }
251 throw new UnsupportedOperationException();
252 }
253
254
255 public StringBuffer getRequestURL() {
256 throw new UnsupportedOperationException();
257 }
258
259
260 public String getServletPath() {
261 return (servletPath);
262 }
263
264
265 public HttpSession getSession() {
266 return (getSession(true));
267 }
268
269
270 public HttpSession getSession(boolean create) {
271 if (create && (session == null)) {
272 throw new UnsupportedOperationException();
273 }
274 return (session);
275 }
276
277
278 public Principal getUserPrincipal() {
279 return (principal);
280 }
281
282
283 public boolean isRequestedSessionIdFromCookie() {
284 throw new UnsupportedOperationException();
285 }
286
287
288 public boolean isRequestedSessionIdFromUrl() {
289 throw new UnsupportedOperationException();
290 }
291
292
293 public boolean isRequestedSessionIdFromURL() {
294 throw new UnsupportedOperationException();
295 }
296
297
298 public boolean isRequestedSessionIdValid() {
299 throw new UnsupportedOperationException();
300 }
301
302
303 public boolean isUserInRole(String role) {
304 if ((principal != null) && (principal instanceof MockPrincipal)) {
305 return (((MockPrincipal) principal).isUserInRole(role));
306 } else {
307 return (false);
308 }
309 }
310
311
312
313
314
315 public Object getAttribute(String name) {
316 return (attributes.get(name));
317 }
318
319
320 public Enumeration getAttributeNames() {
321 return (new MockEnumeration(attributes.keySet().iterator()));
322 }
323
324
325 public String getCharacterEncoding() {
326 throw new UnsupportedOperationException();
327 }
328
329
330 public int getContentLength() {
331 throw new UnsupportedOperationException();
332 }
333
334
335 public String getContentType() {
336 throw new UnsupportedOperationException();
337 }
338
339
340 public ServletInputStream getInputStream() {
341 throw new UnsupportedOperationException();
342 }
343
344
345 public Locale getLocale() {
346 return (locale);
347 }
348
349
350 public Enumeration getLocales() {
351 throw new UnsupportedOperationException();
352 }
353
354
355 public String getLocalAddr() {
356 throw new UnsupportedOperationException();
357 }
358
359
360 public String getLocalName() {
361 throw new UnsupportedOperationException();
362 }
363
364
365 public int getLocalPort() {
366 throw new UnsupportedOperationException();
367 }
368
369
370 public String getParameter(String name) {
371 String values[] = (String[]) parameters.get(name);
372 if (values != null) {
373 return (values[0]);
374 } else {
375 return (null);
376 }
377 }
378
379
380 public Map getParameterMap() {
381 return (parameters);
382 }
383
384
385 public Enumeration getParameterNames() {
386 return (new MockEnumeration(parameters.keySet().iterator()));
387 }
388
389
390 public String[] getParameterValues(String name) {
391 return ((String[]) parameters.get(name));
392 }
393
394
395 public String getProtocol() {
396 throw new UnsupportedOperationException();
397 }
398
399
400 public BufferedReader getReader() {
401 throw new UnsupportedOperationException();
402 }
403
404
405 public String getRealPath(String path) {
406 throw new UnsupportedOperationException();
407 }
408
409
410 public String getRemoteAddr() {
411 throw new UnsupportedOperationException();
412 }
413
414
415 public String getRemoteHost() {
416 throw new UnsupportedOperationException();
417 }
418
419
420 public int getRemotePort() {
421 throw new UnsupportedOperationException();
422 }
423
424
425 public RequestDispatcher getRequestDispatcher(String path) {
426 throw new UnsupportedOperationException();
427 }
428
429
430 public String getScheme() {
431 return ("http");
432 }
433
434
435 public String getServerName() {
436 return ("localhost");
437 }
438
439
440 public int getServerPort() {
441 return (8080);
442 }
443
444
445 public boolean isSecure() {
446 return (false);
447 }
448
449
450 public void removeAttribute(String name) {
451 attributes.remove(name);
452 }
453
454
455 public void setAttribute(String name, Object value) {
456 if (value == null) {
457 attributes.remove(name);
458 } else {
459 attributes.put(name, value);
460 }
461 }
462
463
464 public void setCharacterEncoding(String name) {
465 throw new UnsupportedOperationException();
466 }
467
468
469 }