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