2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.logging.servlet.spring;
19 import static org.junit.Assert.assertEquals;
20 import static org.mockito.ArgumentMatchers.any;
21 import static org.mockito.ArgumentMatchers.eq;
22 import static org.mockito.Mockito.mock;
23 import static org.mockito.Mockito.verify;
24 import static org.mockito.Mockito.when;
25 import static org.openecomp.sdc.logging.api.StatusCode.COMPLETE;
26 import static org.openecomp.sdc.logging.api.StatusCode.ERROR;
27 import static org.openecomp.sdc.logging.servlet.spring.LoggingInterceptor.LOGGING_TRACKER_KEY;
29 import javax.servlet.http.HttpServletRequest;
30 import javax.servlet.http.HttpServletResponse;
31 import org.junit.Test;
32 import org.openecomp.sdc.logging.servlet.HttpHeader;
33 import org.openecomp.sdc.logging.servlet.RequestProcessingResult;
34 import org.openecomp.sdc.logging.servlet.Tracker;
37 * Audit tracking via Spring interceptor.
42 public class LoggingInterceptorTest {
44 @Test(expected = NullPointerException.class)
45 public void exceptionThrownWhenPartnerNameHeaderNull() {
46 new LoggingInterceptor(null, mock(HttpHeader.class));
49 @Test(expected = NullPointerException.class)
50 public void exceptionThrownWhenRequestIdHeaderNull() {
51 new LoggingInterceptor(mock(HttpHeader.class), null);
55 public void trackerAddedWhenBeforeRequest() {
56 HttpServletRequest request = mock(HttpServletRequest.class);
57 LoggingInterceptor interceptor = new LoggingInterceptor(mock(HttpHeader.class), mock(HttpHeader.class));
58 interceptor.preHandle(request, mock(HttpServletResponse.class), null);
59 verify(request).setAttribute(eq(LOGGING_TRACKER_KEY), any(Tracker.class));
63 public void trackerInvokedWhenPresentInRequest() {
65 Tracker tracker = mock(Tracker.class);
67 HttpServletRequest request = mock(HttpServletRequest.class);
68 when(request.getAttribute(LOGGING_TRACKER_KEY)).thenReturn(tracker);
70 HttpServletResponse response = mock(HttpServletResponse.class);
71 when(response.getStatus()).thenReturn(200);
73 LoggingInterceptor interceptor = new LoggingInterceptor(mock(HttpHeader.class), mock(HttpHeader.class));
74 interceptor.afterCompletion(request, response, null, null);
75 verify(tracker).postRequest(any(RequestProcessingResult.class));
79 public void errorStatusWhenInformationalCode() {
80 final int status = 101;
81 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
82 assertEquals(status, result.getStatus());
83 assertEquals(ERROR, result.getStatusCode());
87 public void errorStatusWhenClientErrorCode() {
88 final int status = 404;
89 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
90 assertEquals(status, result.getStatus());
91 assertEquals(ERROR, result.getStatusCode());
95 public void errorStatusWhenServerErrorCode() {
96 final int status = 503;
97 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
98 assertEquals(status, result.getStatus());
99 assertEquals(ERROR, result.getStatusCode());
103 public void completeStatusWhenSuccessCode() {
104 final int status = 204;
105 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
106 assertEquals(status, result.getStatus());
107 assertEquals(COMPLETE, result.getStatusCode());
111 public void completeStatusWhenRedirectionCode() {
112 final int status = 307;
113 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
114 assertEquals(status, result.getStatus());
115 assertEquals(COMPLETE, result.getStatusCode());
119 public void errorStatusWhenNonStandardInformationalCode() {
120 final int status = 133;
121 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
122 assertEquals(status, result.getStatus());
123 assertEquals(ERROR, result.getStatusCode());
127 public void errorStatusWhenNonStandardClientErrorCode() {
128 final int status = 485;
129 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
130 assertEquals(status, result.getStatus());
131 assertEquals(ERROR, result.getStatusCode());
135 public void errorStatusWhenNonStandardServerErrorCode() {
136 final int status = 547;
137 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
138 assertEquals(status, result.getStatus());
139 assertEquals(ERROR, result.getStatusCode());
143 public void completeStatusWhenNonStandardSuccessCode() {
144 final int status = 277;
145 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
146 assertEquals(status, result.getStatus());
147 assertEquals(COMPLETE, result.getStatusCode());
151 public void completeStatusWhenNonStandardRedirectionCode() {
152 final int status = 364;
153 LoggingInterceptor.ServletResponseResult result = new LoggingInterceptor.ServletResponseResult(status);
154 assertEquals(status, result.getStatus());
155 assertEquals(COMPLETE, result.getStatusCode());