1710 Rebase - Second Attempt
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / DoDeleteVnfAndModulesTest.java
1 package org.openecomp.mso.bpmn.infrastructure;\r
2 \r
3 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;\r
4 import static com.github.tomakehurst.wiremock.client.WireMock.containing;\r
5 import static com.github.tomakehurst.wiremock.client.WireMock.delete;\r
6 import static com.github.tomakehurst.wiremock.client.WireMock.post;\r
7 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;\r
8 import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;\r
9 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;\r
10 import static org.junit.Assert.assertEquals;\r
11 import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIDeleteVfModule;\r
12 import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;\r
13 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;\r
14 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;\r
15 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;\r
16 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
17 \r
18 import java.io.IOException;\r
19 import java.util.HashMap;\r
20 import java.util.Map;\r
21 import java.util.UUID;\r
22 \r
23 import org.camunda.bpm.engine.test.Deployment;\r
24 import org.junit.Assert;\r
25 import org.junit.Ignore;\r
26 import org.junit.Test;\r
27 import org.openecomp.mso.bpmn.common.BPMNUtil;\r
28 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
29 import org.openecomp.mso.bpmn.mock.FileUtil;\r
30 \r
31 public class DoDeleteVnfAndModulesTest extends WorkflowTest {\r
32         private final CallbackSet callbacks = new CallbackSet();\r
33         private static final String EOL = "\n";\r
34         private final String vnfAdapterDeleteCallback = \r
35                         "<deleteVfModuleResponse>" + EOL +\r
36                         "    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +\r
37                         "    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +\r
38                         "    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +\r
39                         "    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +\r
40                         "</deleteVfModuleResponse>" + EOL;\r
41 \r
42         public DoDeleteVnfAndModulesTest () throws IOException {\r
43                 callbacks.put("deactivate", FileUtil.readResourceFile(\r
44                                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
45                 callbacks.put("unassign", FileUtil.readResourceFile(\r
46                                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
47                 callbacks.put("vnfDelete", vnfAdapterDeleteCallback);\r
48 \r
49         }\r
50 \r
51         @Test\r
52         @Deployment(resources = {"subprocess/DoDeleteVnfAndModules.bpmn", "subprocess/SDNCAdapterV1.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn", "subprocess/DoDeleteVfModule.bpmn"})\r
53         public void testDoDeleteVnfAndModules_successVnfOnly() throws Exception{\r
54                 MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");\r
55                 MockDeleteGenericVnf("testVnfId123", "testReVer123");\r
56                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
57                 mockSDNCAdapter(200);\r
58 \r
59                 String businessKey = UUID.randomUUID().toString();\r
60                 Map<String, Object> variables = new HashMap<String, Object>();\r
61                 setVariablesVnfOnly(variables);\r
62                 invokeSubProcess("DoDeleteVnfAndModules", businessKey, variables);\r
63                 \r
64                 injectSDNCCallbacks(callbacks, "deactivate");\r
65                 injectSDNCCallbacks(callbacks, "unassign");\r
66 \r
67                 waitForProcessEnd(businessKey, 10000);\r
68 \r
69                 Assert.assertTrue(isProcessEnded(businessKey));         \r
70 \r
71                 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnfAndModules", "WorkflowException");\r
72                 \r
73                 assertEquals(null, workflowException);\r
74         }\r
75 \r
76         \r
77         private void setVariablesVnfOnly(Map<String, Object> variables) {\r
78                 variables.put("mso-request-id", "testRequestId123");            \r
79                 variables.put("isDebugLogEnabled", "true");\r
80                 variables.put("vnfId","testVnfId123");\r
81                 variables.put("serviceInstanceId", "MIS%2F1604%2F0026%2FSW_INTERNET");\r
82                 //variables.put("vnfName", "testVnfName123");\r
83                 variables.put("disableRollback", "true");\r
84                 variables.put("msoRequestId", "testVnfId123");\r
85                 variables.put("testVnfId","testVnfId123");\r
86                 //variables.put("vnfType", "STMTN");\r
87                 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");\r
88                 String vnfModelInfo = "{ "+ "\"modelType\": \"vnf\"," +\r
89                                 "\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +\r
90                                 "\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +\r
91                                 "\"modelName\": \"vSAMP12\"," +\r
92                                 "\"modelVersion\": \"1.0\"," +\r
93                                 "\"modelCustomizationUuid\": \"MODEL-ID-1234\"," +\r
94                                 "}";\r
95                 //variables.put("vnfModelInfo", vnfModelInfo);\r
96 \r
97                 variables.put("lcpCloudRegionId", "mdt1");\r
98                 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");          \r
99                 \r
100                 String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +\r
101                                 "\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +\r
102                                 "\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +\r
103                                 "\"modelName\": \"ServicevSAMP12\"," +\r
104                                 "\"modelVersion\": \"1.0\"," +\r
105                                 "}";\r
106                 //variables.put("serviceModelInfo", serviceModelInfo);\r
107                 variables.put("globalSubscriberId", "MSO-1610");\r
108                 variables.put("sdncVersion", "1707");\r
109                 \r
110         }\r
111         \r
112         @Test   \r
113         @Deployment(resources = {"subprocess/DoDeleteVnfAndModules.bpmn", "subprocess/SDNCAdapterV1.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn", "subprocess/DoDeleteVfModuleFromVnf.bpmn", "subprocess/VnfAdapterRestV1.bpmn", "subprocess/DeleteAAIVfModule.bpmn"})\r
114         public void testDoDeleteVnfAndModules_successVnfAndModules() throws Exception{\r
115                 MockAAIGenericVnfSearch();\r
116                 MockGetGenericVnfById("testVnfId123.*", "GenericFlows/getGenericVnfByNameResponse.xml");\r
117                 MockDeleteGenericVnf("testVnfId123", "testReVer123");\r
118                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
119                 mockSDNCAdapter(200);\r
120                 MockDoDeleteVfModule_SDNCSuccess();\r
121                 MockDoDeleteVfModule_DeleteVNFSuccess();\r
122                 MockAAIDeleteVfModule();\r
123 \r
124                 String businessKey = UUID.randomUUID().toString();\r
125                 Map<String, Object> variables = new HashMap<String, Object>();\r
126                 setVariablesVnfAndModules(variables);\r
127                 invokeSubProcess("DoDeleteVnfAndModules", businessKey, variables);\r
128                 \r
129                 injectSDNCCallbacks(callbacks, "deactivate");\r
130                 injectSDNCCallbacks(callbacks, "deactivate");\r
131                 injectVNFRestCallbacks(callbacks, "vnfDelete");\r
132                 injectSDNCCallbacks(callbacks, "unassign");\r
133                 MockGetGenericVnfById("a27ce5a9-29c4-4c22-a017-6615ac73c721", "GenericFlows/getGenericVnfByNameResponse.xml");\r
134                 injectSDNCCallbacks(callbacks, "unassign");\r
135                 //MockGetGenericVnfById("a27ce5a9-29c4-4c22-a017-6615ac73c721", "GenericFlows/getGenericVnfByNameResponse.xml");\r
136 \r
137                 waitForProcessEnd(businessKey, 10000);\r
138 \r
139                 Assert.assertTrue(isProcessEnded(businessKey));         \r
140 \r
141                 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnfAndModules", "WorkflowException");\r
142                 \r
143                 assertEquals(null, workflowException);\r
144         }\r
145 \r
146         \r
147         private void setVariablesVnfAndModules(Map<String, Object> variables) {\r
148                 variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");                \r
149                 variables.put("isDebugLogEnabled", "true");\r
150                 variables.put("vnfId","a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
151                 variables.put("serviceInstanceId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
152                                 \r
153                 variables.put("msoRequestId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");\r
154                 //variables.put("testVnfId","testVnfId123");\r
155                 \r
156                 variables.put("lcpCloudRegionId", "RDM2WAGPLCP");\r
157                 variables.put("tenantId", "fba1bd1e195a404cacb9ce17a9b2b421");\r
158                 \r
159                 variables.put("sdncVersion", "1707");\r
160                 \r
161         }\r
162         \r
163 \r
164         public static void MockDoDeleteVfModule_SDNCSuccess() {\r
165                 stubFor(post(urlEqualTo("/SDNCAdapter"))\r
166                                   .withRequestBody(containing("SvcAction>deactivate"))\r
167                                   .willReturn(aResponse()\r
168                                   .withStatus(200)\r
169                                   .withHeader("Content-Type", "text/xml")\r
170                                   .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));\r
171                 stubFor(post(urlEqualTo("/SDNCAdapter"))\r
172                                   .withRequestBody(containing("SvcAction>unassign"))\r
173                                   .willReturn(aResponse()\r
174                                   .withStatus(200)\r
175                                   .withHeader("Content-Type", "text/xml")\r
176                                   .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));\r
177         }\r
178 \r
179         \r
180         public static void MockDoDeleteVfModule_DeleteVNFSuccess() {\r
181                 stubFor(delete(urlMatching("/vnfs/v1/vnfs/.*/vf-modules/.*"))\r
182                                 .willReturn(aResponse()\r
183                                 .withStatus(202)\r
184                                 .withHeader("Content-Type", "application/xml")));\r
185                 stubFor(delete(urlMatching("/vnfs/v1/volume-groups/78987"))\r
186                                 .willReturn(aResponse()\r
187                                 .withStatus(202)\r
188                                 .withHeader("Content-Type", "application/xml")));\r
189         }\r
190 }