[SDC-29] Amdocs OnBoard 1707 initial commit.
[sdc.git] / common / openecomp-logging-lib / openecomp-logging-core / src / test / java / org / openecomp / core / logging / servlet / LoggingFilterTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 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 package org.openecomp.core.logging.servlet;
22
23 import org.slf4j.MDC;
24 import org.testng.Assert;
25 import org.testng.annotations.Test;
26
27 import javax.servlet.*;
28 import java.io.BufferedReader;
29 import java.io.IOException;
30 import java.io.PrintWriter;
31 import java.io.UnsupportedEncodingException;
32 import java.net.InetAddress;
33 import java.util.Enumeration;
34 import java.util.Locale;
35 import java.util.Map;
36 import java.util.UUID;
37 import java.util.concurrent.atomic.AtomicInteger;
38
39 import static org.testng.Assert.assertEquals;
40 import static org.testng.Assert.assertNull;
41
42 /**
43  * TODO: Add more tests
44  *
45  * @author EVITALIY
46  * @since 17/08/2016.
47  */
48 public class LoggingFilterTest {
49
50   private static final String REMOTE_HOST = UUID.randomUUID().toString();
51
52   @Test
53   public void testDoFilter() throws Exception {
54     LoggingFilter loggingFilter = new LoggingFilter();
55     ServletRequest mockRequest = new TestServletRequest();
56     ServletResponse mockResponse = new TestServletResponse();
57     TestFilterChain mockChain = new TestFilterChain();
58     loggingFilter.doFilter(mockRequest, mockResponse, mockChain);
59     assertEquals(1, mockChain.getCount());
60     assertNull(MDC.getCopyOfContextMap());
61   }
62
63   private static class TestServletRequest implements ServletRequest {
64
65     @Override
66     public Object getAttribute(String s) {
67       return null;
68     }
69
70     @Override
71     public Enumeration getAttributeNames() {
72       return null;
73     }
74
75     @Override
76     public String getCharacterEncoding() {
77       return null;
78     }
79
80     @Override
81     public void setCharacterEncoding(String s) throws UnsupportedEncodingException {
82
83     }
84
85     @Override
86     public int getContentLength() {
87       return 0;
88     }
89
90     @Override
91     public String getContentType() {
92       return null;
93     }
94
95     @Override
96     public ServletInputStream getInputStream() throws IOException {
97       return null;
98     }
99
100     @Override
101     public String getParameter(String s) {
102       return null;
103     }
104
105     @Override
106     public Enumeration getParameterNames() {
107       return null;
108     }
109
110     @Override
111     public String[] getParameterValues(String s) {
112       return new String[0];
113     }
114
115     @Override
116     public Map getParameterMap() {
117       return null;
118     }
119
120     @Override
121     public String getProtocol() {
122       return null;
123     }
124
125     @Override
126     public String getScheme() {
127       return null;
128     }
129
130     @Override
131     public String getServerName() {
132       return null;
133     }
134
135     @Override
136     public int getServerPort() {
137       return 0;
138     }
139
140     @Override
141     public BufferedReader getReader() throws IOException {
142       return null;
143     }
144
145     @Override
146     public String getRemoteAddr() {
147       return null;
148     }
149
150     @Override
151     public String getRemoteHost() {
152       return REMOTE_HOST;
153     }
154
155     @Override
156     public void setAttribute(String s, Object o) {
157
158     }
159
160     @Override
161     public void removeAttribute(String s) {
162
163     }
164
165     @Override
166     public Locale getLocale() {
167       return null;
168     }
169
170     @Override
171     public Enumeration getLocales() {
172       return null;
173     }
174
175     @Override
176     public boolean isSecure() {
177       return false;
178     }
179
180     @Override
181     public RequestDispatcher getRequestDispatcher(String s) {
182       return null;
183     }
184
185     @Override
186     public String getRealPath(String s) {
187       return null;
188     }
189
190     @Override
191     public int getRemotePort() {
192       return 0;
193     }
194
195     @Override
196     public String getLocalName() {
197       return null;
198     }
199
200     @Override
201     public String getLocalAddr() {
202       return null;
203     }
204
205     @Override
206     public int getLocalPort() {
207       return 0;
208     }
209   }
210
211   private static class TestFilterChain implements FilterChain {
212
213     private AtomicInteger count = new AtomicInteger(0);
214
215     @Override
216     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse)
217         throws IOException, ServletException {
218
219       Assert.assertNotNull(MDC.get("RequestId"));
220       Assert.assertEquals(MDC.get("ServiceInstanceId"), "N/A");
221       Assert.assertEquals(MDC.get("ServiceName"), "SDC");
222       Assert.assertEquals(MDC.get("InstanceUUID"), "N/A");
223       Assert.assertEquals(MDC.get("RemoteHost"), REMOTE_HOST);
224
225       InetAddress host = InetAddress.getLocalHost();
226       Assert.assertEquals(MDC.get("ServerIPAddress"), host.getHostAddress());
227       Assert.assertEquals(MDC.get("ServerFQDN"), host.getHostName());
228
229       count.incrementAndGet();
230     }
231
232     public int getCount() {
233       return count.get();
234     }
235   }
236
237   private static class TestServletResponse implements ServletResponse {
238
239     @Override
240     public String getCharacterEncoding() {
241       return null;
242     }
243
244     @Override
245     public void setCharacterEncoding(String s) {
246
247     }
248
249     @Override
250     public String getContentType() {
251       return null;
252     }
253
254     @Override
255     public void setContentType(String s) {
256
257     }
258
259     @Override
260     public ServletOutputStream getOutputStream() throws IOException {
261       return null;
262     }
263
264     @Override
265     public PrintWriter getWriter() throws IOException {
266       return null;
267     }
268
269     @Override
270     public void setContentLength(int i) {
271
272     }
273
274     @Override
275     public int getBufferSize() {
276       return 0;
277     }
278
279     @Override
280     public void setBufferSize(int i) {
281
282     }
283
284     @Override
285     public void flushBuffer() throws IOException {
286
287     }
288
289     @Override
290     public void resetBuffer() {
291
292     }
293
294     @Override
295     public boolean isCommitted() {
296       return false;
297     }
298
299     @Override
300     public void reset() {
301
302     }
303
304     @Override
305     public Locale getLocale() {
306       return null;
307     }
308
309     @Override
310     public void setLocale(Locale locale) {
311
312     }
313   }
314 }