From 1d9710279b4d9bffacc0f8e360922119bb12e347 Mon Sep 17 00:00:00 2001 From: Emmett Cox Date: Thu, 6 Sep 2018 13:58:27 +0100 Subject: unit test for StastisticsServlet with db Change-Id: I32ed948f2485d13605d58fadef72903b05ca57f5 Signed-off-by: Emmett Cox Issue-ID: DMAAP-101 --- .../provisioning/StatisticsServletTest.java | 67 ++++++++++++++-------- datarouter-prov/src/test/resources/create.sql | 11 +++- 2 files changed, 52 insertions(+), 26 deletions(-) (limited to 'datarouter-prov/src/test') diff --git a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/StatisticsServletTest.java b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/StatisticsServletTest.java index 0babdc47..64d13e94 100755 --- a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/StatisticsServletTest.java +++ b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/StatisticsServletTest.java @@ -23,32 +23,35 @@ package org.onap.dmaap.datarouter.provisioning; import static org.hamcrest.Matchers.notNullValue; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.anyObject; -import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.argThat; import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.doCallRealMethod; -import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; + +import org.junit.AfterClass; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; +import org.onap.dmaap.datarouter.provisioning.utils.DB; import org.powermock.modules.junit4.PowerMockRunner; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; + @RunWith(PowerMockRunner.class) -@PrepareForTest(StatisticsServlet.class) -public class StatisticsServletTest extends DrServletTestBase { +public class StatisticsServletTest { private StatisticsServlet statisticsServlet; @@ -58,10 +61,31 @@ public class StatisticsServletTest extends DrServletTestBase { @Mock private HttpServletResponse response; + private DB db; + + private static EntityManagerFactory emf; + private static EntityManager em; + + @BeforeClass + public static void init() { + emf = Persistence.createEntityManagerFactory("dr-unit-tests"); + em = emf.createEntityManager(); + System.setProperty( + "org.onap.dmaap.datarouter.provserver.properties", + "src/test/resources/h2Database.properties"); + } + + @AfterClass + public static void tearDownClass() { + em.clear(); + em.close(); + emf.close(); + } + @Before public void setUp() throws Exception { - super.setUp(); statisticsServlet = new StatisticsServlet(); + db = new DB(); buildRequestParameters(); } @@ -101,15 +125,9 @@ public class StatisticsServletTest extends DrServletTestBase { @Test public void Given_Request_Is_HTTP_GET_With_GroupId_But_No_FeedId_Parameters_Then_Request_Succeeds() throws Exception { + addAliasForSubstringIndex(); ServletOutputStream outStream = mock(ServletOutputStream.class); when(response.getOutputStream()).thenReturn(outStream); - statisticsServlet = PowerMockito.mock(StatisticsServlet.class); - PowerMockito.doReturn(null).when(statisticsServlet, "getRecordsForSQL", anyString()); - PowerMockito.doCallRealMethod().when(statisticsServlet, "buildMapFromRequest", anyObject()); - PowerMockito.doCallRealMethod().when(statisticsServlet, "getTimeFromParam", anyString()); - doNothing().when(statisticsServlet).rsToCSV(anyObject(), anyObject()); - doCallRealMethod().when(statisticsServlet).doGet(request, response); - when(statisticsServlet.getFeedIdsByGroupId(anyInt())).thenReturn(new StringBuffer("1")); statisticsServlet.doGet(request, response); verify(response).setStatus(eq(HttpServletResponse.SC_OK)); } @@ -117,18 +135,11 @@ public class StatisticsServletTest extends DrServletTestBase { @Test public void Given_Request_Is_HTTP_GET_With_GroupId_And_FeedId_Parameters_Then_Request_Succeeds() throws Exception { + addAliasForSubstringIndex(); when(request.getParameter("feedid")).thenReturn("1"); when(request.getParameter("statusCode")).thenReturn("500"); ServletOutputStream outStream = mock(ServletOutputStream.class); when(response.getOutputStream()).thenReturn(outStream); - statisticsServlet = PowerMockito.mock(StatisticsServlet.class); - PowerMockito.doReturn(null).when(statisticsServlet, "getRecordsForSQL", anyString()); - PowerMockito.doCallRealMethod().when(statisticsServlet, "buildMapFromRequest", anyObject()); - PowerMockito.doCallRealMethod().when(statisticsServlet, "getTimeFromParam", anyString()); - doNothing().when(statisticsServlet).rsToCSV(anyObject(), anyObject()); - doCallRealMethod().when(statisticsServlet).doGet(request, response); - doCallRealMethod().when(statisticsServlet).queryGeneretor(anyObject()); - when(statisticsServlet.getFeedIdsByGroupId(anyInt())).thenReturn(new StringBuffer("1")); statisticsServlet.doGet(request, response); verify(response).setStatus(eq(HttpServletResponse.SC_OK)); } @@ -147,4 +158,10 @@ public class StatisticsServletTest extends DrServletTestBase { when(request.getParameter("groupid")).thenReturn("1"); when(request.getParameter("subid")).thenReturn("1"); } + private void addAliasForSubstringIndex() throws SQLException { + String sql = "CREATE ALIAS IF NOT EXISTS `SUBSTRING_INDEX`AS $$ String Function(String one, String two, String three){ return \"url\"; }$$;"; + Connection conn = db.getConnection(); + PreparedStatement pst = conn.prepareStatement(sql); + pst.execute(); + } } diff --git a/datarouter-prov/src/test/resources/create.sql b/datarouter-prov/src/test/resources/create.sql index c72c42a1..fe0a0f88 100755 --- a/datarouter-prov/src/test/resources/create.sql +++ b/datarouter-prov/src/test/resources/create.sql @@ -161,4 +161,13 @@ insert into INGRESS_ROUTES(SEQUENCE, FEEDID , USERID, SUBNET, NODESET) VALUES (2,1,'user',null,2); insert into NODESETS(SETID, NODEID) -VALUES (2,0); \ No newline at end of file +VALUES (2,0); + +insert into LOG_RECORDS(RECORD_ID,TYPE,EVENT_TIME,PUBLISH_ID,FEEDID,REQURI,METHOD,CONTENT_TYPE,CONTENT_LENGTH,FEED_FILEID,REMOTE_ADDR,USER,STATUS,DELIVERY_SUBID,DELIVERY_FILEID,RESULT,ATTEMPTS,REASON) +VALUES(1,'pub',2536159564422,'ID',1,'URL','GET','application/vnd.att-dr.log-list; version=1.0',100,1,'172.0.0.8','user',204,1,1,204,0,'other'); + +CREATE ALIAS IF NOT EXISTS `SUBSTRING_INDEX` AS $$ + String Function(String one, String two, String three){ + return "url"; + } +$$; \ No newline at end of file -- cgit 1.2.3-korg