4f987f0d4875ac8d17dc505f0f52d9050fcc2679
[so.git] /
1 /*- \r
2  * ============LICENSE_START======================================================= \r
3  * OPENECOMP - MSO \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 org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicyfqdn;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;\r
32 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;\r
33 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;\r
34 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;\r
35 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
36 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;\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.Test;\r
45 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
46 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;\r
47 import org.openecomp.mso.bpmn.mock.FileUtil;\r
48 \r
49 /**\r
50  * Unit test cases for CreateVfModuleInfra.bpmn\r
51  */\r
52 public class CreateVfModuleInfraTest extends WorkflowTest {\r
53         \r
54         private final CallbackSet callbacks = new CallbackSet();\r
55 \r
56         public CreateVfModuleInfraTest() throws IOException {\r
57                 callbacks.put("assign", FileUtil.readResourceFile(\r
58                         "__files/VfModularity/SDNCTopologyAssignCallback.xml"));\r
59                 callbacks.put("query", FileUtil.readResourceFile(\r
60                         "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));\r
61                 callbacks.put("activate", FileUtil.readResourceFile(\r
62                         "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
63                 callbacks.put("vnfCreate", FileUtil.readResourceFile(\r
64                         "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));\r
65         }\r
66         \r
67         \r
68         /**\r
69          * Sunny day VID scenario.\r
70          * \r
71          * @throws Exception\r
72          */\r
73         @Test   \r
74         @Deployment(resources = {\r
75                         "process/CreateVfModuleInfra.bpmn",\r
76                         "subprocess/DoCreateVfModule.bpmn",\r
77                         "subprocess/SDNCAdapterV1.bpmn",\r
78                         "subprocess/VnfAdapterRestV1.bpmn",\r
79                         "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
80                         "subprocess/ConfirmVolumeGroupName.bpmn",\r
81                         "subprocess/CreateAAIVfModule.bpmn",\r
82                         "subprocess/UpdateAAIVfModule.bpmn",\r
83                         "subprocess/UpdateAAIGenericVnf.bpmn",\r
84                         "subprocess/CompleteMsoProcess.bpmn",\r
85                         "subprocess/FalloutHandler.bpmn"\r
86                 })\r
87         public void sunnyDayVID() throws Exception {\r
88                                 \r
89                 logStart();\r
90                 \r
91                 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");\r
92                 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);\r
93                 MockGetGenericVnfById("skask", "VfModularity/GenericVnf.xml", 200);\r
94                 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");\r
95                 MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);\r
96                 MockPutGenericVnf("skask");\r
97                 mockVNFPost("", 202, "skask");\r
98                 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
99                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
100                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
101                 MockPatchGenericVnf("skask");\r
102                 MockPatchVfModuleId("skask", ".*");\r
103                 \r
104                 String businessKey = UUID.randomUUID().toString();\r
105                 String createVfModuleRequest =\r
106                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");\r
107                 \r
108                 Map<String, Object> variables = setupVariablesSunnyDayVID();\r
109                 \r
110                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
111                         "v1", businessKey, createVfModuleRequest, variables);\r
112                                 \r
113                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
114                 \r
115                 String responseBody = response.getResponse();\r
116                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
117                 \r
118                 injectSDNCCallbacks(callbacks, "assign, query");\r
119                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
120                 injectSDNCCallbacks(callbacks, "activate");\r
121                 \r
122                 // TODO add appropriate assertions\r
123 \r
124                 waitForProcessEnd(businessKey, 10000);\r
125                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
126                 \r
127                 logEnd();\r
128         }\r
129         \r
130         // Active Scenario\r
131                 private Map<String, Object> setupVariablesSunnyDayVID() {\r
132                         Map<String, Object> variables = new HashMap<String, Object>();\r
133                         //try {\r
134                         //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
135                         //}\r
136                         //catch (Exception e) {\r
137                                 \r
138                         //}\r
139                         //variables.put("mso-request-id", "testRequestId");\r
140                         variables.put("requestId", "testRequestId");            \r
141                         variables.put("isBaseVfModule", false);\r
142                         variables.put("isDebugLogEnabled", "true");\r
143                         variables.put("recipeTimeout", "0");            \r
144                         variables.put("requestAction", "CREATE_VF_MODULE");\r
145                         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
146                         variables.put("vnfId", "skask");\r
147                         variables.put("vnfType", "vSAMP12");\r
148                         variables.put("vfModuleId", "");\r
149                         variables.put("volumeGroupId", "");                     \r
150                         variables.put("serviceType", "MOG");    \r
151                         variables.put("vfModuleType", "");                      \r
152                         return variables;\r
153                         \r
154                 }\r
155                 \r
156                 /**\r
157                  * Sunny day VID with volume attach scenario.\r
158                  * \r
159                  * @throws Exception\r
160                  */\r
161                 @Test\r
162                 @Deployment(resources = {\r
163                                 "process/CreateVfModuleInfra.bpmn",\r
164                                 "subprocess/DoCreateVfModule.bpmn",\r
165                                 "subprocess/SDNCAdapterV1.bpmn",\r
166                                 "subprocess/VnfAdapterRestV1.bpmn",\r
167                                 "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
168                                 "subprocess/ConfirmVolumeGroupName.bpmn",\r
169                                 "subprocess/CreateAAIVfModule.bpmn",\r
170                                 "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",\r
171                                 "subprocess/UpdateAAIVfModule.bpmn",\r
172                                 "subprocess/UpdateAAIGenericVnf.bpmn",\r
173                                 "subprocess/CompleteMsoProcess.bpmn",\r
174                                 "subprocess/FalloutHandler.bpmn"\r
175                         })\r
176                 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {\r
177                                         \r
178                         logStart();\r
179                         \r
180                         MockGetVolumeGroupById("AAIAIC25", "78987", "VfModularity/VolumeGroup.xml");\r
181                         MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");\r
182                         MockGetCloudRegion("MDTWNJ21", 200, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");\r
183                         MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");\r
184                         MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");\r
185                         mockVNFPost("", 202, "skask");\r
186                         MockGetNetworkPolicyfqdn(".*", "VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml", 200);\r
187                         MockPutGenericVnf("skask");\r
188                         MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);\r
189                         mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
190                         mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
191                         mockVNFPost("", 202, "skask");\r
192                         mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
193                         MockPatchGenericVnf("skask");\r
194                         MockPatchVfModuleId("skask", ".*");\r
195                         \r
196                         String businessKey = UUID.randomUUID().toString();\r
197                         String createVfModuleRequest =\r
198                                 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");\r
199                         \r
200                         Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();\r
201                         \r
202                         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",\r
203                                 "v1", businessKey, createVfModuleRequest, variables);\r
204                                         \r
205                         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
206                         \r
207                         String responseBody = response.getResponse();\r
208                         System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
209                         \r
210                         injectSDNCCallbacks(callbacks, "assign, query");\r
211                         injectVNFRestCallbacks(callbacks, "vnfCreate");\r
212                         injectSDNCCallbacks(callbacks, "activate");\r
213                         \r
214                         // TODO add appropriate assertions\r
215 \r
216                         waitForProcessEnd(businessKey, 10000);\r
217                         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);\r
218                         \r
219                         logEnd();\r
220                 }\r
221                 \r
222                 // Active Scenario\r
223                         private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {\r
224                                 Map<String, Object> variables = new HashMap<String, Object>();\r
225                                 //try {\r
226                                 //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
227                                 //}\r
228                                 //catch (Exception e) {\r
229                                         \r
230                                 //}\r
231                                 //variables.put("mso-request-id", "testRequestId");\r
232                                 variables.put("requestId", "testRequestId");            \r
233                                 variables.put("isBaseVfModule", false);\r
234                                 variables.put("isDebugLogEnabled", "true");\r
235                                 variables.put("recipeTimeout", "0");            \r
236                                 variables.put("requestAction", "CREATE_VF_MODULE");\r
237                                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
238                                 variables.put("vnfId", "skask");\r
239                                 variables.put("vnfType", "vSAMP12");\r
240                                 variables.put("vfModuleId", "");\r
241                                 variables.put("volumeGroupId", "78987");                        \r
242                                 variables.put("serviceType", "MOG");    \r
243                                 variables.put("vfModuleType", "");                      \r
244                                 return variables;\r
245                                 \r
246                         }\r
247                 \r
248         \r
249 }\r