[DMaaP DR] JKD 11 migration
[dmaap/datarouter.git] / datarouter-prov / src / test / java / org / onap / dmaap / datarouter / provisioning / InternalServletTest.java
index 591dcc3..1601e63 100644 (file)
  ******************************************************************************/
 package org.onap.dmaap.datarouter.provisioning;
 
-import static org.hamcrest.Matchers.notNullValue;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.argThat;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.onap.dmaap.datarouter.provisioning.BaseServlet.BEHALF_HEADER;
 
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.read.ListAppender;
 import java.io.File;
 import java.net.InetAddress;
 import javax.persistence.EntityManager;
@@ -40,25 +40,28 @@ import javax.servlet.ServletInputStream;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-
 import org.apache.commons.lang3.reflect.FieldUtils;
+import org.junit.AfterClass;
+import org.junit.Assert;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.junit.BeforeClass;
-import org.junit.AfterClass;
 import org.mockito.Mock;
-
 import org.onap.dmaap.datarouter.provisioning.beans.Deleteable;
 import org.onap.dmaap.datarouter.provisioning.beans.Insertable;
 import org.onap.dmaap.datarouter.provisioning.beans.LogRecord;
+import org.onap.dmaap.datarouter.provisioning.beans.Parameters;
 import org.onap.dmaap.datarouter.provisioning.beans.Updateable;
+import org.onap.dmaap.datarouter.provisioning.utils.Poker;
 import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PowerMockIgnore;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 
 @RunWith(PowerMockRunner.class)
 @PrepareForTest(LogRecord.class)
+@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "org.w3c.*"})
 public class InternalServletTest extends DrServletTestBase {
   private static EntityManagerFactory emf;
   private static EntityManager em;
@@ -70,6 +73,8 @@ public class InternalServletTest extends DrServletTestBase {
   @Mock
   private HttpServletResponse response;
 
+  ListAppender<ILoggingEvent> listAppender;
+
   @BeforeClass
   public static void init() {
     emf = Persistence.createEntityManagerFactory("dr-unit-tests");
@@ -88,8 +93,9 @@ public class InternalServletTest extends DrServletTestBase {
 
   @Before
   public void setUp() throws Exception {
-    internalServlet = new InternalServlet();
-    setUpValidAuthorisedRequest();
+      listAppender = setTestLogger(InternalServlet.class);
+      internalServlet = new InternalServlet();
+      setUpValidAuthorisedRequest();
   }
 
   @Test
@@ -98,7 +104,8 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.getRemoteAddr()).thenReturn("127.100.0.3");
     internalServlet.doGet(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), anyString());
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -127,6 +134,7 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.isSecure()).thenReturn(false);
     internalServlet.doGet(request, response);
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+      verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -155,14 +163,16 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.getPathInfo()).thenReturn("/logs/TestFile");
     internalServlet.doGet(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_NO_CONTENT), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_NO_CONTENT), anyString());
   }
 
   @Test
   public void Given_Request_Is_HTTP_GET_Starts_With_Logs_In_Endpoint_And_File_Exists_Then_Request_Returns_Ok()
       throws Exception {
     when(request.getPathInfo()).thenReturn("/logs/testFile.txt");
+    File testDir = new File("unit-test-logs");
     File testFile = new File("unit-test-logs/testFile.txt");
+    testDir.mkdirs();
     testFile.createNewFile();
     testFile.deleteOnExit();
     ServletOutputStream outStream = mock(ServletOutputStream.class);
@@ -196,7 +206,7 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.getPathInfo()).thenReturn("/incorrect/");
     internalServlet.doGet(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), anyString());
   }
 
   @Test
@@ -206,7 +216,8 @@ public class InternalServletTest extends DrServletTestBase {
     FieldUtils.writeDeclaredStaticField(BaseServlet.class, "isAddressAuthEnabled", "true", true);
     internalServlet.doPut(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), anyString());
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -218,6 +229,7 @@ public class InternalServletTest extends DrServletTestBase {
     setPokerToNotCreateTimers();
     internalServlet.doPut(request, response);
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -229,7 +241,7 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet = internalServerFailure();
     internalServlet.doPut(request, response);
     verify(response).sendError(eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR),
-        argThat(notNullValue(String.class)));
+        anyString());
   }
 
   @Test
@@ -238,7 +250,7 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.getPathInfo()).thenReturn("/incorrect");
     internalServlet.doPut(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), anyString());
   }
 
   @Test
