af55a51811fb6d84e476331793a03b03b99f28ec
[ccsdk/sli.git] /
1 package org.onap.ccsdk.sli.core.sliapi.springboot;
2
3 import com.fasterxml.jackson.core.JsonProcessingException;
4 import com.fasterxml.jackson.databind.ObjectMapper;
5 import org.junit.Test;
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;
18
19 import static org.junit.Assert.assertEquals;
20
21 @RunWith(SpringRunner.class)
22 @WebMvcTest(RestconfApiController.class)
23 public class RestconfApiControllerTest {
24
25     @Autowired
26     private MockMvc mvc;
27
28     @MockBean
29     private RestconfApiController restconfApiController;
30
31     @Test
32     public void testHealthcheck() throws Exception {
33         String url = "/restconf/operations/SLI-API:healthcheck";
34
35         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")).andReturn();
36
37         assertEquals(200, mvcResult.getResponse().getStatus());
38     }
39
40     @Test
41     public void testVlbcheck() throws Exception {
42         String url = "/restconf/operations/SLI-API:vlbcheck";
43
44         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content("")).andReturn();
45
46         assertEquals(200, mvcResult.getResponse().getStatus());
47     }
48
49     @Test
50     public void testExecuteHealthcheck() throws Exception {
51         String url = "/restconf/operations/SLI-API:execute-graph";
52
53         ExecuteGraphInput executeGraphInput = new ExecuteGraphInput();
54         ExecutegraphinputInput executeGraphData = new ExecutegraphinputInput();
55
56         executeGraphData.setModuleName("sli");
57         executeGraphData.setRpcName("healthcheck");
58         executeGraphData.setMode("sync");
59         executeGraphInput.setInput(executeGraphData);
60
61         String jsonString = mapToJson(executeGraphInput);
62
63         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)).andReturn();
64
65         assertEquals(200, mvcResult.getResponse().getStatus());
66
67     }
68
69     @Test
70     public void testExecuteMissingDg() throws Exception {
71         String url = "/restconf/operations/SLI-API:execute-graph";
72
73         ExecuteGraphInput executeGraphInput = new ExecuteGraphInput();
74         ExecutegraphinputInput executeGraphData = new ExecutegraphinputInput();
75
76         executeGraphData.setModuleName("sli");
77         executeGraphData.setRpcName("noSuchRPC");
78         executeGraphData.setMode("sync");
79         executeGraphInput.setInput(executeGraphData);
80
81         String jsonString = mapToJson(executeGraphInput);
82
83         MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON_VALUE).content(jsonString)).andReturn();
84
85         // Note: this really should return 401 (and truly does), but mockito always returns a 200.
86         assertEquals(200, mvcResult.getResponse().getStatus());
87
88     }
89
90     private String mapToJson(Object obj) throws JsonProcessingException {
91         ObjectMapper objectMapper = new ObjectMapper();
92         return objectMapper.writeValueAsString(obj);
93     }
94
95     private ResponseFields respFromJson(String jsonString) throws JsonProcessingException {
96         ObjectMapper objectMapper = new ObjectMapper();
97         return(objectMapper.readValue(jsonString, ResponseFields.class));
98     }
99 }