1 package org.onap.ccsdk.sli.core.sliapi.springboot;
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import com.fasterxml.jackson.databind.ObjectMapper;
6 import org.junit.runner.RunWith;
7 import org.onap.ccsdk.sli.core.sliapi.model.ExecuteGraphInput;
8 import org.onap.ccsdk.sli.core.sliapi.model.ExecutegraphinputInput;
9 import org.onap.ccsdk.sli.core.sliapi.model.ResponseFields;
10 import org.springframework.beans.factory.annotation.Autowired;
11 import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
12 import org.springframework.boot.test.mock.mockito.MockBean;
13 import org.springframework.http.MediaType;
14 import org.springframework.test.context.junit4.SpringRunner;
15 import org.springframework.test.web.servlet.MockMvc;
16 import org.springframework.test.web.servlet.MvcResult;
17 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
19 import static org.junit.Assert.assertEquals;
21 @RunWith(SpringRunner.class)
22 @WebMvcTest(RestconfApiController.class)
23 public class RestconfApiControllerTest {
29 private RestconfApiController restconfApiController;
32 public void testHealthcheck() throws Exception {
33 String url = "/restconf/operations/SLI-API:healthcheck";
35 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")).andReturn();
37 assertEquals(200, mvcResult.getResponse().getStatus());
41 public void testVlbcheck() throws Exception {
42 String url = "/restconf/operations/SLI-API:vlbcheck";
44 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")).andReturn();
46 assertEquals(200, mvcResult.getResponse().getStatus());
50 public void testExecuteHealthcheck() throws Exception {
51 String url = "/restconf/operations/SLI-API:execute-graph";
53 ExecuteGraphInput executeGraphInput = new ExecuteGraphInput();
54 ExecutegraphinputInput executeGraphData = new ExecutegraphinputInput();
56 executeGraphData.setModuleName("sli");
57 executeGraphData.setRpcName("healthcheck");
58 executeGraphData.setMode("sync");
59 executeGraphInput.setInput(executeGraphData);
61 String jsonString = mapToJson(executeGraphInput);
63 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)).andReturn();
65 assertEquals(200, mvcResult.getResponse().getStatus());
70 public void testExecuteMissingDg() throws Exception {
71 String url = "/restconf/operations/SLI-API:execute-graph";
73 ExecuteGraphInput executeGraphInput = new ExecuteGraphInput();
74 ExecutegraphinputInput executeGraphData = new ExecutegraphinputInput();
76 executeGraphData.setModuleName("sli");
77 executeGraphData.setRpcName("noSuchRPC");
78 executeGraphData.setMode("sync");
79 executeGraphInput.setInput(executeGraphData);
81 String jsonString = mapToJson(executeGraphInput);
83 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)).andReturn();
85 // Note: this really should return 401 (and truly does), but mockito always returns a 200.
86 assertEquals(200, mvcResult.getResponse().getStatus());
90 private String mapToJson(Object obj) throws JsonProcessingException {
91 ObjectMapper objectMapper = new ObjectMapper();
92 return objectMapper.writeValueAsString(obj);
95 private ResponseFields respFromJson(String jsonString) throws JsonProcessingException {
96 ObjectMapper objectMapper = new ObjectMapper();
97 return(objectMapper.readValue(jsonString, ResponseFields.class));