Merge "Reorder modifiers"
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / UpdateVnfInfraTest.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 org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;\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.MockGetServiceInstance;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetDefaultCloudRegionByCloudRegionId;\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetPserverByVnfId;\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfsByVnfId;\r
32 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;\r
33 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;\r
34 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;\r
35 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;\r
36 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;\r
37 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSetInMaintFlagByVnfId;\r
38 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.MockGetServiceResourcesCatalogData;\r
39 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;\r
40 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
41 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;\r
42 import static org.openecomp.mso.bpmn.mock.StubResponsePolicy.MockPolicySkip;\r
43 \r
44 import java.io.IOException;\r
45 import java.util.HashMap;\r
46 import java.util.Map;\r
47 import java.util.UUID;\r
48 \r
49 import org.camunda.bpm.engine.test.Deployment;\r
50 import org.junit.Ignore;\r
51 import org.junit.Test;\r
52 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
53 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;\r
54 import org.openecomp.mso.bpmn.mock.FileUtil;\r
55 \r
56 /**\r
57  * Unit test cases for UpdateVnfInfra.bpmn\r
58  */\r
59 public class UpdateVnfInfraTest extends WorkflowTest {\r
60         \r
61         private final CallbackSet callbacks = new CallbackSet();\r
62 \r
63         public UpdateVnfInfraTest() throws IOException {\r
64                 callbacks.put("changeassign", FileUtil.readResourceFile(\r
65                                 "__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));\r
66                 callbacks.put("activate", FileUtil.readResourceFile(\r
67                                 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
68                 callbacks.put("query", FileUtil.readResourceFile(\r
69                                 "__files/VfModularity/SDNCTopologyQueryCallback.xml"));         \r
70                 callbacks.put("vnfUpdate", FileUtil.readResourceFile(\r
71                                 "__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));\r
72         }\r
73         \r
74         /**\r
75          * Sunny day scenario.\r
76          * \r
77          * @throws Exception\r
78          */\r
79         @Test   \r
80         @Ignore // 1802 merge\r
81         @Deployment(resources = {\r
82                 "process/UpdateVnfInfra.bpmn",\r
83                 "subprocess/RollbackVnf.bpmn",\r
84                 "subprocess/DoUpdateVfModule.bpmn",\r
85                 "subprocess/DoUpdateVnfAndModules.bpmn",\r
86                 "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
87                 "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
88                 "subprocess/SDNCAdapterV1.bpmn",\r
89                 "subprocess/VnfAdapterRestV1.bpmn",\r
90                 "subprocess/UpdateAAIGenericVnf.bpmn",\r
91                 "subprocess/UpdateAAIVfModule.bpmn",\r
92                 "subprocess/CompleteMsoProcess.bpmn",\r
93                 "subprocess/FalloutHandler.bpmn",\r
94                 "subprocess/BuildingBlock/DecomposeService.bpmn",\r
95                 "subprocess/BuildingBlock/RainyDayHandler.bpmn",\r
96                 "subprocess/BuildingBlock/ManualHandling.bpmn",\r
97                 "subprocess/BuildingBlock/AppCClient.bpmn"\r
98                 \r
99                 })\r
100         public void sunnyDay() throws Exception {\r
101                                 \r
102                 logStart();\r
103                 \r
104                 MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");\r
105                 MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");\r
106                 //MockGetGenericVnfById_404("testVnfId");\r
107                 MockGetServiceResourcesCatalogData("995256d2-5a33-55df-13ab-12abad84e7ff", "1.0", "VIPR/getCatalogServiceResourcesDataForUpdateVnfInfra.json");\r
108                 MockGetServiceResourcesCatalogData("995256d2-5a33-55df-13ab-12abad84e7ff", "VIPR/getCatalogServiceResourcesDataForUpdateVnfInfra.json");\r
109                 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");\r
110                 MockGetDefaultCloudRegionByCloudRegionId("mdt1", "AAI/AAI_defaultCloudRegionByCloudRegionId.json", 200);\r
111                 MockPutGenericVnf(".*");\r
112                 MockAAIVfModule();\r
113                 MockPatchGenericVnf("skask");\r
114                 MockPatchVfModuleId("skask", ".*");\r
115                 mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");  \r
116                 mockVNFPut("skask", "/supercool", 202);\r
117                 mockVNFPut("skask", "/lukewarm", 202);\r
118                 MockVNFAdapterRestVfModule();\r
119                 MockDBUpdateVfModule(); \r
120                 MockGetPserverByVnfId("skask", "AAI/AAI_pserverByVnfId.json", 200);\r
121                 MockGetGenericVnfsByVnfId("skask", "AAI/AAI_genericVnfsByVnfId.json", 200);\r
122                 MockSetInMaintFlagByVnfId("skask", "AAI/AAI_genericVnfsByVnfId.json", 200);\r
123                 MockPolicySkip();\r
124                 \r
125                 mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");\r
126                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
127                 \r
128                 String businessKey = UUID.randomUUID().toString();\r
129                 String updaetVnfRequest =\r
130                         FileUtil.readResourceFile("__files/InfrastructureFlows/UpdateVnf_VID_request.json");\r
131                 \r
132                 Map<String, Object> variables = setupVariablesSunnyDayVID();\r
133                 \r
134                 \r
135                 TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVnfInfra",\r
136                         "v1", businessKey, updaetVnfRequest, variables);\r
137                 \r
138                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
139                 \r
140                 String responseBody = response.getContent();\r
141                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
142                 \r
143                 injectSDNCCallbacks(callbacks, "changeassign, query");\r
144                 injectVNFRestCallbacks(callbacks, "vnfUpdate");\r
145                 injectSDNCCallbacks(callbacks, "activate");\r
146                 injectSDNCCallbacks(callbacks, "changeassign, query");\r
147                 injectVNFRestCallbacks(callbacks, "vnfUpdate");\r
148                 injectSDNCCallbacks(callbacks, "activate");\r
149                 \r
150                 // TODO add appropriate assertions\r
151 \r
152                 waitForProcessEnd(businessKey, 10000);\r
153                 checkVariable(businessKey, "UpdateVfModuleInfraSuccessIndicator", true);\r
154                 \r
155                 logEnd();\r
156         }\r
157         \r
158         // Active Scenario\r
159         private Map<String, Object> setupVariablesSunnyDayVID() {\r
160                                 Map<String, Object> variables = new HashMap<>();\r
161                                 \r
162                                 variables.put("requestId", "testRequestId");                            \r
163                                 variables.put("isDebugLogEnabled", "true");                             \r
164                                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
165                                 variables.put("vnfId", "skask");\r
166                                 variables.put("vnfType", "vSAMP12");                                    \r
167                                 variables.put("serviceType", "MOG");    \r
168                                                 \r
169                                 return variables;\r
170                                 \r
171                         }\r
172         \r
173 }\r