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);