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