@@ -248,7 +260,8 @@ public class InternalServletTest extends DrServletTestBase {
     FieldUtils.writeDeclaredStaticField(BaseServlet.class, "isAddressAuthEnabled", "true", true);
     internalServlet.doDelete(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), anyString());
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -261,6 +274,17 @@ public class InternalServletTest extends DrServletTestBase {
     setPokerToNotCreateTimers();
     internalServlet.doDelete(request, response);
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+    verifyEnteringExitCalled(listAppender);
+  }
+
+  @Test
+  public void Given_Request_Is_HTTP_DELETE_With_LogRollInterval_Api_In_Endpoint_Request_Succeeds() {
+    when(request.getPathInfo()).thenReturn("/api/LOGROLL_INTERVAL");
+    internalServlet.doDelete(request, response);
+    verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+    Parameters p1 = Parameters.getParameter("NODES");
+    Assert.assertEquals("{\"keyname\":\"NODES\",\"value\":\"dmaap-dr-node\"}", p1.asJSONObject().toString());
+    Assert.assertEquals("PARAM: keyname=NODES, value=dmaap-dr-node", p1.toString());
   }
 
   @Test
@@ -272,7 +296,7 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet = internalServerFailure();
     internalServlet.doDelete(request, response);
     verify(response).sendError(eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR),
-        argThat(notNullValue(String.class)));
+        anyString());
   }
 
   @Test
@@ -281,7 +305,7 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.getPathInfo()).thenReturn("/incorrect");
     internalServlet.doDelete(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), anyString());
   }
 
   @Test
@@ -290,7 +314,8 @@ public class InternalServletTest extends DrServletTestBase {
     when(request.getRemoteAddr()).thenReturn("127.100.0.3");
     internalServlet.doPost(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_FORBIDDEN), anyString());
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -302,6 +327,7 @@ public class InternalServletTest extends DrServletTestBase {
     setPokerToNotCreateTimers();
     internalServlet.doPost(request, response);
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -313,12 +339,11 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet = internalServerFailure();
     internalServlet.doPost(request, response);
     verify(response).sendError(eq(HttpServletResponse.SC_INTERNAL_SERVER_ERROR),
-        argThat(notNullValue(String.class)));
+        anyString());
   }
 
   @Test
-  public void Given_Request_Is_HTTP_POST_To_Logs_And_Content_Header_Is_Not_Supported_Type_Then_Unsupported_Media_Type_Response_Is_Generated()
-      throws Exception {
+  public void Given_Request_Is_HTTP_POST_To_Logs_And_Content_Header_Is_Not_Supported_Type_Then_Unsupported_Media_Type_Response_Is_Generated() {
     when(request.getHeader("Content-Type")).thenReturn("stub_contentType");
     when(request.getPathInfo()).thenReturn("/logs/");
     internalServlet.doPost(request, response);
@@ -326,8 +351,7 @@ public class InternalServletTest extends DrServletTestBase {
   }
 
   @Test
-  public void Given_Request_Is_HTTP_POST_To_Logs_And_Content_Encoding_Is_Not_Supported_Type_Then_Unsupported_Media_Type_Response_Is_Generated()
-      throws Exception {
+  public void Given_Request_Is_HTTP_POST_To_Logs_And_Content_Encoding_Is_Not_Supported_Type_Then_Unsupported_Media_Type_Response_Is_Generated() {
     when(request.getHeader("Content-Encoding")).thenReturn("not-supported");
     when(request.getPathInfo()).thenReturn("/logs/");
     internalServlet.doPost(request, response);
@@ -349,8 +373,7 @@ public class InternalServletTest extends DrServletTestBase {
   }
 
   @Test
-  public void Given_Request_Is_HTTP_POST_To_Drlogs_And_Then_Unsupported_Media_Type_Response_Is_Generated()
-      throws Exception {
+  public void Given_Request_Is_HTTP_POST_To_Drlogs_And_Then_Unsupported_Media_Type_Response_Is_Generated() {
     when(request.getHeader("Content-Type")).thenReturn("stub_contentType");
     when(request.getPathInfo()).thenReturn("/drlogs/");
     internalServlet.doPost(request, response);
@@ -368,13 +391,20 @@ public class InternalServletTest extends DrServletTestBase {
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
   }
 
+  @Test
+  public void Given_Request_Is_HTTP_POST_To_Api_And_Request_Succeeds() {
+    when(request.getPathInfo()).thenReturn("/api/NEW_PARAM?val=blah");
+    internalServlet.doPost(request, response);
+    verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+  }
+
   @Test
   public void Given_Request_Is_HTTP_POST_With_Incorrect_Endpoint_Then_Not_Found_Error_Is_Generated()
       throws Exception {
     when(request.getPathInfo()).thenReturn("/incorrect/");
     internalServlet.doPost(request, response);
     verify(response)
-        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class)));
+        .sendError(eq(HttpServletResponse.SC_NOT_FOUND), anyString());
   }
 
   private void setUpValidAuthorisedRequest() throws Exception {