Add RequestId and InvocationId to DR
[dmaap/datarouter.git] / datarouter-node / src / test / java / org / onap / dmaap / datarouter / node / NodeUtilsTest.java
index 7dde043..27fcd1c 100644 (file)
@@ -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"));
+    }
 }