Refactor Prov DB handling
[dmaap/datarouter.git] / datarouter-prov / src / test / java / org / onap / dmaap / datarouter / provisioning / InternalServletTest.java
index 591dcc3..5153166 100644 (file)
@@ -41,7 +41,10 @@ import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.read.ListAppender;
 import org.apache.commons.lang3.reflect.FieldUtils;
+import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -52,7 +55,9 @@ 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.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
@@ -70,6 +75,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 +95,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
@@ -99,6 +107,7 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet.doGet(request, response);
     verify(response)
         .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -127,6 +136,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
@@ -162,7 +172,9 @@ public class InternalServletTest extends DrServletTestBase {
   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);
@@ -207,6 +219,7 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet.doPut(request, response);
     verify(response)
         .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -218,6 +231,7 @@ public class InternalServletTest extends DrServletTestBase {
     setPokerToNotCreateTimers();
     internalServlet.doPut(request, response);
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -249,6 +263,7 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet.doDelete(request, response);
     verify(response)
         .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -261,6 +276,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
@@ -291,6 +317,7 @@ public class InternalServletTest extends DrServletTestBase {
     internalServlet.doPost(request, response);
     verify(response)
         .sendError(eq(HttpServletResponse.SC_FORBIDDEN), argThat(notNullValue(String.class)));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -302,6 +329,7 @@ public class InternalServletTest extends DrServletTestBase {
     setPokerToNotCreateTimers();
     internalServlet.doPost(request, response);
     verify(response).setStatus(eq(HttpServletResponse.SC_OK));
+    verifyEnteringExitCalled(listAppender);
   }
 
   @Test
@@ -317,8 +345,7 @@ public class InternalServletTest extends DrServletTestBase {
   }
 
   @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 +353,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 +375,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,6 +393,13 @@ 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 {