1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.fileupload;
18
19 import java.io.BufferedReader;
20 import java.io.ByteArrayInputStream;
21 import java.io.IOException;
22 import java.io.InputStream;
23 import java.io.UnsupportedEncodingException;
24 import java.security.Principal;
25 import java.util.Enumeration;
26 import java.util.HashMap;
27 import java.util.Locale;
28 import java.util.Map;
29
30 import javax.servlet.RequestDispatcher;
31 import javax.servlet.ServletInputStream;
32 import javax.servlet.http.Cookie;
33 import javax.servlet.http.HttpServletRequest;
34 import javax.servlet.http.HttpSession;
35
36 public class MockHttpServletRequest implements HttpServletRequest {
37
38 private static class MyServletInputStream
39 extends javax.servlet.ServletInputStream {
40
41 private final InputStream in;
42 private final int readLimit;
43
44
45
46
47
48 MyServletInputStream(final InputStream in, final int readLimit) {
49 this.in = in;
50 this.readLimit = readLimit;
51 }
52
53 @Override
54 public int read() throws IOException {
55 return in.read();
56 }
57
58 @Override
59 public int read(final byte[] b, final int off, final int len) throws IOException {
60 if (readLimit > 0) {
61 return in.read(b, off, Math.min(readLimit, len));
62 }
63 return in.read(b, off, len);
64 }
65
66 }
67
68 private final InputStream requestData;
69
70 private long length;
71
72 private final String strContentType;
73
74 private int readLimit = -1;
75
76 private final Map<String, String> headers = new HashMap<>();
77
78
79
80
81
82 public MockHttpServletRequest(
83 final byte[] requestData,
84 final String strContentType) {
85 this(new ByteArrayInputStream(requestData),
86 requestData.length, strContentType);
87 }
88
89
90
91
92
93 public MockHttpServletRequest(
94 final InputStream requestData,
95 final long length,
96 final String strContentType) {
97 this.requestData = requestData;
98 this.length = length;
99 this.strContentType = strContentType;
100 this.headers.put(FileUploadBase.CONTENT_TYPE, strContentType);
101 }
102
103
104
105
106 @Override
107 public Object getAttribute(final String arg0) {
108 return null;
109 }
110
111
112
113
114 @Override
115 public Enumeration<String> getAttributeNames() {
116 return null;
117 }
118
119
120
121
122 @Override
123 public String getAuthType() {
124 return null;
125 }
126
127
128
129
130 @Override
131 public String getCharacterEncoding() {
132 return null;
133 }
134
135
136
137
138 @Override
139 public int getContentLength() {
140 int iLength = 0;
141
142 if (null == requestData) {
143 iLength = -1;
144 } else {
145 if (length > Integer.MAX_VALUE) {
146 throw new RuntimeException("Value '" + length + "' is too large to be converted to int");
147 }
148 iLength = (int) length;
149 }
150 return iLength;
151 }
152
153
154
155
156 @Override
157 public String getContentType() {
158 return strContentType;
159 }
160
161
162
163
164 @Override
165 public String getContextPath() {
166 return null;
167 }
168
169
170
171
172 @Override
173 public Cookie[] getCookies() {
174 return null;
175 }
176
177
178
179
180 @Override
181 public long getDateHeader(final String arg0) {
182 return 0;
183 }
184
185
186
187
188 @Override
189 public String getHeader(final String headerName) {
190 return headers.get(headerName);
191 }
192
193
194
195
196 @Override
197 public Enumeration<String> getHeaderNames() {
198
199 return null;
200 }
201
202
203
204
205 @Override
206 public Enumeration<String> getHeaders(final String arg0) {
207
208 return null;
209 }
210
211
212
213
214 @Override
215 public ServletInputStream getInputStream() throws IOException {
216 return new MyServletInputStream(requestData, readLimit);
217 }
218
219
220
221
222 @Override
223 public int getIntHeader(final String arg0) {
224 return 0;
225 }
226
227
228
229
230 @Override
231 public String getLocalAddr() {
232 return null;
233 }
234
235
236
237
238 @Override
239 public Locale getLocale() {
240 return null;
241 }
242
243
244
245
246 @Override
247 public Enumeration<Locale> getLocales() {
248 return null;
249 }
250
251
252
253
254 @Override
255 public String getLocalName() {
256 return null;
257 }
258
259
260
261
262 @Override
263 public int getLocalPort() {
264 return 0;
265 }
266
267
268
269
270 @Override
271 public String getMethod() {
272 return null;
273 }
274
275
276
277
278 @Override
279 public String getParameter(final String arg0) {
280 return null;
281 }
282
283
284
285
286 @Override
287 public Map<String, String[]> getParameterMap() {
288 return null;
289 }
290
291
292
293
294 @Override
295 public Enumeration<String> getParameterNames() {
296 return null;
297 }
298
299
300
301
302 @Override
303 public String[] getParameterValues(final String arg0) {
304 return null;
305 }
306
307
308
309
310 @Override
311 public String getPathInfo() {
312 return null;
313 }
314
315
316
317
318 @Override
319 public String getPathTranslated() {
320 return null;
321 }
322
323
324
325
326 @Override
327 public String getProtocol() {
328 return null;
329 }
330
331
332
333
334 @Override
335 public String getQueryString() {
336 return null;
337 }
338
339
340
341
342 @Override
343 public BufferedReader getReader() throws IOException {
344 return null;
345 }
346
347
348
349
350
351 @Override
352 @Deprecated
353 public String getRealPath(final String arg0) {
354 return null;
355 }
356
357
358
359
360 @Override
361 public String getRemoteAddr() {
362 return null;
363 }
364
365
366
367
368 @Override
369 public String getRemoteHost() {
370 return null;
371 }
372
373
374
375
376 @Override
377 public int getRemotePort() {
378 return 0;
379 }
380
381
382
383
384 @Override
385 public String getRemoteUser() {
386 return null;
387 }
388
389
390
391
392 @Override
393 public RequestDispatcher getRequestDispatcher(final String arg0) {
394 return null;
395 }
396
397
398
399
400 @Override
401 public String getRequestedSessionId() {
402 return null;
403 }
404
405
406
407
408 @Override
409 public String getRequestURI() {
410 return null;
411 }
412
413
414
415
416 @Override
417 public StringBuffer getRequestURL() {
418 return null;
419 }
420
421
422
423
424 @Override
425 public String getScheme() {
426 return null;
427 }
428
429
430
431
432 @Override
433 public String getServerName() {
434 return null;
435 }
436
437
438
439
440 @Override
441 public int getServerPort() {
442 return 0;
443 }
444
445
446
447
448 @Override
449 public String getServletPath() {
450 return null;
451 }
452
453
454
455
456 @Override
457 public HttpSession getSession() {
458 return null;
459 }
460
461
462
463
464 @Override
465 public HttpSession getSession(final boolean arg0) {
466 return null;
467 }
468
469
470
471
472 @Override
473 public Principal getUserPrincipal() {
474 return null;
475 }
476
477
478
479
480 @Override
481 public boolean isRequestedSessionIdFromCookie() {
482 return false;
483 }
484
485
486
487
488
489 @Override
490 @Deprecated
491 public boolean isRequestedSessionIdFromUrl() {
492 return false;
493 }
494
495
496
497
498 @Override
499 public boolean isRequestedSessionIdFromURL() {
500 return false;
501 }
502
503
504
505
506 @Override
507 public boolean isRequestedSessionIdValid() {
508 return false;
509 }
510
511
512
513
514 @Override
515 public boolean isSecure() {
516 return false;
517 }
518
519
520
521
522 @Override
523 public boolean isUserInRole(final String arg0) {
524 return false;
525 }
526
527
528
529
530 @Override
531 public void removeAttribute(final String arg0) {
532 }
533
534
535
536
537 @Override
538 public void setAttribute(final String arg0, final Object arg1) {
539 }
540
541
542
543
544 @Override
545 public void setCharacterEncoding(final String arg0)
546 throws UnsupportedEncodingException {
547 }
548
549
550
551
552 public void setContentLength(final long length) {
553 this.length = length;
554 }
555
556
557
558
559
560
561 public void setReadLimit(final int readLimit) {
562 this.readLimit = readLimit;
563 }
564
565 }