Sonar Fixes, Formatting
[aaf/authz.git] / auth / auth-core / src / test / java / org / onap / aaf / auth / rserv / test / JU_Content.java
1 /**
2  * ============LICENSE_START====================================================
3  * org.onap.aaf
4  * ===========================================================================
5  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
6  * ===========================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END====================================================
19  *
20  */
21
22 package org.onap.aaf.auth.rserv.test;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertNull;
27
28 import java.io.IOException;
29
30 import javax.servlet.http.HttpServletRequest;
31 import javax.servlet.http.HttpServletResponse;
32
33 import org.junit.Test;
34 import org.onap.aaf.auth.rserv.HttpCode;
35 import org.onap.aaf.auth.rserv.TypedCode;
36 import org.onap.aaf.misc.env.TransJAXB;
37 import org.onap.aaf.misc.env.impl.EnvFactory;
38
39
40 /**
41  * Test the functioning of the "Content" class, which holds, and routes to the right code based on Accept values
42  */
43 public class JU_Content {
44
45
46     @Test
47     public void test() throws Exception {
48         final String BOOL = "Boolean";
49         final String XML = "XML";
50         TransJAXB trans = EnvFactory.newTrans();
51         try {
52         HttpCode<TransJAXB, String> cBool = new HttpCode<TransJAXB,String>(BOOL,"Standard String") {
53             @Override
54             public void handle(TransJAXB trans, HttpServletRequest req, HttpServletResponse resp) {
55                 try {
56                     resp.getOutputStream().write(context.getBytes());
57                 } catch (IOException e) {
58                 }
59             }
60         };
61
62         HttpCode<TransJAXB,String> cXML = new HttpCode<TransJAXB,String>(XML, "Standard String") {
63             @Override
64             public void handle(TransJAXB trans, HttpServletRequest req, HttpServletResponse resp) {
65                 try {
66                     resp.getOutputStream().write(context.getBytes());
67                 } catch (IOException e) {
68                 }
69             }
70         };
71
72         TypedCode<TransJAXB> ct = new TypedCode<TransJAXB>()
73                 .add(cBool,"application/" + Boolean.class.getName()+"+xml;charset=utf8;version=1.1")
74                 .add(cXML,"application/xml;q=.9");
75         String expected = "application/java.lang.Boolean+xml;charset=utf8;version=1.1,application/xml;q=0.9";
76         assertEquals(expected,ct.toString());
77
78         //BogusReq req = new BogusReq();
79         //expected = (expected);
80         //HttpServletResponse resp = new BogusResp();
81
82         assertNotNull("Same Content String and Accept String",ct.prep(trans,expected));
83
84         //expects Null (not run)
85         // A Boolean xml that must have charset utf8 and match version 1.2 or greater
86         expected = ("application/java.lang.Boolean+xml;charset=utf8;version=1.2");
87         assertNull("Accept Minor Version greater than Content Minor Version",ct.prep(trans,expected));
88
89         // Same with (too many) spaces
90         expected = (" application/java.lang.Boolean+xml ; charset = utf8 ; version = 1.2   ");
91         assertNull("Accept Minor Version greater than Content Minor Version",ct.prep(trans,expected));
92
93         //expects Null (not run)
94         expected = ("application/java.lang.Boolean+xml;charset=utf8;version=2.1");
95         assertNull("Major Versions not the same",ct.prep(trans,expected));
96
97         expected = ("application/java.lang.Boolean+xml;charset=utf8;version=1.0");
98         assertNotNull("Content Minor Version is greater than Accept Minor Version",ct.prep(trans,expected));
99
100         expected = "application/java.lang.Squid+xml;charset=utf8;version=1.0,application/xml;q=.9";
101         assertNotNull("2nd one will have to do...",ct.prep(trans,expected));
102
103         expected = "application/java.lang.Boolean+xml;charset=UTF8;version=1.0";
104         assertNotNull("Minor Charset in Caps acceptable",ct.prep(trans,expected));
105
106         // expects no run
107         expected="application/java.lang.Boolean+xml;charset=MyType;version=1.0";
108         assertNull("Unknown Minor Charset",ct.prep(trans,expected));
109
110         expected="";
111         assertNotNull("Blank Acceptance",ct.prep(trans,expected));
112
113         expected=null;
114         assertNotNull("Null Acceptance",ct.prep(trans,expected));
115
116         expected = ("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
117         assertNotNull("Matches application/xml, and other content not known",ct.prep(trans,expected));
118
119         // No SemiColon
120         expected = ("i/am/bogus,application/xml");
121         assertNotNull("Match second entry, with no Semis",ct.prep(trans,expected));
122
123          } finally {
124             StringBuilder sb = new StringBuilder();
125             trans.auditTrail(0, sb);
126             //System.out.println(sb);
127         }
128     }
129 //
130 //    Original API used HTTPServletRequest and HTTPServletResponse.  Due to the fact that sometimes we use Accept, and others Content-TYpe
131 //    I changed it to simply accept a string
132 //
133 //    Jonathan 3/8/2013
134 //
135 //    @SuppressWarnings("rawtypes")
136 //    class BogusReq implements HttpServletRequest {
137 //        private String accept;
138 //
139 //        public void accept(String accept) {
140 //            this.accept = accept;
141 //        }
142 //
143 //        @Override
144 //        public Object getAttribute(String name) {
145 //            return accept;
146 //        }
147 //
148 //
149 //        @Override
150 //        public Enumeration getAttributeNames() {
151 //            return null;
152 //        }
153 //
154 //        @Override
155 //        public String getCharacterEncoding() {
156 //            return null;
157 //        }
158 //
159 //        @Override
160 //        public void setCharacterEncoding(String env)
161 //                throws UnsupportedEncodingException {
162 //
163 //
164 //        }
165 //
166 //        @Override
167 //        public int getContentLength() {
168 //
169 //            return 0;
170 //        }
171 //
172 //        @Override
173 //        public String getContentType() {
174 //
175 //            return null;
176 //        }
177 //
178 //        @Override
179 //        public ServletInputStream getInputStream() throws IOException {
180 //
181 //            return null;
182 //        }
183 //
184 //        @Override
185 //        public String getParameter(String name) {
186 //
187 //            return null;
188 //        }
189 //
190 //        @Override
191 //        public Enumeration getParameterNames() {
192 //
193 //            return null;
194 //        }
195 //
196 //        @Override
197 //        public String[] getParameterValues(String name) {
198 //
199 //            return null;
200 //        }
201 //
202 //        @Override
203 //        public Map getParameterMap() {
204 //
205 //            return null;
206 //        }
207 //
208 //        @Override
209 //        public String getProtocol() {
210 //
211 //            return null;
212 //        }
213 //
214 //        @Override
215 //        public String getScheme() {
216 //
217 //            return null;
218 //        }
219 //
220 //        @Override
221 //        public String getServerName() {
222 //
223 //            return null;
224 //        }
225 //
226 //        @Override
227 //        public int getServerPort() {
228 //
229 //            return 0;
230 //        }
231 //
232 //        @Override
233 //        public BufferedReader getReader() throws IOException {
234 //
235 //            return null;
236 //        }
237 //
238 //        @Override
239 //        public String getRemoteAddr() {
240 //
241 //            return null;
242 //        }
243 //
244 //        @Override
245 //        public String getRemoteHost() {
246 //
247 //            return null;
248 //        }
249 //
250 //        @Override
251 //        public void setAttribute(String name, Object o) {
252 //
253 //
254 //        }
255 //
256 //        @Override
257 //        public void removeAttribute(String name) {
258 //
259 //
260 //        }
261 //
262 //        @Override
263 //        public Locale getLocale() {
264 //
265 //            return null;
266 //        }
267 //
268 //        @Override
269 //        public Enumeration getLocales() {
270 //
271 //            return null;
272 //        }
273 //
274 //        @Override
275 //        public boolean isSecure() {
276 //
277 //            return false;
278 //        }
279 //
280 //        @Override
281 //        public RequestDispatcher getRequestDispatcher(String path) {
282 //
283 //            return null;
284 //        }
285 //
286 //        @Override
287 //        public String getRealPath(String path) {
288 //
289 //            return null;
290 //        }
291 //
292 //        @Override
293 //        public int getRemotePort() {
294 //
295 //            return 0;
296 //        }
297 //
298 //        @Override
299 //        public String getLocalName() {
300 //
301 //            return null;
302 //        }
303 //
304 //        @Override
305 //        public String getLocalAddr() {
306 //
307 //            return null;
308 //        }
309 //
310 //        @Override
311 //        public int getLocalPort() {
312 //
313 //            return 0;
314 //        }
315 //
316 //        @Override
317 //        public String getAuthType() {
318 //
319 //            return null;
320 //        }
321 //
322 //        @Override
323 //        public Cookie[] getCookies() {
324 //
325 //            return null;
326 //        }
327 //
328 //        @Override
329 //        public long getDateHeader(String name) {
330 //
331 //            return 0;
332 //        }
333 //
334 //        @Override
335 //        public String getHeader(String name) {
336 //            return accept;
337 //        }
338 //
339 //        @Override
340 //        public Enumeration getHeaders(String name) {
341 //
342 //            return null;
343 //        }
344 //
345 //        @Override
346 //        public Enumeration getHeaderNames() {
347 //
348 //            return null;
349 //        }
350 //
351 //        @Override
352 //        public int getIntHeader(String name) {
353 //
354 //            return 0;
355 //        }
356 //
357 //        @Override
358 //        public String getMethod() {
359 //
360 //            return null;
361 //        }
362 //
363 //        @Override
364 //        public String getPathInfo() {
365 //
366 //            return null;
367 //        }
368 //
369 //        @Override
370 //        public String getPathTranslated() {
371 //
372 //            return null;
373 //        }
374 //
375 //        @Override
376 //        public String getContextPath() {
377 //
378 //            return null;
379 //        }
380 //
381 //        @Override
382 //        public String getQueryString() {
383 //
384 //            return null;
385 //        }
386 //
387 //        @Override
388 //        public String getRemoteUser() {
389 //
390 //            return null;
391 //        }
392 //
393 //        @Override
394 //        public boolean isUserInRole(String role) {
395 //
396 //            return false;
397 //        }
398 //
399 //        @Override
400 //        public Principal getUserPrincipal() {
401 //
402 //            return null;
403 //        }
404 //
405 //        @Override
406 //        public String getRequestedSessionId() {
407 //
408 //            return null;
409 //        }
410 //
411 //        @Override
412 //        public String getRequestURI() {
413 //
414 //            return null;
415 //        }
416 //
417 //        @Override
418 //        public StringBuffer getRequestURL() {
419 //
420 //            return null;
421 //        }
422 //
423 //        @Override
424 //        public String getServletPath() {
425 //
426 //            return null;
427 //        }
428 //
429 //        @Override
430 //        public HttpSession getSession(boolean create) {
431 //
432 //            return null;
433 //        }
434 //
435 //        @Override
436 //        public HttpSession getSession() {
437 //
438 //            return null;
439 //        }
440 //
441 //        @Override
442 //        public boolean isRequestedSessionIdValid() {
443 //
444 //            return false;
445 //        }
446 //
447 //        @Override
448 //        public boolean isRequestedSessionIdFromCookie() {
449 //
450 //            return false;
451 //        }
452 //
453 //        @Override
454 //        public boolean isRequestedSessionIdFromURL() {
455 //
456 //            return false;
457 //        }
458 //
459 //        @Override
460 //        public boolean isRequestedSessionIdFromUrl() {
461 //
462 //            return false;
463 //        }
464 //    }
465 //
466 //    public class BogusResp implements HttpServletResponse {
467 //        public String contentType;
468 //
469 //        @Override
470 //        public String getCharacterEncoding() {
471 //
472 //            return null;
473 //        }
474 //
475 //        @Override
476 //        public String getContentType() {
477 //            return contentType;
478 //        }
479 //
480 //        @Override
481 //        public ServletOutputStream getOutputStream() throws IOException {
482 //
483 //            return null;
484 //        }
485 //
486 //        @Override
487 //        public PrintWriter getWriter() throws IOException {
488 //
489 //            return null;
490 //        }
491 //
492 //        @Override
493 //        public void setCharacterEncoding(String charset) {
494 //
495 //
496 //        }
497 //
498 //        @Override
499 //        public void setContentLength(int len) {
500 //
501 //
502 //        }
503 //
504 //        @Override
505 //        public void setContentType(String type) {
506 //            contentType = type;
507 //        }
508 //
509 //        @Override
510 //        public void setBufferSize(int size) {
511 //
512 //
513 //        }
514 //
515 //        @Override
516 //        public int getBufferSize() {
517 //
518 //            return 0;
519 //        }
520 //
521 //        @Override
522 //        public void flushBuffer() throws IOException {
523 //
524 //
525 //        }
526 //
527 //        @Override
528 //        public void resetBuffer() {
529 //
530 //
531 //        }
532 //
533 //        @Override
534 //        public boolean isCommitted() {
535 //
536 //            return false;
537 //        }
538 //
539 //        @Override
540 //        public void reset() {
541 //
542 //
543 //        }
544 //
545 //        @Override
546 //        public void setLocale(Locale loc) {
547 //
548 //
549 //        }
550 //
551 //        @Override
552 //        public Locale getLocale() {
553 //
554 //            return null;
555 //        }
556 //
557 //        @Override
558 //        public void addCookie(Cookie cookie) {
559 //
560 //
561 //        }
562 //
563 //        @Override
564 //        public boolean containsHeader(String name) {
565 //
566 //            return false;
567 //        }
568 //
569 //        @Override
570 //        public String encodeURL(String url) {
571 //
572 //            return null;
573 //        }
574 //
575 //        @Override
576 //        public String encodeRedirectURL(String url) {
577 //
578 //            return null;
579 //        }
580 //
581 //        @Override
582 //        public String encodeUrl(String url) {
583 //
584 //            return null;
585 //        }
586 //
587 //        @Override
588 //        public String encodeRedirectUrl(String url) {
589 //
590 //            return null;
591 //        }
592 //
593 //        @Override
594 //        public void sendError(int sc, String msg) throws IOException {
595 //
596 //
597 //        }
598 //
599 //        @Override
600 //        public void sendError(int sc) throws IOException {
601 //
602 //
603 //        }
604 //
605 //        @Override
606 //        public void sendRedirect(String location) throws IOException {
607 //
608 //
609 //        }
610 //
611 //        @Override
612 //        public void setDateHeader(String name, long date) {
613 //
614 //
615 //        }
616 //
617 //        @Override
618 //        public void addDateHeader(String name, long date) {
619 //
620 //
621 //        }
622 //
623 //        @Override
624 //        public void setHeader(String name, String value) {
625 //
626 //
627 //        }
628 //
629 //        @Override
630 //        public void addHeader(String name, String value) {
631 //
632 //
633 //        }
634 //
635 //        @Override
636 //        public void setIntHeader(String name, int value) {
637 //
638 //
639 //        }
640 //
641 //        @Override
642 //        public void addIntHeader(String name, int value) {
643 //
644 //
645 //        }
646 //
647 //        @Override
648 //        public void setStatus(int sc) {
649 //
650 //
651 //        }
652 //
653 //        @Override
654 //        public void setStatus(int sc, String sm) {
655 //
656 //
657 //        }
658 //
659 //    }
660 //
661 }