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.ReadListener;
 
  22 import javax.servlet.ServletException;
 
  23 import javax.servlet.ServletInputStream;
 
  24 import javax.servlet.ServletOutputStream;
 
  25 import javax.servlet.WriteListener;
 
  26 import javax.servlet.http.HttpServletRequest;
 
  27 import javax.servlet.http.HttpServletResponse;
 
  28 import org.apache.commons.codec.binary.Base64;
 
  29 import org.junit.After;
 
  30 import org.junit.Before;
 
  31 import org.junit.Test;
 
  37 public class TestRequestResponseLoggingFilter {
 
  39     RequestResponseLoggingFilter filter;
 
  41     private class DummyServletInputStream extends ServletInputStream {
 
  45         public DummyServletInputStream(InputStream stream) {
 
  51         public void close() throws IOException {
 
  58         public int read() throws IOException {
 
  64                 public boolean isFinished() {
 
  66                                 return stream.available() < 1;
 
  67                         } catch (IOException e) {
 
  74                 public boolean isReady() {
 
  75                         // TODO Auto-generated method stub
 
  81                 public void setReadListener(ReadListener arg0) {
 
  82                         // TODO Auto-generated method stub
 
  90     private class DummyServletOutputStream extends ServletOutputStream {
 
  94         public DummyServletOutputStream(OutputStream ostr) {
 
  99         public void write(int b) throws IOException {
 
 104                 public boolean isReady() {
 
 109                 public void setWriteListener(WriteListener arg0) {
 
 116      * @throws java.lang.Exception
 
 119     public void setUp() throws Exception {
 
 120         filter = new RequestResponseLoggingFilter();
 
 125      * @throws java.lang.Exception
 
 128     public void tearDown() throws Exception {}
 
 131      * Test method for {@link org.onap.ccsdk.sli.core.filters.RequestResponseLoggingFilter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)}.
 
 132      * @throws IOException
 
 133      * @throws ServletException
 
 136     public void testDoFilter() throws IOException, ServletException {
 
 138         HttpServletRequest request = mock(HttpServletRequest.class);
 
 139         String msgBody = "hello world";
 
 140         InputStream reqInputStream = new ByteArrayInputStream(msgBody.getBytes());
 
 141         when(request.getInputStream()).thenReturn(new DummyServletInputStream(reqInputStream));
 
 142         when(request.getMethod()).thenReturn("POST");
 
 143         when(request.getRequestURL()).thenReturn(new StringBuffer("/HELLO:world"));
 
 144         when(request.getPathInfo()).thenReturn("/hello:world");
 
 145         Vector<String> headerList = new Vector<>();
 
 146         headerList.add(LogFilter.REQUEST_ID);
 
 147         headerList.add("Authorization");
 
 148         when(request.getHeaderNames()).thenReturn(headerList.elements());
 
 150         when(request.getHeader(LogFilter.REQUEST_ID)).thenReturn(UUID.randomUUID().toString());
 
 151         when(request.getHeader("Authorization")).thenReturn("Basic "+Base64.encodeBase64String("username:password".getBytes()));
 
 153         HttpServletResponse response = mock(HttpServletResponse.class);
 
 154         OutputStream outStr = new ByteArrayOutputStream();
 
 155         when(response.getOutputStream()).thenReturn(new DummyServletOutputStream(outStr));
 
 157         FilterChain filterChain = mock(FilterChain.class);
 
 159         filter.doFilter(request, response, filterChain);