aboutsummaryrefslogtreecommitdiffstats
path: root/reference/logging-filter/logging-filter-base/src/test/java/org/onap
diff options
context:
space:
mode:
Diffstat (limited to 'reference/logging-filter/logging-filter-base/src/test/java/org/onap')
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogContainerFilterTest.java86
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogServletFilterTest.java88
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/LoggingContainerFilterTest.java41
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MDCSetupTest.java306
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MetricLogClientFilterTest.java127
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PayloadLoggingClientFilterTest.java76
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PropertyUtilTest.java50
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleJaxrsHeadersMapTest.java42
-rw-r--r--reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleServletHeadersMapTest.java52
9 files changed, 868 insertions, 0 deletions
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogContainerFilterTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogContainerFilterTest.java
new file mode 100644
index 0000000..af80b19
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogContainerFilterTest.java
@@ -0,0 +1,86 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.core.UriInfo;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.AuditLogContainerFilter;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.SimpleMap;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.slf4j.MDC;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AuditLogContainerFilterTest {
+
+ @Mock
+ private ContainerRequestContext containerRequest;
+
+ @Mock
+ private ContainerResponseContext containerResponse;
+
+ @Mock
+ private MDCSetup mdcSetup;
+
+ @Mock
+ private UriInfo uriInfo;
+
+ @Spy
+ @InjectMocks
+ private AuditLogContainerFilter auditLogContainerFilter;
+
+ @After
+ public void tearDown() {
+ MDC.clear();
+ }
+
+ @Test
+ public void filterTest() {
+ when(mdcSetup.getRequestId(any(SimpleMap.class))).thenReturn("e3b08fa3-535f-4c1b-8228-91318d2bb4ee");
+ when(uriInfo.getPath()).thenReturn("onap/so/serviceInstances");
+ doReturn(uriInfo).when(containerRequest).getUriInfo();
+ auditLogContainerFilter.filter(containerRequest);
+
+ assertEquals("e3b08fa3-535f-4c1b-8228-91318d2bb4ee", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+ assertEquals("onap/so/serviceInstances", MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+ assertEquals("INPROGRESS", MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ }
+
+ @Test
+ public void getResponseCodeTest() {
+ when(containerResponse.getStatus()).thenReturn(200);
+ int responseCode = auditLogContainerFilter.getResponseCode(containerResponse);
+
+ assertEquals(200, responseCode);
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogServletFilterTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogServletFilterTest.java
new file mode 100644
index 0000000..1a0d0ef
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/AuditLogServletFilterTest.java
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.AuditLogServletFilter;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.SimpleMap;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.slf4j.MDC;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AuditLogServletFilterTest {
+
+ @Mock
+ private ServletRequest request;
+
+ @Mock
+ private ServletResponse response;
+
+ @Mock
+ private MDCSetup mdcSetup;
+
+ @Mock
+ private HttpServletRequest servletRequest;
+
+ @Mock
+ private HttpServletResponse servletResponse;
+
+ @Spy
+ @InjectMocks
+ private AuditLogServletFilter auditLogServletFilter;
+
+ @After
+ public void tearDown() {
+ MDC.clear();
+ }
+
+ @Test
+ public void preTest() {
+ when(mdcSetup.getRequestId(any(SimpleMap.class))).thenReturn("e3b08fa3-535f-4c1b-8228-91318d2bb4ee");
+ when(servletRequest.getRequestURI()).thenReturn("onap/so/serviceInstances");
+ auditLogServletFilter.pre(servletRequest, mdcSetup);
+
+ assertEquals("e3b08fa3-535f-4c1b-8228-91318d2bb4ee", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+ assertEquals("onap/so/serviceInstances", MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+ assertEquals("INPROGRESS", MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ }
+
+ @Test
+ public void getResponseCodeTest() {
+ when(servletResponse.getStatus()).thenReturn(200);
+ int responseCode = auditLogServletFilter.getResponseCode(servletResponse);
+
+ assertEquals(200, responseCode);
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/LoggingContainerFilterTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/LoggingContainerFilterTest.java
new file mode 100644
index 0000000..4f8d16d
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/LoggingContainerFilterTest.java
@@ -0,0 +1,41 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.junit.Test;
+import org.onap.logging.filter.base.SimpleJaxrsHeadersMap;
+import org.onap.logging.filter.base.SimpleMap;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+
+public class LoggingContainerFilterTest {
+ private String invocationId = "4d31fe02-4918-4975-942f-fe51a44e6a9b";
+
+ @Test
+ public void convertMultivaluedMapToHashMap() {
+ MultivaluedMap<String, String> headers = new MultivaluedHashMap<>();
+ headers.add(ONAPLogConstants.Headers.INVOCATION_ID, invocationId);
+ SimpleMap result = new SimpleJaxrsHeadersMap(headers);
+ assertEquals(invocationId, result.get(ONAPLogConstants.Headers.INVOCATION_ID));
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MDCSetupTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MDCSetupTest.java
new file mode 100644
index 0000000..1687c19
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MDCSetupTest.java
@@ -0,0 +1,306 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.when;
+import java.util.HashMap;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.logging.filter.base.SimpleHashMap;
+import org.onap.logging.filter.base.SimpleJaxrsHeadersMap;
+import org.onap.logging.filter.base.SimpleMap;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.slf4j.MDC;
+
+@RunWith(MockitoJUnitRunner.class)
+public class MDCSetupTest {
+
+ @Mock
+ private HttpServletRequest httpServletRequest;
+
+ @Spy
+ @InjectMocks
+ private MDCSetup mdcSetup = new MDCSetup();
+
+ private String requestId = "4d31fe02-4918-4975-942f-fe51a44e6a9b";
+ private String invocationId = "4d31fe02-4918-4975-942f-fe51a44e6a9a";
+
+ @After
+ public void tearDown() {
+ MDC.clear();
+ }
+
+ @Test
+ public void setElapsedTimeTest() {
+ String expected = "318";
+ MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+ MDC.put(ONAPLogConstants.MDCs.LOG_TIMESTAMP, "2019-06-18T02:09:06.342Z");
+
+ mdcSetup.setElapsedTime();
+ assertEquals(expected, MDC.get(ONAPLogConstants.MDCs.ELAPSED_TIME));
+ }
+
+ @Test
+ public void setElapsedTimeInvokeTimestampTest() {
+ String expected = "318";
+ MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+ MDC.put(ONAPLogConstants.MDCs.LOG_TIMESTAMP, "2019-06-18T02:09:06.342Z");
+
+ mdcSetup.setElapsedTimeInvokeTimestamp();
+ assertEquals(expected, MDC.get(ONAPLogConstants.MDCs.ELAPSED_TIME));
+ }
+
+ @Test
+ public void setRequestIdTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ headers.put(ONAPLogConstants.Headers.REQUEST_ID, requestId);
+ String fetchedRequestId = mdcSetup.getRequestId(new SimpleHashMap(headers));
+ assertEquals(requestId, fetchedRequestId);
+ }
+
+ @Test
+ public void setRequestIdRequestIdHeaderTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ headers.put(Constants.HttpHeaders.HEADER_REQUEST_ID, requestId);
+ String fetchedRequestId = mdcSetup.getRequestId(new SimpleHashMap(headers));
+ assertEquals(requestId, fetchedRequestId);
+ }
+
+ @Test
+ public void setRequestIdTransactionIdHeaderTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ headers.put(Constants.HttpHeaders.TRANSACTION_ID, requestId);
+ String fetchedRequestId = mdcSetup.getRequestId(new SimpleHashMap(headers));
+ assertEquals(requestId, fetchedRequestId);
+ }
+
+ @Test
+ public void setRequestIdEcompRequestIdHeaderTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ headers.put(Constants.HttpHeaders.ECOMP_REQUEST_ID, requestId);
+ String fetchedRequestId = mdcSetup.getRequestId(new SimpleHashMap(headers));
+ assertEquals(requestId, fetchedRequestId);
+ }
+
+ @Test
+ public void setRequestIdNoHeaderTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ String fetchedRequestId = mdcSetup.getRequestId(new SimpleHashMap(headers));
+ assertNotNull(fetchedRequestId);
+ }
+
+ @Test
+ public void setInvocationIdTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ headers.put(ONAPLogConstants.Headers.INVOCATION_ID, invocationId);
+ mdcSetup.setInvocationId(new SimpleHashMap(headers));
+ assertEquals(invocationId, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+ }
+
+ @Test
+ public void setInvocationIdNoHeaderTest() {
+ HashMap<String, String> headers = new HashMap<>();
+ mdcSetup.setInvocationId(new SimpleHashMap(headers));
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+ }
+
+ @Test
+ public void setInvovationIdFromMDCTest() {
+ MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, "7b77143c-9b50-410c-ac2f-05758a68e3e8");
+ mdcSetup.setInvocationIdFromMDC();
+ assertEquals("7b77143c-9b50-410c-ac2f-05758a68e3e8", MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+ }
+
+ @Test
+ public void setInvocationIdFromMDCNoInvocationIdTest() {
+ mdcSetup.setInvocationIdFromMDC();
+ // InvocationId is set to a random UUID
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+ }
+
+ @Test
+ public void setResponseStatusCodeTest() {
+ mdcSetup.setResponseStatusCode(200);
+ assertEquals("COMPLETE", MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ }
+
+ @Test
+ public void setResponseStatusCodeErrorTest() {
+ mdcSetup.setResponseStatusCode(400);
+ assertEquals("ERROR", MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ assertEquals("400", MDC.get(ONAPLogConstants.MDCs.ERROR_CODE));
+ assertEquals("Bad Request", MDC.get(ONAPLogConstants.MDCs.ERROR_DESC));
+ }
+
+ @Test
+ public void clearClientMDCsTest() {
+ MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, "7b77143c-9b50-410c-ac2f-05758a68e3e9");
+ MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, "Bad Gateway");
+ MDC.put(ONAPLogConstants.MDCs.ERROR_DESC, "Bad Gateway");
+ MDC.put(ONAPLogConstants.MDCs.ERROR_CODE, "502");
+ MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, "502");
+ MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, "502");
+ MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, "SO");
+ MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, "SDNC");
+ MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+
+ mdcSetup.clearClientMDCs();
+ assertNull(MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.ERROR_CODE));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.ERROR_DESC));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME));
+ assertNull(MDC.get(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP));
+ }
+
+ @Test
+ public void setTargetEntityTest() {
+ mdcSetup.setTargetEntity(ONAPComponents.SO);
+ assertEquals("SO", MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY));
+ }
+
+ @Test
+ public void setResponseDescriptionTest() {
+ mdcSetup.setResponseDescription(502);
+ assertEquals("Bad Gateway", MDC.get(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION));
+ }
+
+ @Test
+ public void setMDCPartnerNameTest() {
+ MultivaluedMap<String, String> headerMap = new MultivaluedHashMap<>();
+ headerMap.putSingle(ONAPLogConstants.Headers.PARTNER_NAME, "SO");
+ SimpleMap headers = new SimpleJaxrsHeadersMap(headerMap);
+
+ mdcSetup.setMDCPartnerName(headers);
+
+ assertEquals("SO", MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+ }
+
+ @Test
+ public void setMDCPartnerNameUserAgentHeaderTest() {
+ MultivaluedMap<String, String> headerMap = new MultivaluedHashMap<>();
+ headerMap.putSingle(HttpHeaders.USER_AGENT, "Apache-HttpClient/4.5.8 (Java/1.8.0_191)");
+ SimpleMap headers = new SimpleJaxrsHeadersMap(headerMap);
+
+ mdcSetup.setMDCPartnerName(headers);
+
+ assertEquals("Apache-HttpClient/4.5.8 (Java/1.8.0_191)", MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+ }
+
+ @Test
+ public void setMDCPartnerNameClientIdHeaderTest() {
+ MultivaluedMap<String, String> headerMap = new MultivaluedHashMap<>();
+ headerMap.putSingle(Constants.HttpHeaders.CLIENT_ID, "SO");
+ SimpleMap headers = new SimpleJaxrsHeadersMap(headerMap);
+
+ mdcSetup.setMDCPartnerName(headers);
+
+ assertEquals("SO", MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+ }
+
+ @Test
+ public void setMDCPartnerNameNoHeaderTest() {
+ MultivaluedMap<String, String> headerMap = new MultivaluedHashMap<>();
+ SimpleMap headers = new SimpleJaxrsHeadersMap(headerMap);
+
+ mdcSetup.setMDCPartnerName(headers);
+
+ assertEquals("UNKNOWN", MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+ }
+
+ @Test
+ public void setServerFQDNTest() {
+ mdcSetup.setServerFQDN();
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.SERVER_IP_ADDRESS));
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.SERVER_FQDN));
+ }
+
+ @Test
+ public void setClientIPAddressTest() {
+ when(httpServletRequest.getHeader("X-Forwarded-For")).thenReturn("127.0.0.2");
+ mdcSetup.setClientIPAddress(httpServletRequest);
+
+ assertEquals("127.0.0.2", MDC.get(ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS));
+ }
+
+ @Test
+ public void setClientIPAddressNoHeaderTest() {
+ when(httpServletRequest.getRemoteAddr()).thenReturn("127.0.0.1");
+ mdcSetup.setClientIPAddress(httpServletRequest);
+
+ assertEquals("127.0.0.1", MDC.get(ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS));
+ }
+
+ @Test
+ public void setClientIPAddressNullTest() {
+ mdcSetup.setClientIPAddress(null);
+
+ assertEquals("", MDC.get(ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS));
+ }
+
+ @Test
+ public void setEntryTimeStampTest() {
+ mdcSetup.setEntryTimeStamp();
+
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+ }
+
+ @Test
+ public void setLogTimestampTest() {
+ mdcSetup.setLogTimestamp();
+
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.LOG_TIMESTAMP));
+ }
+
+ @Test
+ public void setInstanceIDTest() {
+ mdcSetup.setInstanceID();
+
+ assertNotNull(MDC.get(ONAPLogConstants.MDCs.INSTANCE_UUID));
+ }
+
+ @Test
+ public void setServiceNameTest() {
+ String requestUri = "onap/so/serviceInstances";
+ when(httpServletRequest.getRequestURI()).thenReturn(requestUri);
+ mdcSetup.setServiceName(httpServletRequest);
+
+ assertEquals("onap/so/serviceInstances", MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MetricLogClientFilterTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MetricLogClientFilterTest.java
new file mode 100644
index 0000000..9a9f883
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/MetricLogClientFilterTest.java
@@ -0,0 +1,127 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.when;
+import java.net.URI;
+import java.net.URISyntaxException;
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.MetricLogClientFilter;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.slf4j.MDC;
+
+@RunWith(MockitoJUnitRunner.class)
+public class MetricLogClientFilterTest {
+
+ @Mock
+ private MDCSetup mdcSetup;
+
+ @Mock
+ private ClientRequestContext clientRequest;
+
+ @Spy
+ @InjectMocks
+ private MetricLogClientFilter metricLogClientFilter;
+
+ @After
+ public void tearDown() {
+ MDC.clear();
+ }
+
+ @Test
+ public void setupHeadersTest() {
+ MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, "8819bfb4-69d2-43fc-b0d6-81d2690533ea");
+ MultivaluedMap<String, Object> headers = new MultivaluedHashMap<>();
+ when(clientRequest.getHeaders()).thenReturn(headers);
+ doReturn("0a908a5d-e774-4558-96ff-6edcbba65483").when(metricLogClientFilter).extractRequestID(clientRequest);
+
+ metricLogClientFilter.setupHeaders(clientRequest);
+
+ assertEquals("0a908a5d-e774-4558-96ff-6edcbba65483", headers.getFirst(ONAPLogConstants.Headers.REQUEST_ID));
+ assertEquals("0a908a5d-e774-4558-96ff-6edcbba65483", headers.getFirst(Constants.HttpHeaders.HEADER_REQUEST_ID));
+ assertEquals("0a908a5d-e774-4558-96ff-6edcbba65483", headers.getFirst(Constants.HttpHeaders.TRANSACTION_ID));
+ assertEquals("0a908a5d-e774-4558-96ff-6edcbba65483", headers.getFirst(Constants.HttpHeaders.TRANSACTION_ID));
+ assertEquals("0a908a5d-e774-4558-96ff-6edcbba65483", headers.getFirst(Constants.HttpHeaders.ECOMP_REQUEST_ID));
+ assertEquals("8819bfb4-69d2-43fc-b0d6-81d2690533ea", headers.getFirst(ONAPLogConstants.Headers.INVOCATION_ID));
+ assertEquals("UNKNOWN", headers.getFirst(ONAPLogConstants.Headers.PARTNER_NAME));
+ }
+
+ @Test
+ public void setupMDCTest() throws URISyntaxException {
+ MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, "SO");
+ URI uri = new URI("onap/so/serviceInstances");
+ doReturn(uri).when(clientRequest).getUri();
+
+ metricLogClientFilter.setupMDC(clientRequest);
+
+ assertEquals("onap/so/serviceInstances", MDC.get(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME));
+ assertEquals("SO", MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY));
+ assertEquals("INPROGRESS", MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ assertNotNull(ONAPLogConstants.MDCs.SERVICE_NAME);
+ assertNotNull(ONAPLogConstants.MDCs.SERVER_FQDN);
+ assertNotNull(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
+ }
+
+ @Test
+ public void setupMDCNoTargetEntityTest() throws URISyntaxException {
+ URI uri = new URI("onap/so/serviceInstances");
+ doReturn(uri).when(clientRequest).getUri();
+
+ metricLogClientFilter.setupMDC(clientRequest);
+
+ assertEquals("onap/so/serviceInstances", MDC.get(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME));
+ assertEquals("Unknown-Target-Entity", MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY));
+ assertEquals("INPROGRESS", MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+ assertNotNull(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
+ }
+
+ @Test
+ public void extractRequestIDTest() {
+ MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, "0a908a5d-e774-4558-96ff-6edcbba65483");
+ String requestId = metricLogClientFilter.extractRequestID(clientRequest);
+ assertEquals("0a908a5d-e774-4558-96ff-6edcbba65483", requestId);
+ }
+
+ @Test
+ public void extractRequestIDNullTest() throws URISyntaxException {
+ URI uri = new URI("onap/so/serviceInstances");
+ doReturn(uri).when(clientRequest).getUri();
+ String requestId = metricLogClientFilter.extractRequestID(clientRequest);
+ assertNotNull(requestId);
+ assertNotNull(ONAPLogConstants.MDCs.LOG_TIMESTAMP);
+ assertNotNull(ONAPLogConstants.MDCs.ELAPSED_TIME);
+
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PayloadLoggingClientFilterTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PayloadLoggingClientFilterTest.java
new file mode 100644
index 0000000..5156516
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PayloadLoggingClientFilterTest.java
@@ -0,0 +1,76 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.PayloadLoggingClientFilter;
+
+@RunWith(MockitoJUnitRunner.class)
+public class PayloadLoggingClientFilterTest {
+
+ @Mock
+ private ClientRequestContext requestContext;
+
+ @Spy
+ @InjectMocks
+ private PayloadLoggingClientFilter payloadLoggingClientFilter;
+
+ @Test
+ public void formatMethodTest() throws IOException, URISyntaxException {
+ when(requestContext.getHeaderString("X-HTTP-Method-Override")).thenReturn("filter");
+ when(requestContext.getMethod()).thenReturn("filtered");
+ String method = payloadLoggingClientFilter.formatMethod(requestContext);
+
+ assertEquals("filtered (overridden to filter)", method);
+ }
+
+ @Test
+ public void formatMethodNullHeaderTest() throws IOException, URISyntaxException {
+ when(requestContext.getMethod()).thenReturn("filtered");
+ String method = payloadLoggingClientFilter.formatMethod(requestContext);
+
+ assertEquals("filtered", method);
+ }
+
+ @Test
+ public void getHeadersTest() {
+ MultivaluedMap<String, Object> headers = new MultivaluedHashMap<>();
+ headers.add(Constants.HttpHeaders.ONAP_PARTNER_NAME, "SO");
+ headers.add("Authorization", "Test");
+
+ String printHeaders = payloadLoggingClientFilter.getHeaders(headers);
+
+ assertEquals("{X-ONAP-PartnerName=[SO]}", printHeaders);
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PropertyUtilTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PropertyUtilTest.java
new file mode 100644
index 0000000..4ec14bc
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/PropertyUtilTest.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import org.junit.After;
+import org.junit.Test;
+import org.onap.logging.filter.base.PropertyUtil;
+
+public class PropertyUtilTest {
+
+ private PropertyUtil propertyUtil = new PropertyUtil();
+
+ @After
+ public void tearDown() {
+ System.clearProperty("partnerName");
+ }
+
+ @Test
+ public void getPropertyTest() {
+ System.setProperty("partnerName", "partnerName");
+
+ String partnerName = propertyUtil.getProperty("partnerName");
+ assertEquals("partnerName", partnerName);
+ }
+
+ @Test
+ public void getPropertyNullTest() {
+ String partnerName = propertyUtil.getProperty("partner");
+ assertEquals("UNKNOWN", partnerName);
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleJaxrsHeadersMapTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleJaxrsHeadersMapTest.java
new file mode 100644
index 0000000..a1c5f9b
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleJaxrsHeadersMapTest.java
@@ -0,0 +1,42 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import javax.ws.rs.core.MultivaluedHashMap;
+import javax.ws.rs.core.MultivaluedMap;
+import org.junit.Test;
+import org.onap.logging.filter.base.SimpleJaxrsHeadersMap;
+import org.onap.logging.filter.base.SimpleMap;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+
+public class SimpleJaxrsHeadersMapTest {
+
+ private String invocationId = "4d31fe02-4918-4975-942f-fe51a44e6a9b";
+
+ @Test
+ public void convertMultivaluedMapToHashMap() {
+ MultivaluedMap<String, String> headers = new MultivaluedHashMap<>();
+ headers.add(ONAPLogConstants.Headers.INVOCATION_ID, invocationId);
+ SimpleMap result = new SimpleJaxrsHeadersMap(headers);
+ assertEquals(invocationId, result.get(ONAPLogConstants.Headers.INVOCATION_ID));
+ }
+}
diff --git a/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleServletHeadersMapTest.java b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleServletHeadersMapTest.java
new file mode 100644
index 0000000..f1e6af8
--- /dev/null
+++ b/reference/logging-filter/logging-filter-base/src/test/java/org/onap/logging/filter/base/SimpleServletHeadersMapTest.java
@@ -0,0 +1,52 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - Logging
+ * ================================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.logging.filter.base;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+import javax.servlet.http.HttpServletRequest;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.SimpleServletHeadersMap;
+
+@RunWith(MockitoJUnitRunner.class)
+public class SimpleServletHeadersMapTest {
+
+ @Mock
+ private HttpServletRequest request;
+
+ @Spy
+ @InjectMocks
+ private SimpleServletHeadersMap map;
+
+ @Test
+ public void getTest() {
+ when(request.getHeader("testHeader")).thenReturn("testResult");
+ String result = map.get("testHeader");
+
+ assertEquals("testResult", result);
+ }
+
+}