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