Remove security vulnerabilities in runtime-api
[dcaegen2/platform.git] / mod / runtimeapi / runtime-web / src / test / java / org / onap / dcae / runtime / web / controllers / TestFlowGraphController.java
index e17e1c6..942d2fd 100644 (file)
@@ -1,6 +1,6 @@
 /*-
  * ============LICENSE_START=======================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-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.
  */
 package org.onap.dcae.runtime.web.controllers;
 
+import java.util.HashMap;
+import java.util.LinkedList;
+
 import org.onap.dcae.runtime.core.Edge;
 import org.onap.dcae.runtime.core.FlowGraph;
 import org.onap.dcae.runtime.core.Node;
+import org.onap.dcae.runtime.web.ClientMocking;
+import org.onap.dcae.runtime.web.Helper;
 import org.onap.dcae.runtime.web.TestUtils;
+import org.onap.dcae.runtime.web.models.Action;
+import org.onap.dcae.runtime.web.models.DistributeGraphRequest;
 import org.onap.dcae.runtime.web.models.GraphRequest;
+import org.onap.dcae.runtime.web.RuntimeapiApplication;
 import org.onap.dcae.runtime.web.service.GraphServiceImpl;
+import org.onap.dcae.runtime.web.service.BlueprintInventory;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.mock.mockito.MockBean;
 import org.springframework.http.MediaType;
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.test.web.servlet.MockMvc;
 
 import static org.mockito.Mockito.when;
+import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
 import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
 import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
 
 @RunWith(SpringRunner.class)
-@WebMvcTest
+@SpringBootTest(classes=RuntimeapiApplication.class)
+@AutoConfigureMockMvc
 public class TestFlowGraphController {
 
     @Autowired
     private MockMvc mockMvc;
 
-    @MockBean
+    @Autowired
+    private BlueprintInventory blueprintInventory;
+
+    @Autowired
     private GraphServiceImpl graphService;
 
+    private DistributeGraphRequest distributeGraphRequest;
     private GraphRequest graphRequest;
 
     @Before
@@ -57,41 +73,43 @@ public class TestFlowGraphController {
         graphRequest.setId("1234");
         graphRequest.setName("nifi-main");
         graphRequest.setDescription("mock graph");
+       distributeGraphRequest = new DistributeGraphRequest();
+       ClientMocking inv = new ClientMocking()
+               .on("POST /ccsdk-app/api-if", "\"OK\"")
+               .applyTo(blueprintInventory);
+    }
+
+    @Test
+    public void testSwaggerUi() throws Exception {
+       mockMvc.perform(get("/swagger-ui/index.html"))
+               .andExpect(status().isOk());
     }
 
     @Test
     public void testInitializeGraph() throws Exception{
         graphRequest.setMain(true);
+        mockMvc.perform(get("/api/graph/main"))
+                .andExpect(status().isNotFound());
         mockMvc.perform(post("/api/graph/main")
                         .contentType(MediaType.APPLICATION_JSON)
                         .content(TestUtils.convertObjectToJsonBytes(graphRequest)))
                         .andExpect(status().isCreated());
-    }
-
-    @Test
-    public void testGetMainGraph() throws Exception{
-        FlowGraph<Node, Edge> flowGraph = new FlowGraph<>("1234","nifi-main",true,"demo");
-        when(this.graphService.getMainGraph()).thenReturn(flowGraph);
+        mockMvc.perform(post("/api/graph/main")
+                        .contentType(MediaType.APPLICATION_JSON)
+                        .content(TestUtils.convertObjectToJsonBytes(graphRequest)))
+                        .andExpect(status().isConflict());
         mockMvc.perform(get("/api/graph/main"))
                 .andExpect(status().isOk())
                 .andExpect(jsonPath("id").value("1234"))
                 .andExpect(jsonPath("name").value("nifi-main"));
+       distributeGraphRequest.setActions(Helper.getAddNodesWithEdge());
+       mockMvc.perform(post("/api/graph/" + graphRequest.getId() + "/distribute")
+                       .contentType(MediaType.APPLICATION_JSON)
+                       .content(TestUtils.convertObjectToJsonBytes(distributeGraphRequest)))
+                       .andExpect(status().isOk());
+       mockMvc.perform(delete("/api/graph/main"))
+                       .andExpect(status().isOk());
+       mockMvc.perform(delete("/api/graph/main"))
+                       .andExpect(status().isNotFound());
     }
-
-//    @Test
-//    public void testMainGraphNotFound() throws Exception{
-//        when(this.graphService.getMainGraph()).thenReturn(null);
-//        mockMvc.perform(get("/api/graph/main"))
-//                .andExpect(status().isNotFound());
-//    }
-
-//    @Test
-//    public void testConflictIfMainGraphExists() throws Exception{
-//        when(this.graphService.initializeMainGraph(graphRequest)).thenThrow(new MainGraphAlreadyExistException(""));
-//        mockMvc.perform(post("/api/graph/main")
-//                .contentType(MediaType.APPLICATION_JSON)
-//                .content(TestUtils.convertObjectToJsonBytes(graphRequest)))
-//                .andExpect(status().isConflict());
-//    }
-
 }