From 096e977af0f6603359311031bab1a994e1beddd5 Mon Sep 17 00:00:00 2001 From: Emmett Cox Date: Mon, 3 Sep 2018 11:43:13 +0100 Subject: DB reworking for PublishServletTest Change-Id: Ie6dc40d2eb1533c1eef637ea7e2683556bb4f4a7 Signed-off-by: Emmett Cox Issue-ID: DMAAP-101 --- .../provisioning/PublishServletTest.java | 112 +++++++-------------- datarouter-prov/src/test/resources/create.sql | 12 +++ 2 files changed, 48 insertions(+), 76 deletions(-) diff --git a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/PublishServletTest.java b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/PublishServletTest.java index 92403ac8..cee09e5c 100755 --- a/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/PublishServletTest.java +++ b/datarouter-prov/src/test/java/org/onap/dmaap/datarouter/provisioning/PublishServletTest.java @@ -24,58 +24,66 @@ package org.onap.dmaap.datarouter.provisioning; import org.apache.commons.lang3.reflect.FieldUtils; -import org.json.JSONObject; +import org.junit.AfterClass; import org.junit.Before; +import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Matchers; import org.mockito.Mock; -import org.onap.dmaap.datarouter.authz.AuthorizationResponse; -import org.onap.dmaap.datarouter.authz.Authorizer; -import org.onap.dmaap.datarouter.provisioning.beans.*; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.SuppressStaticInitializationFor; +import org.onap.dmaap.datarouter.provisioning.utils.DB; import org.powermock.modules.junit4.PowerMockRunner; -import javax.servlet.ServletConfig; -import javax.servlet.ServletContext; -import javax.servlet.ServletOutputStream; +import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; +import javax.persistence.Persistence; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.util.*; + import static org.hamcrest.Matchers.notNullValue; import static org.mockito.Matchers.*; -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; /** * Created by ezcoxem on 21/08/2018. */ @RunWith(PowerMockRunner.class) -@SuppressStaticInitializationFor("org.onap.dmaap.datarouter.provisioning.beans.Feed") -public class PublishServletTest extends DrServletTestBase { +public class PublishServletTest { private PublishServlet publishServlet; - private static String START_JSON_STRING = "{"; - private static String END_JSON_STRING = "}"; - private static String START_JSON_ARRAY = "["; - private static String END_JSON_ARRAY = "]"; - private static String COMMA = ","; - @Mock private HttpServletRequest request; @Mock private HttpServletResponse response; + private static EntityManagerFactory emf; + private static EntityManager em; + private DB db; + + @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(); publishServlet = new PublishServlet(); + db = new DB(); } @Test @@ -84,12 +92,12 @@ public class PublishServletTest extends DrServletTestBase { FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[0], true); publishServlet.doDelete(request, response); verify(response).sendError(eq(HttpServletResponse.SC_SERVICE_UNAVAILABLE), argThat(notNullValue(String.class))); + FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[1], true); } @Test public void Given_Request_Is_HTTP_DELETE_And_Path_Is_Null_Then_Not_Found_Error_Is_Returned() throws Exception { - FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[1], true); publishServlet.doDelete(request, response); verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class))); } @@ -97,8 +105,8 @@ public class PublishServletTest extends DrServletTestBase { @Test public void Given_Request_Is_HTTP_DELETE_And_Ix_Is_Null_Then_Not_Found_Error_Is_Returned() throws Exception { - FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[1], true); - when(request.getPathInfo()).thenReturn("/123/"); + + when(request.getPathInfo()).thenReturn("/1/"); publishServlet.doDelete(request, response); verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class))); } @@ -106,10 +114,7 @@ public class PublishServletTest extends DrServletTestBase { @Test public void Given_Request_Is_HTTP_DELETE_And_Feed_Is_Not_Valid_Then_Not_Found_Error_Is_Returned() throws Exception { - FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[1], true); - when(request.getPathInfo()).thenReturn("/123/fileName.txt"); - PowerMockito.mockStatic(Feed.class); - PowerMockito.when(Feed.isFeedValid(anyInt())).thenReturn(false); + when(request.getPathInfo()).thenReturn("/122/fileName.txt"); publishServlet.doDelete(request, response); verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class))); } @@ -117,10 +122,7 @@ public class PublishServletTest extends DrServletTestBase { @Test public void Given_Request_Is_HTTP_DELETE_And_Feed_Is_Not_A_Number_Then_Not_Found_Error_Is_Returned() throws Exception { - FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[1], true); when(request.getPathInfo()).thenReturn("/abc/fileName.txt"); - PowerMockito.mockStatic(Feed.class); - PowerMockito.when(Feed.isFeedValid(anyInt())).thenReturn(false); publishServlet.doDelete(request, response); verify(response).sendError(eq(HttpServletResponse.SC_NOT_FOUND), argThat(notNullValue(String.class))); } @@ -129,8 +131,8 @@ public class PublishServletTest extends DrServletTestBase { @Test public void Given_Request_Is_HTTP_DELETE_And_All_Ok_Then_Request_succeeds() throws Exception { - setConditionsForPositiveSuccessFlow(); when(request.getHeader(anyString())).thenReturn("Basic dXNlcg=="); + setConditionsForPositiveSuccessFlow(); publishServlet.doDelete(request, response); verify(response).setStatus(eq(HttpServletResponse.SC_MOVED_PERMANENTLY)); } @@ -163,52 +165,10 @@ public class PublishServletTest extends DrServletTestBase { } private void setConditionsForPositiveSuccessFlow() throws Exception { - FieldUtils.writeDeclaredStaticField(BaseServlet.class, "nodes", new String[1], true); - FieldUtils.writeDeclaredField(publishServlet, "next_node", 0, true); FieldUtils.writeDeclaredField(publishServlet, "provstring", "", true); - FieldUtils.writeDeclaredField(publishServlet, "irt", new ArrayList(), true); - FieldUtils.writeDeclaredStaticField(NodeClass.class, "map", new HashMap(), true); - when(request.getPathInfo()).thenReturn("/123/fileName.txt"); - PowerMockito.mockStatic(Feed.class); - PowerMockito.when(Feed.isFeedValid(anyInt())).thenReturn(true); - setPokerToNotCreateTimersWhenDeleteFeedIsCalled(); + when(request.getPathInfo()).thenReturn("/1/fileName.txt"); } - private void setPokerToNotCreateTimersWhenDeleteFeedIsCalled() throws Exception { - Poker poker = mock(Poker.class); - FieldUtils.writeDeclaredStaticField(Poker.class, "poker", poker, true); - when(poker.getProvisioningString()).thenReturn(buildProvisioningString()); - } - - - private String buildProvisioningString(){ - StringBuffer provisionString = new StringBuffer(); - provisionString.append(START_JSON_STRING); - provisionString.append("'ingress':"); - provisionString.append(START_JSON_ARRAY); - provisionString.append(buildIngressRoute()); - provisionString.append(END_JSON_ARRAY); - provisionString.append(END_JSON_STRING); - return provisionString.toString(); - } - - private StringBuffer buildIngressRoute(){ - StringBuffer provisionString = new StringBuffer(); - provisionString.append(START_JSON_STRING); - provisionString.append("'seq':1"); - provisionString.append(COMMA); - provisionString.append("'feedid':123"); - provisionString.append(COMMA); - provisionString.append("'user':'user'"); - provisionString.append(COMMA); - provisionString.append("'subnet':'127.0.0.1'"); - provisionString.append(COMMA); - provisionString.append("'nodelist':-1"); - provisionString.append(COMMA); - provisionString.append("'node':['1','2']"); - provisionString.append(END_JSON_STRING); - return provisionString; - } } diff --git a/datarouter-prov/src/test/resources/create.sql b/datarouter-prov/src/test/resources/create.sql index 90484ab0..d2df2496 100755 --- a/datarouter-prov/src/test/resources/create.sql +++ b/datarouter-prov/src/test/resources/create.sql @@ -147,3 +147,15 @@ VALUES (1, 'Basic dXNlcjE6cGFzc3dvcmQx', 'Group1', 'First Group for testing', 'C INSERT INTO SUBSCRIPTIONS(SUBID, FEEDID, DELIVERY_URL, DELIVERY_USER, DELIVERY_PASSWORD, SUBSCRIBER, SELF_LINK, LOG_LINK) VALUES (23, 1, 'http://delivery_url', 'user1', 'somepassword', 'sub123', 'selflink', 'loglink'); + +INSERT INTO FEEDS(FEEDID, GROUPID, NAME, VERSION, DESCRIPTION, BUSINESS_DESCRIPTION, AUTH_CLASS, PUBLISHER, SELF_LINK, PUBLISH_LINK, SUBSCRIBE_LINK, LOG_LINK) +VALUES (1, 1,'Feed1','v0.1', 'First Feed for testing', 'First Feed for testing', 'auth_class', 'pub','self_link','publish_link','subscribe_link','log_link'); + +insert into INGRESS_ROUTES(SEQUENCE, FEEDID , USERID, SUBNET, NODESET) +VALUES (1,1,'user',null,2); + +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 -- cgit 1.2.3-korg