cbf91bfdb326a2b7e751a754ad81f3a2bb95fc82
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / UpdateVfModuleInfraTest.java
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.MockGetGenericVnfByIdWithDepth;\r
24 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;\r
25 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;\r
26 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;\r
27 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;\r
29 \r
30 import java.io.IOException;\r
31 import java.util.HashMap;\r
32 import java.util.Map;\r
33 import java.util.UUID;\r
34 \r
35 import org.camunda.bpm.engine.test.Deployment;\r
36 import org.junit.Ignore;\r
37 import org.junit.Test;\r
38 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
39 import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;\r
40 import org.openecomp.mso.bpmn.mock.FileUtil;\r
41 \r
42 /**\r
43  * Unit test cases for UpdateVfModule.bpmn\r
44  */\r
45 public class UpdateVfModuleInfraTest extends WorkflowTest {\r
46         \r
47         private final CallbackSet callbacks = new CallbackSet();\r
48 \r
49         public UpdateVfModuleInfraTest() throws IOException {\r
50                 callbacks.put("changeassign", FileUtil.readResourceFile(\r
51                         "__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));\r
52                 callbacks.put("query", FileUtil.readResourceFile(\r
53                         "__files/VfModularity/SDNCTopologyQueryCallback.xml"));\r
54                 callbacks.put("activate", FileUtil.readResourceFile(\r
55                         "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
56                 callbacks.put("vnfUpdate", FileUtil.readResourceFile(\r
57                         "__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));\r
58         }\r
59         \r
60         /**\r
61          * Sunny day scenario.\r
62          * \r
63          * @throws Exception\r
64          */\r
65         @Test\r
66         @Ignore\r
67         @Deployment(resources = {\r
68                 "process/UpdateVfModuleInfra.bpmn",\r
69                 "subprocess/DoUpdateVfModule.bpmn",\r
70                 "subprocess/PrepareUpdateAAIVfModule.bpmn",\r
71                 "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
72                 "subprocess/SDNCAdapterV1.bpmn",\r
73                 "subprocess/VnfAdapterRestV1.bpmn",\r
74                 "subprocess/UpdateAAIGenericVnf.bpmn",\r
75                 "subprocess/UpdateAAIVfModule.bpmn",\r
76                 "subprocess/CompleteMsoProcess.bpmn",\r
77                 "subprocess/FalloutHandler.bpmn"\r
78                 })\r
79         public void sunnyDay() throws Exception {\r
80                                 \r
81                 logStart();\r
82                 \r
83                 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");\r
84                 MockPutVfModuleIdNoResponse("skask", "PCRF", "supercool");\r
85                 MockGetGenericVnfByIdWithPriority("skask", "supercool", 200, "VfModularity/VfModule-supercool.xml", 1);\r
86                 mockSDNCAdapter("/SDNCAdapter", "SvcInstanceId><", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
87                 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
88                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
89                 mockVNFPut("skask", "/supercool", 202);\r
90                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
91                 \r
92                 String businessKey = UUID.randomUUID().toString();\r
93                 String updaetVfModuleRequest =\r
94                         FileUtil.readResourceFile("__files/InfrastructureFlows/UpdateVfModule_VID_request.json");\r
95                 \r
96                 Map<String, Object> variables = setupVariablesSunnyDayVID();\r
97                 \r
98                 \r
99                 TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVfModuleInfra",\r
100                         "v1", businessKey, updaetVfModuleRequest, variables);\r
101                 \r
102                 WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);\r
103                 \r
104                 String responseBody = response.getResponse();\r
105                 System.out.println("Workflow (Synch) Response:\n" + responseBody);\r
106                 \r
107                 injectSDNCCallbacks(callbacks, "changeassign, query");\r
108                 injectVNFRestCallbacks(callbacks, "vnfUpdate");\r
109                 injectSDNCCallbacks(callbacks, "activate");\r
110                 \r
111                 // TODO add appropriate assertions\r
112 \r
113                 waitForProcessEnd(businessKey, 10000);\r
114                 checkVariable(businessKey, "UpdateVfModuleInfraSuccessIndicator", true);\r
115                 \r
116                 logEnd();\r
117         }\r
118         \r
119         // Active Scenario\r
120         private Map<String, Object> setupVariablesSunnyDayVID() {\r
121                                 Map<String, Object> variables = new HashMap<String, Object>();\r
122                                 //try {\r
123                                 //      variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));\r
124                                 //}\r
125                                 //catch (Exception e) {\r
126                                         \r
127                                 //}\r
128                                 //variables.put("mso-request-id", "testRequestId");\r
129                                 variables.put("requestId", "testRequestId");            \r
130                                 variables.put("isBaseVfModule", false);\r
131                                 variables.put("isDebugLogEnabled", "true");\r
132                                 variables.put("recipeTimeout", "0");            \r
133                                 variables.put("requestAction", "UPDATE_VF_MODULE");\r
134                                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
135                                 variables.put("vnfId", "skask");\r
136                                 variables.put("vnfType", "vSAMP12");\r
137                                 variables.put("vfModuleId", "supercool");\r
138                                 variables.put("volumeGroupId", "");                     \r
139                                 variables.put("serviceType", "MOG");    \r
140                                 variables.put("vfModuleType", "");                      \r
141                                 return variables;\r
142                                 \r
143                         }\r
144         \r
145 }\r