aboutsummaryrefslogtreecommitdiffstats
path: root/datarouter-node/src/test/java/org
diff options
context:
space:
mode:
authorEmmettCox <emmett.cox@est.tech>2019-01-14 17:19:45 +0000
committerezcoxem <emmett.cox@est.tech>2019-01-31 16:15:21 +0000
commit14b8d9552808063686e0c22760cec6e35b960b59 (patch)
tree286336813c8da64ca8a8b5d27f21f2bc83f26e0f /datarouter-node/src/test/java/org
parent72cd9f3033731242779e708a05f9519f36cf8d43 (diff)
Add RequestId and InvocationId to DR
Change-Id: I42575123396ce4b07c824846a8b2b3ca49dfbd85 Issue-ID: DMAAP-941 Signed-off-by: EmmettCox <emmett.cox@est.tech>
Diffstat (limited to 'datarouter-node/src/test/java/org')
-rw-r--r--datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeServletTest.java43
-rw-r--r--datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java48
2 files changed, 88 insertions, 3 deletions
diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeServletTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeServletTest.java
index fbdd9230..4f31e922 100644
--- a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeServletTest.java
+++ b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeServletTest.java
@@ -22,22 +22,25 @@
******************************************************************************/
package org.onap.dmaap.datarouter.node;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.read.ListAppender;
+import ch.qos.logback.classic.Logger;
import org.apache.commons.lang3.reflect.FieldUtils;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.*;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
import org.powermock.modules.junit4.PowerMockRunner;
+import org.slf4j.LoggerFactory;
-import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import static org.hamcrest.Matchers.notNullValue;
+import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.*;
@@ -53,8 +56,11 @@ public class NodeServletTest {
@Mock
private HttpServletResponse response;
+ ListAppender<ILoggingEvent> listAppender;
+
@Before
public void setUp() throws Exception{
+ listAppender = setTestLogger();
nodeServlet = new NodeServlet();
setBehalfHeader("Stub_Value");
when(request.getPathInfo()).thenReturn("2");
@@ -70,6 +76,7 @@ public class NodeServletTest {
setNodeConfigManagerIsConfiguredToReturnFalse();
nodeServlet.doGet(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_SERVICE_UNAVAILABLE));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -77,6 +84,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn("/internal/fetchProv");
nodeServlet.doGet(request, response);
verify(response).setStatus(eq(HttpServletResponse.SC_NO_CONTENT));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -84,6 +92,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn("/internal/resetSubscription/1");
nodeServlet.doGet(request, response);
verify(response).setStatus(eq(HttpServletResponse.SC_NO_CONTENT));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -91,6 +100,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn("/incorrect");
nodeServlet.doGet(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -98,6 +108,7 @@ public class NodeServletTest {
setNodeConfigManagerIsConfiguredToReturnFalse();
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_SERVICE_UNAVAILABLE));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -105,6 +116,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn("/incorrect/");
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -112,6 +124,7 @@ public class NodeServletTest {
when(request.isSecure()).thenReturn(false);
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -119,6 +132,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn(null);
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -126,6 +140,7 @@ public class NodeServletTest {
when(request.getHeader("Authorization")).thenReturn(null);
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -133,6 +148,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn("/publish/");
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -141,6 +157,7 @@ public class NodeServletTest {
setNodeConfigManagerIsPublishPermittedToReturnAReason();
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -149,6 +166,7 @@ public class NodeServletTest {
setNodeConfigManagerIsPublishPermittedToReturnAReason();
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_FORBIDDEN));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -156,6 +174,7 @@ public class NodeServletTest {
when(request.getPathInfo()).thenReturn("/internal/publish/1/");
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -164,6 +183,7 @@ public class NodeServletTest {
setNodeConfigManagerToAllowRedirectOnIngressNode();
nodeServlet.doPut(request, response);
verify(response).sendRedirect(anyString());
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -172,6 +192,7 @@ public class NodeServletTest {
setHeadersForValidRequest(true);
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_BAD_REQUEST), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -180,6 +201,7 @@ public class NodeServletTest {
setHeadersForValidRequest(false);
nodeServlet.doPut(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_BAD_REQUEST), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@Test
@@ -188,6 +210,7 @@ public class NodeServletTest {
setHeadersForValidRequest(false);
nodeServlet.doDelete(request, response);
verify(response).sendError(eq(HttpServletResponse.SC_BAD_REQUEST), argThat(notNullValue(String.class)));
+ verifyEnteringExitCalled(listAppender);
}
@@ -195,6 +218,20 @@ public class NodeServletTest {
when(request.getHeader("X-ATT-DR-ON-BEHALF-OF")).thenReturn(headerValue);
}
+ private ListAppender<ILoggingEvent> setTestLogger() {
+ Logger Logger = (Logger) LoggerFactory.getLogger(NodeServlet.class);
+ ListAppender<ILoggingEvent> listAppender = new ListAppender<>();
+ listAppender.start();
+ Logger.addAppender(listAppender);
+ return listAppender;
+ }
+
+ private void verifyEnteringExitCalled(ListAppender<ILoggingEvent> listAppender) {
+ assertEquals("EELF0004I Entering data router node component with RequestId and InvocationId", listAppender.list.get(0).getMessage());
+ assertEquals("EELF0005I Exiting data router node component with RequestId and InvocationId", listAppender.list.get(2).getMessage());
+ assertEquals(3, listAppender.list.size());
+ }
+
private void setUpConfig() throws IllegalAccessException{
NodeConfigManager config = mock(NodeConfigManager.class);
PowerMockito.mockStatic(NodeConfigManager.class);
diff --git a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java
index 7dde043d..27fcd1c4 100644
--- a/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java
+++ b/datarouter-node/src/test/java/org/onap/dmaap/datarouter/node/NodeUtilsTest.java
@@ -25,13 +25,31 @@ package org.onap.dmaap.datarouter.node;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor;
import org.powermock.modules.junit4.PowerMockRunner;
+import org.slf4j.MDC;
+
+import javax.servlet.http.HttpServletRequest;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.util.UUID;
+
+import static com.att.eelf.configuration.Configuration.MDC_SERVER_FQDN;
+import static com.att.eelf.configuration.Configuration.MDC_SERVER_IP_ADDRESS;
+import static org.mockito.Mockito.when;
+import static org.powermock.api.mockito.PowerMockito.mockStatic;
@RunWith(PowerMockRunner.class)
@SuppressStaticInitializationFor("org.onap.dmaap.datarouter.node.NodeUtils")
+@PrepareForTest({ UUID.class, InetAddress.class })
public class NodeUtilsTest {
+ @Mock
+ private HttpServletRequest request;
+
@Test
public void Given_Uri_With_Params_Then_Get_Feed_And_File_Id_Returns_Correct_Values() {
String uri = "prov.datarouternew.com:8443/feed/12/fileName";
@@ -58,4 +76,34 @@ public class NodeUtilsTest {
String s = NodeUtils.unloge("\\esearch\\ppub\\p12\\n");
Assert.assertEquals("\\search|pub|12\n", s);
}
+
+ @Test
+ public void Given_Request_Has_RequestId_And_InvocationId_Headers_Set_MDC_Values() {
+ when(request.getHeader("X-ONAP-RequestID")).thenReturn("123");
+ when(request.getHeader("X-InvocationID")).thenReturn("456");
+ NodeUtils.setRequestIdAndInvocationId(request);
+ Assert.assertEquals("123", MDC.get("RequestId"));
+ Assert.assertEquals("456", MDC.get("InvocationId"));
+ }
+
+ @Test
+ public void Given_setIpAndFqdnForEelf_Called_Set_MDC_Values() throws IOException {
+ mockStatic(InetAddress.class);
+ when(InetAddress.getLocalHost().getHostName()).thenReturn("testHostName");
+ when(InetAddress.getLocalHost().getHostAddress()).thenReturn("testHostAddress");
+ NodeUtils.setIpAndFqdnForEelf("doGet");
+ Assert.assertEquals("testHostName", MDC.get(MDC_SERVER_FQDN));
+ Assert.assertEquals("testHostAddress", MDC.get(MDC_SERVER_IP_ADDRESS));
+ }
+
+ @Test
+ public void Given_Request_Has_Empty_RequestId_And_InvocationId_Headers_Generate_MDC_Values() {
+ when(request.getHeader("X-ONAP-RequestID")).thenReturn("");
+ when(request.getHeader("X-InvocationID")).thenReturn("");
+ mockStatic(UUID.class);
+ when(UUID.randomUUID().toString()).thenReturn("123", "456");
+ NodeUtils.setRequestIdAndInvocationId(request);
+ Assert.assertEquals("123", MDC.get("RequestId"));
+ Assert.assertEquals("456", MDC.get("InvocationId"));
+ }
}