4 package org.onap.ccsdk.sli.core.filters;
6 import static org.junit.Assert.*;
7 import static org.mockito.Mockito.*;
8 import java.io.BufferedInputStream;
9 import java.io.BufferedReader;
10 import java.io.ByteArrayInputStream;
11 import java.io.ByteArrayOutputStream;
12 import java.io.IOException;
13 import java.io.InputStream;
14 import java.io.OutputStream;
15 import java.io.StringBufferInputStream;
16 import java.io.StringReader;
17 import java.util.LinkedList;
18 import java.util.UUID;
19 import java.util.Vector;
20 import javax.servlet.FilterChain;
21 import javax.servlet.ServletException;
22 import javax.servlet.ServletInputStream;
23 import javax.servlet.ServletOutputStream;
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26 import org.apache.commons.codec.binary.Base64;
27 import org.junit.After;
28 import org.junit.Before;
29 import org.junit.Test;
35 public class TestRequestResponseLoggingFilter {
37 RequestResponseLoggingFilter filter;
39 private class DummyServletInputStream extends ServletInputStream {
43 public DummyServletInputStream(InputStream stream) {
49 public void close() throws IOException {
56 public int read() throws IOException {
64 private class DummyServletOutputStream extends ServletOutputStream {
68 public DummyServletOutputStream(OutputStream ostr) {
73 public void write(int b) throws IOException {
80 * @throws java.lang.Exception
83 public void setUp() throws Exception {
84 filter = new RequestResponseLoggingFilter();
89 * @throws java.lang.Exception
92 public void tearDown() throws Exception {}
95 * Test method for {@link org.onap.ccsdk.sli.core.filters.RequestResponseLoggingFilter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)}.
97 * @throws ServletException
100 public void testDoFilter() throws IOException, ServletException {
102 HttpServletRequest request = mock(HttpServletRequest.class);
103 String msgBody = "hello world";
104 InputStream reqInputStream = new ByteArrayInputStream(msgBody.getBytes());
105 when(request.getInputStream()).thenReturn(new DummyServletInputStream(reqInputStream));
106 when(request.getMethod()).thenReturn("POST");
107 when(request.getRequestURL()).thenReturn(new StringBuffer("/HELLO:world"));
108 when(request.getPathInfo()).thenReturn("/hello:world");
109 Vector<String> headerList = new Vector<>();
110 headerList.add(LogFilter.REQUEST_ID);
111 headerList.add("Authorization");
112 when(request.getHeaderNames()).thenReturn(headerList.elements());
114 when(request.getHeader(LogFilter.REQUEST_ID)).thenReturn(UUID.randomUUID().toString());
115 when(request.getHeader("Authorization")).thenReturn("Basic "+Base64.encodeBase64String("username:password".getBytes()));
117 HttpServletResponse response = mock(HttpServletResponse.class);
118 OutputStream outStr = new ByteArrayOutputStream();
119 when(response.getOutputStream()).thenReturn(new DummyServletOutputStream(outStr));
121 FilterChain filterChain = mock(FilterChain.class);
123 filter.doFilter(request, response, filterChain);