1 package org.onap.sdnc.apps.ms.gra.controllers;
3 import static org.junit.Assert.assertEquals;
5 import java.io.IOException;
6 import java.nio.file.Files;
7 import java.nio.file.Paths;
9 import org.junit.BeforeClass;
10 import org.junit.Test;
11 import org.junit.runner.RunWith;
12 import org.onap.sdnc.apps.ms.gra.GenericResourceMsApp;
13 import org.onap.sdnc.apps.ms.gra.data.ConfigPreloadData;
14 import org.onap.sdnc.apps.ms.gra.data.ConfigPreloadDataRepository;
15 import org.springframework.beans.factory.annotation.Autowired;
16 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
17 import org.springframework.boot.test.context.SpringBootTest;
18 import org.springframework.http.MediaType;
19 import org.springframework.test.context.junit4.SpringRunner;
20 import org.springframework.test.web.servlet.MockMvc;
21 import org.springframework.test.web.servlet.MvcResult;
22 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
23 import org.springframework.transaction.annotation.Transactional;
25 @RunWith(SpringRunner.class)
26 @SpringBootTest(classes={GenericResourceMsApp.class})
29 public class ConfigApiPreloadControllerTest {
31 private final static String CONFIG_PRELOAD_URL = "/config/GENERIC-RESOURCE-API:preload-information/";
32 private final static String CONFIG_PRELOAD_LIST_URL = "/config/GENERIC-RESOURCE-API:preload-information/preload-list/";
39 ConfigPreloadDataRepository configPreloadDataRepository;
42 public static void setUp() throws Exception {
43 System.out.println("ConfigApiPreloadControllerTest: Setting serviceLogicProperties, serviceLogicDirectory and sdnc.config.dir");
44 System.setProperty("serviceLogicProperties", "src/test/resources/svclogic.properties");
45 System.setProperty("serviceLogicDirectory", "src/test/resources/svclogic");
46 System.setProperty("sdnc.config.dir", "src/test/resources");
51 public void configGENERICRESOURCEAPIpreloadInformationDelete() throws Exception {
54 configPreloadDataRepository.deleteAll();
57 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
59 assertEquals(1, configPreloadDataRepository.count());
60 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(""))
62 assertEquals(204, mvcResult.getResponse().getStatus());
63 assertEquals(0, configPreloadDataRepository.count());
66 mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(""))
68 assertEquals(204, mvcResult.getResponse().getStatus());
72 public void configGENERICRESOURCEAPIpreloadInformationGet() throws Exception {
74 configPreloadDataRepository.deleteAll();
77 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
78 assert(configPreloadDataRepository.count() > 0);
80 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(""))
82 assertEquals(200, mvcResult.getResponse().getStatus());
85 configPreloadDataRepository.deleteAll();
86 mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(""))
88 assertEquals(404, mvcResult.getResponse().getStatus());
93 public void configGENERICRESOURCEAPIpreloadInformationPost() throws Exception {
95 configPreloadDataRepository.deleteAll();
97 String content = readFileContent("src/test/resources/preload1-net-model-info.json");
100 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(content))
102 assertEquals(201, mvcResult.getResponse().getStatus());
103 assertEquals(1, configPreloadDataRepository.count());
105 // Test with existing data - should return 409
106 mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(content))
108 assertEquals(409, mvcResult.getResponse().getStatus());
109 assertEquals(1, configPreloadDataRepository.count());
112 configPreloadDataRepository.deleteAll();
117 public void configGENERICRESOURCEAPIpreloadInformationPut() throws Exception {
119 configPreloadDataRepository.deleteAll();
121 String content = readFileContent("src/test/resources/preload1-net-model-info.json");
123 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PRELOAD_URL).contentType(MediaType.APPLICATION_JSON).content(content))
125 assertEquals(201, mvcResult.getResponse().getStatus());
126 assertEquals(1, configPreloadDataRepository.count());
130 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPost() throws Exception {
132 configPreloadDataRepository.deleteAll();
134 String content = readFileContent("src/test/resources/preload1-net-list-item.json");
136 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_LIST_URL).contentType(MediaType.APPLICATION_JSON).content(content))
138 assertEquals(404, mvcResult.getResponse().getStatus());
139 assertEquals(0, configPreloadDataRepository.count());
144 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeDelete() throws Exception {
146 configPreloadDataRepository.deleteAll();
149 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
150 assert(configPreloadDataRepository.count() > 0);
152 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(""))
154 assertEquals(204, mvcResult.getResponse().getStatus());
155 assertEquals(0, configPreloadDataRepository.count());
158 mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(""))
160 assertEquals(204, mvcResult.getResponse().getStatus());
161 assertEquals(0, configPreloadDataRepository.count());
165 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGet() throws Exception {
167 configPreloadDataRepository.deleteAll();
170 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
171 assert(configPreloadDataRepository.count() > 0);
173 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(""))
175 assertEquals(200, mvcResult.getResponse().getStatus());
178 configPreloadDataRepository.deleteAll();
179 mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(""))
181 assertEquals(404, mvcResult.getResponse().getStatus());
185 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypePostNoData() throws Exception {
187 configPreloadDataRepository.deleteAll();
189 String content = readFileContent("src/test/resources/preload1-net-list-item.json");
192 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(content))
194 assertEquals(201, mvcResult.getResponse().getStatus());
195 assertEquals(1, configPreloadDataRepository.count());
200 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypePostExistingData() throws Exception {
202 configPreloadDataRepository.deleteAll();
204 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
205 assert(configPreloadDataRepository.count() > 0);
207 String content = readFileContent("src/test/resources/preload1-net-list-item.json");
209 // Test with existing data - should return 409
210 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(content))
212 assertEquals(409, mvcResult.getResponse().getStatus());
213 assertEquals(1, configPreloadDataRepository.count());
219 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypePut() throws Exception {
221 configPreloadDataRepository.deleteAll();
223 String goodContent = readFileContent("src/test/resources/preload1-net-list-item.json");
227 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
229 assertEquals(201, mvcResult.getResponse().getStatus());
230 assertEquals(1, configPreloadDataRepository.count());
232 // Test with existing data - should return 204
233 mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PRELOAD_LIST_URL+"preload1/network/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
235 assertEquals(204, mvcResult.getResponse().getStatus());
236 assertEquals(1, configPreloadDataRepository.count());
242 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataDelete() throws Exception {
244 configPreloadDataRepository.deleteAll();
247 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
248 assert(configPreloadDataRepository.count() > 0);
249 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(""))
251 assertEquals(204, mvcResult.getResponse().getStatus());
252 assertEquals(1, configPreloadDataRepository.count());
255 configPreloadDataRepository.deleteAll();
256 assertEquals(0, configPreloadDataRepository.count());
257 mvcResult = mvc.perform(MockMvcRequestBuilders.delete(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(""))
259 assertEquals(404, mvcResult.getResponse().getStatus());
260 assertEquals(0, configPreloadDataRepository.count());
265 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataGet() throws Exception {
267 configPreloadDataRepository.deleteAll();
270 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
271 assert(configPreloadDataRepository.count() > 0);
273 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(""))
275 assertEquals(200, mvcResult.getResponse().getStatus());
278 configPreloadDataRepository.deleteAll();
279 mvcResult = mvc.perform(MockMvcRequestBuilders.get(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data").contentType(MediaType.APPLICATION_JSON).content(""))
281 assertEquals(404, mvcResult.getResponse().getStatus());
285 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPostNoData() throws Exception {
287 configPreloadDataRepository.deleteAll();
289 String goodContent = readFileContent("src/test/resources/preload1-net-preload-data.json");
293 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
295 assertEquals(404, mvcResult.getResponse().getStatus());
296 assertEquals(0, configPreloadDataRepository.count());
302 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPostBadContent() throws Exception {
304 configPreloadDataRepository.deleteAll();
306 String badContent = readFileContent("src/test/resources/preload1-net-model-info.json");
308 // Load single entry with no preloadData
309 ConfigPreloadData preloadData = new ConfigPreloadData();
310 preloadData.setPreloadId("preload1");
311 preloadData.setPreloadType("network");
312 preloadData.setPreloadData(null);
313 configPreloadDataRepository.save(preloadData);
319 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPostGoodData() throws Exception {
321 configPreloadDataRepository.deleteAll();
323 String goodContent = readFileContent("src/test/resources/preload1-net-preload-data.json");
325 // Load single entry with no preloadData
326 ConfigPreloadData preloadData = new ConfigPreloadData();
327 preloadData.setPreloadId("preload1");
328 preloadData.setPreloadType("network");
329 preloadData.setPreloadData(null);
330 configPreloadDataRepository.save(preloadData);
333 // Test with no existing preload data
334 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
337 assertEquals(201, mvcResult.getResponse().getStatus());
338 assertEquals(1, configPreloadDataRepository.count());
342 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPostExistingRecord() throws Exception {
344 configPreloadDataRepository.deleteAll();
346 String goodContent = readFileContent("src/test/resources/preload1-net-preload-data.json");
350 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
351 assert(configPreloadDataRepository.count() > 0);
354 // Test with existing preload dat
355 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
357 assertEquals(409, mvcResult.getResponse().getStatus());
358 assertEquals(1, configPreloadDataRepository.count());
363 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPutNoData() throws Exception {
365 configPreloadDataRepository.deleteAll();
367 String goodContent = readFileContent("src/test/resources/preload1-net-preload-data.json");
371 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
373 assertEquals(404, mvcResult.getResponse().getStatus());
374 assertEquals(0, configPreloadDataRepository.count());
378 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPutBadContent() throws Exception {
380 configPreloadDataRepository.deleteAll();
382 String badContent = readFileContent("src/test/resources/preload1-net-model-info.json");
384 // Load single entry with no preloadData
385 ConfigPreloadData preloadData = new ConfigPreloadData();
386 preloadData.setPreloadId("preload1");
387 preloadData.setPreloadType("network");
388 preloadData.setPreloadData(null);
389 configPreloadDataRepository.save(preloadData);
394 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPutGoodData() throws Exception {
396 configPreloadDataRepository.deleteAll();
398 String goodContent = readFileContent("src/test/resources/preload1-net-preload-data.json");
400 // Load single entry with no preloadData
401 ConfigPreloadData preloadData = new ConfigPreloadData();
402 preloadData.setPreloadId("preload1");
403 preloadData.setPreloadType("network");
404 preloadData.setPreloadData(null);
405 configPreloadDataRepository.save(preloadData);
408 // Test with no existing preload data
409 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
412 assertEquals(201, mvcResult.getResponse().getStatus());
413 assertEquals(1, configPreloadDataRepository.count());
417 public void configGENERICRESOURCEAPIpreloadInformationGENERICRESOURCEAPIpreloadListPreloadIdPreloadTypeGENERICRESOURCEAPIpreloadDataPutExistingRecord() throws Exception {
419 configPreloadDataRepository.deleteAll();
421 String goodContent = readFileContent("src/test/resources/preload1-net-preload-data.json");
425 loadData(CONFIG_PRELOAD_URL, "src/test/resources/preload1-net-model-info.json");
426 assert(configPreloadDataRepository.count() > 0);
429 // Test with existing preload dat
430 MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.put(CONFIG_PRELOAD_LIST_URL+"preload1/network/preload-data/").contentType(MediaType.APPLICATION_JSON).content(goodContent))
432 assertEquals(204, mvcResult.getResponse().getStatus());
433 assertEquals(1, configPreloadDataRepository.count());
436 private String readFileContent(String path) throws IOException {
437 String content = new String(Files.readAllBytes(Paths.get(path)));
441 private void deleteData(String url) throws Exception {
442 mvc.perform(MockMvcRequestBuilders.delete(url).contentType(MediaType.APPLICATION_JSON).content(""))
446 private void loadData(String url, String path) throws Exception {
447 String content = readFileContent(path);
448 mvc.perform(MockMvcRequestBuilders.post(url).contentType(MediaType.APPLICATION_JSON).content(content))