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 --- .../controllers/OperationsApiControllerTest.java | 95 ++++++++++++++++++++++ .../src/test/resources/application.properties | 3 +- .../src/test/resources/svclogic.properties | 2 +- 3 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 ms/generic-resource-api/src/test/java/org/onap/sdnc/apps/ms/gra/controllers/OperationsApiControllerTest.java (limited to 'ms/generic-resource-api/src/test') 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