fc4816cef3047670657c3db85000838af84ac89d
[so.git] / bpmn / MSOInfrastructureBPMN / src / test / java / org / openecomp / mso / bpmn / infrastructure / DoCreateVfModuleTest.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 \r
24 import static org.openecomp.mso.bpmn.common.BPMNUtil.getRawVariable;\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.MockPutGenericVnf;\r
28 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;\r
29 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;\r
30 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;\r
31 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;\r
32 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;\r
33 \r
34 import java.io.IOException;\r
35 import java.util.HashMap;\r
36 import java.util.Map;\r
37 import java.util.UUID;\r
38 \r
39 import org.camunda.bpm.engine.test.Deployment;\r
40 import org.junit.Assert;\r
41 import org.junit.Ignore;\r
42 import org.junit.Test;\r
43 import org.openecomp.mso.bpmn.common.WorkflowTest;\r
44 import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;\r
45 import org.openecomp.mso.bpmn.mock.FileUtil;\r
46 \r
47 /**\r
48  * Unit tests for DoCreateVfModuleTest.bpmn.\r
49  */\r
50 public class DoCreateVfModuleTest extends WorkflowTest {\r
51         \r
52         private final CallbackSet callbacks = new CallbackSet();\r
53 \r
54         public DoCreateVfModuleTest() throws IOException {\r
55                 callbacks.put("assign", FileUtil.readResourceFile(\r
56                         "__files/VfModularity/SDNCTopologyAssignCallback.xml"));\r
57                 callbacks.put("query", FileUtil.readResourceFile(\r
58                         "__files/VfModularity/SDNCTopologyQueryCallback.xml"));\r
59                 callbacks.put("activate", FileUtil.readResourceFile(\r
60                         "__files/VfModularity/SDNCTopologyActivateCallback.xml"));\r
61                 callbacks.put("vnfCreate", FileUtil.readResourceFile(\r
62                         "__files/VfModularity/VNFAdapterRestCreateCallback.xml"));\r
63         }\r
64 \r
65         /**\r
66          * Test the sunny day scenario.\r
67          */\r
68         @Test   \r
69         @Ignore\r
70         @Deployment(resources = {\r
71                         "subprocess/DoCreateVfModule.bpmn",\r
72                         "subprocess/SDNCAdapterV1.bpmn",\r
73                         "subprocess/VnfAdapterRestV1.bpmn",\r
74                         "subprocess/ConfirmVolumeGroupTenant.bpmn",\r
75                         "subprocess/ConfirmVolumeGroupName.bpmn",\r
76                         "subprocess/CreateAAIVfModule.bpmn",\r
77                         "subprocess/UpdateAAIVfModule.bpmn",\r
78                         "subprocess/CreateAAIVfModuleVolumeGroup.bpmn",\r
79                         "subprocess/UpdateAAIGenericVnf.bpmn"\r
80                 })\r
81         public void sunnyDay() throws IOException {\r
82                 \r
83                 logStart();\r
84                 \r
85                 MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);\r
86                 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");\r
87                 MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");\r
88                 MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);\r
89                 MockPutGenericVnf("skask");\r
90                 mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
91                 mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");\r
92                 mockVNFPost("", 202, "skask");\r
93                 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");\r
94                 \r
95                 String businessKey = UUID.randomUUID().toString();\r
96                 //RuntimeService runtimeService = processEngineRule.getRuntimeService();                                \r
97                 \r
98                 Map<String, Object> variables = setupVariablesSunnyDayBuildingBlocks();\r
99                 //runtimeService.startProcessInstanceByKey("DoCreateVfModule", variables);\r
100                 invokeSubProcess("DoCreateVfModule", businessKey, variables);\r
101                 \r
102                 injectSDNCCallbacks(callbacks, "assign, query");\r
103                 injectVNFRestCallbacks(callbacks, "vnfCreate");\r
104                 injectSDNCCallbacks(callbacks, "activate");\r
105 \r
106                 waitForProcessEnd(businessKey, 10000);\r
107                 \r
108                 Assert.assertTrue(isProcessEnded(businessKey));\r
109                 Assert.assertTrue((boolean) getRawVariable(processEngineRule, "DoCreateVfModule", "DCVFM_SuccessIndicator"));\r
110                 \r
111                 logEnd();\r
112         }\r
113         \r
114         private Map<String, Object> setupVariablesSunnyDayBuildingBlocks() {\r
115                 Map<String, Object> variables = new HashMap<String, Object>();\r
116                 \r
117                 variables.put("mso-request-id", "testRequestId");\r
118                 variables.put("requestId", "testRequestId");            \r
119                 variables.put("isBaseVfModule", false);\r
120                 variables.put("isDebugLogEnabled", "true");\r
121                 variables.put("disableRollback", "true");\r
122                 //variables.put("recipeTimeout", "0");          \r
123                 //variables.put("requestAction", "CREATE_VF_MODULE");\r
124                 variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");\r
125                 variables.put("vnfId", "skask");\r
126                 variables.put("vfModuleName", "PCRF::module-0-2");\r
127                 variables.put("vnfType", "vSAMP12");\r
128                 variables.put("vfModuleId", "");\r
129                 variables.put("volumeGroupId", "");                     \r
130                 variables.put("serviceType", "MOG");    \r
131                 variables.put("vfModuleType", "");\r
132                 variables.put("isVidRequest", "true");\r
133                 variables.put("asdcServiceModelVersion", "1.0");\r
134                                         \r
135                 String vfModuleModelInfo = "{" + "\"modelInfo\": { "+ "\"modelType\": \"vfModule\"," +\r
136                         "\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + \r
137                         "\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +\r
138                         "\"modelName\": \"STMTN5MMSC21-MMSC::model-1-0\"," +\r
139                         "\"modelVersion\": \"1\"," + \r
140                         "\"modelCustomizationId\": \"MODEL-123\"" + "}}";\r
141                 variables.put("vfModuleModelInfo", vfModuleModelInfo);\r
142                 \r
143                 String cloudConfiguration = "{" + "\"cloudConfiguration\": { " + \r
144                                 "\"lcpCloudRegionId\": \"MDTWNJ21\"," +         \r
145                                 "\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}}";\r
146                 variables.put("cloudConfiguration", cloudConfiguration);\r
147                 return variables;\r
148                 \r
149         }\r
150 }\r