[MSO-8] Update the maven dependency
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / CreateVfModuleInfraTest.java
1 /*- 
2  * ============LICENSE_START======================================================= 
3  * OPENECOMP - MSO 
4  * ================================================================================ 
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
6  * ================================================================================ 
7  * Licensed under the Apache License, Version 2.0 (the "License"); 
8  * you may not use this file except in compliance with the License. 
9  * You may obtain a copy of the License at 
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0 
12  * 
13  * Unless required by applicable law or agreed to in writing, software 
14  * distributed under the License is distributed on an "AS IS" BASIS, 
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
16  * See the License for the specific language governing permissions and 
17  * limitations under the License. 
18  * ============LICENSE_END========================================================= 
19  */ 
20
21 package org.openecomp.mso.bpmn.infrastructure;
22
23 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
26 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
27 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicyfqdn;
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
32 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
33 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
34 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;
35
36 import java.io.IOException;
37 import java.util.HashMap;
38 import java.util.Map;
39 import java.util.UUID;
40
41 import org.camunda.bpm.engine.test.Deployment;
42 import org.junit.Test;
43 import org.openecomp.mso.bpmn.common.WorkflowTest;
44 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
45 import org.openecomp.mso.bpmn.mock.FileUtil;
46
47 /**
48  * Unit test cases for CreateVfModuleInfra.bpmn
49  */
50 public class CreateVfModuleInfraTest extends WorkflowTest {
51         
52         private final CallbackSet callbacks = new CallbackSet();
53
54         public CreateVfModuleInfraTest() throws IOException {
55                 callbacks.put("assign", FileUtil.readResourceFile(
56                         "__files/VfModularity/SDNCTopologyAssignCallback.xml"));
57                 callbacks.put("query", FileUtil.readResourceFile(
58                         "__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));
59                 callbacks.put("activate", FileUtil.readResourceFile(
60                         "__files/VfModularity/SDNCTopologyActivateCallback.xml"));
61                 callbacks.put("vnfCreate", FileUtil.readResourceFile(
62                         "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));
63         }
64         
65         
66         /**
67          * Sunny day VID scenario.
68          * 
69          * @throws Exception
70          */
71         @Test   
72         @Deployment(resources = {
73                         "process/CreateVfModuleInfra.bpmn",
74                         "subprocess/DoCreateVfModule.bpmn",
75                         "subprocess/SDNCAdapterV1.bpmn",
76                         "subprocess/VnfAdapterRestV1.bpmn",
77                         "subprocess/ConfirmVolumeGroupTenant.bpmn",
78                         "subprocess/ConfirmVolumeGroupName.bpmn",
79                         "subprocess/CreateAAIVfModule.bpmn",
80                         "subprocess/UpdateAAIVfModule.bpmn",
81                         "subprocess/UpdateAAIGenericVnf.bpmn",
82                         "subprocess/CompleteMsoProcess.bpmn",
83                         "subprocess/FalloutHandler.bpmn"
84                 })
85         public void sunnyDayVID() throws Exception {
86                                 
87                 logStart();
88                 
89                 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
90                 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
91                 MockGetGenericVnfById("skask", "VfModularity/GenericVnf.xml", 200);
92                 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
93                 MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);
94                 MockPutGenericVnf("skask");
95                 mockVNFPost("", 202, "skask");
96                 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
97                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
98                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
99                 
100                 String businessKey = UUID.randomUUID().toString();
101                 String createVfModuleRequest =
102                         FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");
103                 
104                 Map<String, Object> variables = setupVariablesSunnyDayVID();
105                 
106                 TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
107                         "v1", businessKey, createVfModuleRequest, variables);
108                                 
109                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
110                 
111                 String responseBody = response.getResponse();
112                 System.out.println("Workflow (Synch) Response:\n" + responseBody);
113                 
114                 injectSDNCCallbacks(callbacks, "assign, query");
115                 injectVNFRestCallbacks(callbacks, "vnfCreate");
116                 injectSDNCCallbacks(callbacks, "activate");
117                 
118                 // TODO add appropriate assertions
119
120                 waitForProcessEnd(businessKey, 10000);
121                 checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
122                 
123                 logEnd();
124         }
125         
126         // Active Scenario
127                 private Map<String, Object> setupVariablesSunnyDayVID() {
128                         Map<String, Object> variables = new HashMap<String, Object>();
129                         //try {
130                         //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
131                         //}
132                         //catch (Exception e) {
133                                 
134                         //}
135                         //variables.put("mso-request-id", "testRequestId");
136                         variables.put("requestId", "testRequestId");            
137                         variables.put("isBaseVfModule", false);
138                         variables.put("isDebugLogEnabled", "true");
139                         variables.put("recipeTimeout", "0");            
140                         variables.put("requestAction", "CREATE_VF_MODULE");
141                         variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
142                         variables.put("vnfId", "skask");
143                         variables.put("vnfType", "vSAMP12");
144                         variables.put("vfModuleId", "");
145                         variables.put("volumeGroupId", "");                     
146                         variables.put("serviceType", "MOG");    
147                         variables.put("vfModuleType", "");                      
148                         return variables;
149                         
150                 }
151                 
152                 /**
153                  * Sunny day VID with volume attach scenario.
154                  * 
155                  * @throws Exception
156                  */
157                 @Test
158                 @Deployment(resources = {
159                                 "process/CreateVfModuleInfra.bpmn",
160                                 "subprocess/DoCreateVfModule.bpmn",
161                                 "subprocess/SDNCAdapterV1.bpmn",
162                                 "subprocess/VnfAdapterRestV1.bpmn",
163                                 "subprocess/ConfirmVolumeGroupTenant.bpmn",
164                                 "subprocess/ConfirmVolumeGroupName.bpmn",
165                                 "subprocess/CreateAAIVfModule.bpmn",
166                                 "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",
167                                 "subprocess/UpdateAAIVfModule.bpmn",
168                                 "subprocess/UpdateAAIGenericVnf.bpmn",
169                                 "subprocess/CompleteMsoProcess.bpmn",
170                                 "subprocess/FalloutHandler.bpmn"
171                         })
172                 public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {
173                                         
174                         logStart();
175                         
176                         MockGetVolumeGroupById("AAIAIC25", "78987", "VfModularity/VolumeGroup.xml");
177                         MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
178                         MockGetCloudRegion("MDTWNJ21", 200, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");
179                         MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");
180                         MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
181                         mockVNFPost("", 202, "skask");
182                         MockGetNetworkPolicyfqdn(".*", "VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml", 200);
183                         MockPutGenericVnf("skask");
184                         MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
185                         mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
186                         mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
187                         mockVNFPost("", 202, "skask");
188                         mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
189                         
190                         String businessKey = UUID.randomUUID().toString();
191                         String createVfModuleRequest =
192                                 FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");
193                         
194                         Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();
195                         
196                         TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
197                                 "v1", businessKey, createVfModuleRequest, variables);
198                                         
199                         WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
200                         
201                         String responseBody = response.getResponse();
202                         System.out.println("Workflow (Synch) Response:\n" + responseBody);
203                         
204                         injectSDNCCallbacks(callbacks, "assign, query");
205                         injectVNFRestCallbacks(callbacks, "vnfCreate");
206                         injectSDNCCallbacks(callbacks, "activate");
207                         
208                         // TODO add appropriate assertions
209
210                         waitForProcessEnd(businessKey, 10000);
211                         checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
212                         
213                         logEnd();
214                 }
215                 
216                 // Active Scenario
217                         private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {
218                                 Map<String, Object> variables = new HashMap<String, Object>();
219                                 //try {
220                                 //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
221                                 //}
222                                 //catch (Exception e) {
223                                         
224                                 //}
225                                 //variables.put("mso-request-id", "testRequestId");
226                                 variables.put("requestId", "testRequestId");            
227                                 variables.put("isBaseVfModule", false);
228                                 variables.put("isDebugLogEnabled", "true");
229                                 variables.put("recipeTimeout", "0");            
230                                 variables.put("requestAction", "CREATE_VF_MODULE");
231                                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
232                                 variables.put("vnfId", "skask");
233                                 variables.put("vnfType", "vSAMP12");
234                                 variables.put("vfModuleId", "");
235                                 variables.put("volumeGroupId", "78987");                        
236                                 variables.put("serviceType", "MOG");    
237                                 variables.put("vfModuleType", "");                      
238                                 return variables;
239                                 
240                         }
241                 
242         
243 }