From 7c53d0d44b7f58bcfc5a567878887dcfefd95b01 Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Mon, 6 Jul 2020 12:14:00 -0400 Subject: Add junit testing for preload rpcs Add jUnit test cases for preload RPCs Change-Id: I8e6519e57c2eb468b1ee6ad781555951d21203a9 Issue-ID: SDNC-1209 Issue-ID: SDNC-1210 Signed-off-by: Dan Timoney --- ms/generic-resource-api/pom.xml | 84 +++++++++++++++---- .../controllers/OperationsApiControllerTest.java | 95 ++++++++++++++++++++++ .../src/test/resources/application.properties | 3 +- .../src/test/resources/svclogic.properties | 2 +- 4 files changed, 164 insertions(+), 20 deletions(-) create mode 100644 ms/generic-resource-api/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/OperationsApiControllerTest.java (limited to 'ms') diff --git a/ms/generic-resource-api/pom.xml b/ms/generic-resource-api/pom.xml index dbbfad0..2fb6fa5 100644 --- a/ms/generic-resource-api/pom.xml +++ b/ms/generic-resource-api/pom.xml @@ -179,6 +179,53 @@ + + + unpack dgs + generate-sources + + unpack + + + ${basedir}/target/docker-stage/opt/onap/sdnc + + + org.onap.sdnc.oam + platform-logic-installer + ${sdnc.oam.version} + zip + + + + + + + + + + maven-resources-plugin + 2.6 + + + copy-dockerfile + + copy-resources + + generate-sources + + ${basedir}/src/main/resources + + + ${basedir}/target/docker-stage/opt/onap/sdnc/svclogic/graphs/generic-resource-api + + *.xml + graph.versions + + false + + + + @@ -221,6 +268,25 @@ + + org.codehaus.mojo + build-helper-maven-plugin + 3.0.0 + + + addSource + generate-sources + + add-source + + + + ${project.basedir}/target/generated-sources/src/main/java + + + + + @@ -252,24 +318,6 @@ false - - unpack dgs - generate-sources - - unpack - - - ${basedir}/target/docker-stage/opt/onap/sdnc - - - org.onap.sdnc.oam - platform-logic-installer - ${sdnc.oam.version} - zip - - - - diff --git a/ms/generic-resource-api/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/OperationsApiControllerTest.java b/ms/generic-resource-api/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/OperationsApiControllerTest.java new file mode 100644 index 0000000..a869249 --- /dev/null +++ b/ms/generic-resource-api/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/OperationsApiControllerTest.java @@ -0,0 +1,95 @@ +package org.onap.sdnc.apps.ms.gra.controllers; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.sdnc.apps.ms.gra.core.GenericResourceMsApp; +import org.onap.sdnc.apps.ms.gra.data.ConfigPreloadDataRepository; +import org.onap.sdnc.apps.ms.gra.data.ConfigServicesRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.transaction.annotation.Transactional; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +import static org.junit.Assert.*; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes={GenericResourceMsApp.class}) +@AutoConfigureMockMvc +@Transactional +public class OperationsApiControllerTest { + + private final static String PRELOAD_NETWORK_URL = "/operations/GENERIC-RESOURCE-API:preload-network-topology-operation/"; + private final static String PRELOAD_VFMODULE_URL = "/operations/GENERIC-RESOURCE-API:preload-vf-module-topology-operation/"; + + + @Autowired + private MockMvc mvc; + + @Autowired + ConfigPreloadDataRepository configPreloadDataRepository; + + @BeforeClass + public static void setUp() throws Exception { + System.out.println("OperationsApiControllerTest: Setting serviceLogicProperties and serviceLogicDirectory"); + System.setProperty("serviceLogicProperties", "src/test/resources/svclogic.properties"); + System.setProperty("serviceLogicDirectory", "target/docker-stage/opt/onap/sdnc/svclogic/graphs/generic-resource-api"); + } + + + @Test + public void operationsGENERICRESOURCEAPIpreloadNetworkTopologyOperationPost() throws Exception { + + // Remove any existing preload data + configPreloadDataRepository.deleteAll(); + + // Add invalid content + String content = readFileContent("src/test/resources/preload1-rpc-vfmodule.json"); + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(PRELOAD_NETWORK_URL).contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(403, mvcResult.getResponse().getStatus()); + assertEquals(0, configPreloadDataRepository.count()); + + // Add valid content + content = readFileContent("src/test/resources/preload1-rpc-network.json"); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(PRELOAD_NETWORK_URL).contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + assertEquals(1, configPreloadDataRepository.count()); + + } + + @Test + public void operationsGENERICRESOURCEAPIpreloadVfModuleTopologyOperationPost() throws Exception { + // Remove any existing preload data + configPreloadDataRepository.deleteAll(); + + // Add invalid content + String content = readFileContent("src/test/resources/preload1-rpc-network.json"); + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(PRELOAD_VFMODULE_URL).contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(403, mvcResult.getResponse().getStatus()); + assertEquals(0, configPreloadDataRepository.count()); + + // Add valid content + content = readFileContent("src/test/resources/preload1-rpc-vfmodule.json"); + mvcResult = mvc.perform(MockMvcRequestBuilders.post(PRELOAD_VFMODULE_URL).contentType(MediaType.APPLICATION_JSON).content(content)) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + assertEquals(1, configPreloadDataRepository.count()); + } + + private String readFileContent(String path) throws IOException { + String content = new String(Files.readAllBytes(Paths.get(path))); + return content; + } +} \ No newline at end of file diff --git a/ms/generic-resource-api/src/test/resources/application.properties b/ms/generic-resource-api/src/test/resources/application.properties index 04538f1..9f7990c 100644 --- a/ms/generic-resource-api/src/test/resources/application.properties +++ b/ms/generic-resource-api/src/test/resources/application.properties @@ -17,4 +17,5 @@ spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.Im # spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl spring.jpa.database=derby -serviceLogicProperties=src/test/resources/svclogic.properties \ No newline at end of file +serviceLogicProperties=src/test/resources/svclogic.properties +serviceLogicDirectory=target/docker-stage/opt/onap/sdnc/svclogic/graphs/generic-resource-api \ No newline at end of file diff --git a/ms/generic-resource-api/src/test/resources/svclogic.properties b/ms/generic-resource-api/src/test/resources/svclogic.properties index b57c43d..95f4c8a 100644 --- a/ms/generic-resource-api/src/test/resources/svclogic.properties +++ b/ms/generic-resource-api/src/test/resources/svclogic.properties @@ -26,4 +26,4 @@ org.onap.ccsdk.sli.jdbc.database = sdnctl org.onap.ccsdk.sli.jdbc.user = sdnc org.onap.ccsdk.sli.jdbc.password = abc123 -serviceLogicDirectory=src/test/resources +serviceLogicDirectory=target/docker-stage/opt/onap/sdnc/svclogic/graphs/generic-resource-api -- cgit 1.2.3-korg