From 31172d602ff8bce4b4680c3a2da58b6db2e8d9f0 Mon Sep 17 00:00:00 2001 From: Dan Timoney Date: Fri, 5 Jun 2020 15:46:39 -0400 Subject: Refactor sliapi springboot Moved sli-api springboot microservice from ccsdk/sli/core to ccsdk/apps Change-Id: Ibecae568cf90b71575403052111e7be9ff543376 Issue-ID: CCSDK-2096 Signed-off-by: Dan Timoney --- .../org/onap/ccsdk/apps/ms/sliboot/AppTest.java | 39 +++++ .../apps/ms/sliboot/RestconfApiControllerTest.java | 172 +++++++++++++++++++++ 2 files changed, 211 insertions(+) create mode 100644 ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java create mode 100644 ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/RestconfApiControllerTest.java (limited to 'ms/sliboot/src/test/java') diff --git a/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java new file mode 100644 index 00000000..abca6d94 --- /dev/null +++ b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/AppTest.java @@ -0,0 +1,39 @@ +package org.onap.ccsdk.apps.ms.sliboot; + +import org.apache.shiro.realm.Realm; +import org.apache.shiro.realm.text.PropertiesRealm; +import org.apache.shiro.spring.web.config.ShiroFilterChainDefinition; +import org.junit.Before; +import org.junit.Test; + +import java.util.Map; + +import static org.junit.Assert.*; + +public class AppTest { + + App app; + + @Before + public void setUp() throws Exception { + app = new App(); + System.setProperty("serviceLogicProperties", "src/test/resources/svclogic.properties"); + } + + @Test + public void realm() { + Realm realm = app.realm(); + assertTrue(realm instanceof PropertiesRealm); + + + } + + @Test + public void shiroFilterChainDefinition() { + ShiroFilterChainDefinition chainDefinition = app.shiroFilterChainDefinition(); + Map chainMap = chainDefinition.getFilterChainMap(); + assertEquals("anon", chainMap.get("/**")); + + + } +} \ No newline at end of file diff --git a/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/RestconfApiControllerTest.java b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/RestconfApiControllerTest.java new file mode 100644 index 00000000..4a7a7ec8 --- /dev/null +++ b/ms/sliboot/src/test/java/org/onap/ccsdk/apps/ms/sliboot/RestconfApiControllerTest.java @@ -0,0 +1,172 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP - CCSDK + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ + +package org.onap.ccsdk.apps.ms.sliboot; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.ccsdk.apps.ms.sliboot.swagger.model.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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 com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.util.List; + +import static org.junit.Assert.*; + +@RunWith(SpringRunner.class) +@SpringBootTest +@AutoConfigureMockMvc +public class RestconfApiControllerTest { + + private static final Logger log = LoggerFactory.getLogger(RestconfApiControllerTest.class); + + @Autowired + private MockMvc mvc; + + @Test + public void testHealthcheck() throws Exception { + String url = "/operations/SLI-API:healthcheck/"; + + MvcResult mvcResult = + mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")) + .andReturn(); + + assertEquals(200, mvcResult.getResponse().getStatus()); + } + + @Test + public void testVlbcheck() throws Exception { + String url = "/operations/SLI-API:vlbcheck/"; + + MvcResult mvcResult = + mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")) + .andReturn(); + + assertEquals(200, mvcResult.getResponse().getStatus()); + } + + @Test + public void testExecuteHealthcheck() throws Exception { + String url = "/operations/SLI-API:execute-graph/"; + + SliApiExecutegraphInput executeGraphData = new SliApiExecutegraphInput(); + SliApiExecutegraphInputBodyparam executeGraphInput = new SliApiExecutegraphInputBodyparam(); + + executeGraphData.setModuleName("sli"); + executeGraphData.setRpcName("healthcheck"); + executeGraphData.setMode(SliApiModeEnumeration.SYNC); + executeGraphInput.setInput(executeGraphData); + + String jsonString = mapToJson(executeGraphInput); + log.error("jsonString is {}", jsonString); + + MvcResult mvcResult = + mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)) + .andReturn(); + + assertEquals(200, mvcResult.getResponse().getStatus()); + + } + + @Test + public void testExecuteMissingDg() throws Exception { + String url = "/operations/SLI-API:execute-graph/"; + + SliApiExecutegraphInputBodyparam executeGraphInput = new SliApiExecutegraphInputBodyparam(); + SliApiExecutegraphInput executeGraphData = new SliApiExecutegraphInput(); + + executeGraphData.setModuleName("sli"); + executeGraphData.setRpcName("noSuchRPC"); + executeGraphData.setMode(SliApiModeEnumeration.SYNC); + executeGraphInput.setInput(executeGraphData); + + String jsonString = mapToJson(executeGraphInput); + + log.error("jsonString is {}", jsonString); + + MvcResult mvcResult = + mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)) + .andReturn(); + + assertEquals(401, mvcResult.getResponse().getStatus()); + + } + + @Test + public void testTestResultAdd() throws Exception { + String url = "/config/SLI-API:test-results/"; + + MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(url).contentType(MediaType.APPLICATION_JSON_VALUE)).andReturn(); + + assertEquals(200, mvcResult.getResponse().getStatus()); + + // Delete any existing content before testing insert + mvcResult = mvc.perform(MockMvcRequestBuilders.delete(url).contentType(MediaType.APPLICATION_JSON)).andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + String jsonString = "{\n" + + " \"test-result\" : [\n" + + " {\n" + + " \"test-identifier\" : \"test-1\",\n" + + " \"results\" : [\"test result 1\"]\n" + + " }\n" + + " ]\n" + + "}"; + mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).accept(MediaType.APPLICATION_JSON_VALUE).content(jsonString)) + .andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + mvcResult = mvc.perform(MockMvcRequestBuilders.get(url).contentType(MediaType.APPLICATION_JSON)).andReturn(); + assertEquals(200, mvcResult.getResponse().getStatus()); + + ObjectMapper objectMapper = new ObjectMapper(); + SliApiTestResults testResults = objectMapper.readValue(mvcResult.getResponse().getContentAsString(), SliApiTestResults.class); + assertNotNull(testResults); + List testResult = testResults.getTestResult(); + assertNotNull(testResult); + assertFalse(testResult.isEmpty()); + assertEquals(1, testResult.size()); + SliApiTestresultsTestResult theResult = testResult.get(0); + assertEquals("test-1", theResult.getTestIdentifier()); + assertEquals("test result 1", theResult.getResults().get(0)); + + } + + private String mapToJson(Object obj) throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + return objectMapper.writeValueAsString(obj); + } + + private SliApiResponseFields respFromJson(String jsonString) throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + return (objectMapper.readValue(jsonString, SliApiResponseFields.class)); + } + +} -- cgit 1.2.3-korg