1 package org.openecomp.mso.bpmn.infrastructure;
\r
3 import static org.junit.Assert.assertEquals;
\r
4 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockAAIVfModule;
\r
5 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDBUpdateVfModule;
\r
6 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
\r
7 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;
\r
8 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
\r
9 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
\r
10 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;
\r
11 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;
\r
12 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
\r
13 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockSDNCAdapterVfModule;
\r
14 import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
\r
15 import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;
\r
16 import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockVNFAdapterRestVfModule;
\r
17 import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
\r
19 import java.io.IOException;
\r
20 import java.util.HashMap;
\r
21 import java.util.Map;
\r
22 import java.util.UUID;
\r
24 import org.camunda.bpm.engine.test.Deployment;
\r
25 import org.junit.Assert;
\r
26 import org.junit.Ignore;
\r
27 import org.junit.Test;
\r
28 import org.openecomp.mso.bpmn.common.BPMNUtil;
\r
29 import org.openecomp.mso.bpmn.common.WorkflowTest;
\r
30 import org.openecomp.mso.bpmn.core.domain.ModelInfo;
\r
31 import org.openecomp.mso.bpmn.core.domain.ModuleResource;
\r
32 import org.openecomp.mso.bpmn.core.domain.ServiceDecomposition;
\r
33 import org.openecomp.mso.bpmn.core.domain.VnfResource;
\r
34 import org.openecomp.mso.bpmn.mock.FileUtil;
\r
37 * Unit Test for the DoUpdateVnfAndModules Flow
\r
40 public class DoUpdateVnfAndModulesTest extends WorkflowTest {
\r
42 private final CallbackSet callbacks = new CallbackSet();
\r
44 public DoUpdateVnfAndModulesTest() throws IOException {
\r
46 callbacks.put("changeassign", FileUtil.readResourceFile(
\r
47 "__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));
\r
48 callbacks.put("activate", FileUtil.readResourceFile(
\r
49 "__files/VfModularity/SDNCTopologyActivateCallback.xml"));
\r
50 callbacks.put("query", FileUtil.readResourceFile(
\r
51 "__files/VfModularity/SDNCTopologyQueryCallback.xml"));
\r
52 callbacks.put("vnfUpdate", FileUtil.readResourceFile(
\r
53 "__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));
\r
58 @Deployment(resources = {
\r
59 "subprocess/SDNCAdapterV1.bpmn",
\r
60 "subprocess/PrepareUpdateAAIVfModule.bpmn",
\r
61 "subprocess/DoUpdateVfModule.bpmn",
\r
62 "subprocess/DoUpdateVnfAndModules.bpmn",
\r
63 "subprocess/VnfAdapterRestV1.bpmn",
\r
64 "subprocess/ConfirmVolumeGroupTenant.bpmn",
\r
65 "subprocess/UpdateAAIVfModule.bpmn",
\r
66 "subprocess/UpdateAAIGenericVnf.bpmn"})
\r
67 public void testDoUpdateVnfAndModules_success() throws Exception{
\r
69 MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlByIdVipr.xml");
\r
70 MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");
\r
71 //MockGetGenericVnfById_404("testVnfId");
\r
72 MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
\r
73 MockPutGenericVnf(".*");
\r
75 MockPatchGenericVnf("skask");
\r
76 MockPatchVfModuleId("skask", ".*");
\r
77 mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");
\r
78 mockVNFPut("skask", "/supercool", 202);
\r
79 mockVNFPut("skask", "/lukewarm", 202);
\r
80 MockVNFAdapterRestVfModule();
\r
81 MockDBUpdateVfModule();
\r
83 mockSDNCAdapter("VfModularity/StandardSDNCSynchResponse.xml");
\r
84 mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
\r
86 String businessKey = UUID.randomUUID().toString();
\r
87 Map<String, Object> variables = new HashMap<String, Object>();
\r
88 setVariablesSuccess(variables, "", "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
\r
89 invokeSubProcess("DoUpdateVnfAndModules", businessKey, variables);
\r
91 injectSDNCCallbacks(callbacks, "changeassign, query");
\r
92 injectVNFRestCallbacks(callbacks, "vnfUpdate");
\r
93 injectSDNCCallbacks(callbacks, "activate");
\r
94 injectSDNCCallbacks(callbacks, "changeassign, query");
\r
95 injectVNFRestCallbacks(callbacks, "vnfUpdate");
\r
96 injectSDNCCallbacks(callbacks, "activate");
\r
97 waitForProcessEnd(businessKey, 10000);
\r
99 Assert.assertTrue(isProcessEnded(businessKey));
\r
100 assertVariables("2", "200", null);
\r
106 private void assertVariables(String exModuleCount, String exVnfFound, String exWorkflowException) {
\r
108 String moduleCount = BPMNUtil.getVariable(processEngineRule, "DoUpdateVnfAndModules", "DUVAM_moduleCount");
\r
109 String vnfFound = BPMNUtil.getVariable(processEngineRule, "DoUpdateVnfAndModules", "DUVAM_queryAAIVfModuleResponseCode");
\r
110 String workflowException = BPMNUtil.getVariable(processEngineRule, "DoUpdateVnfAndModules", "SavedWorkflowException1");
\r
112 assertEquals(exModuleCount, moduleCount);
\r
113 assertEquals(exVnfFound, vnfFound);
\r
114 assertEquals(exWorkflowException, workflowException);
\r
117 private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {
\r
118 variables.put("isDebugLogEnabled", "true");
\r
119 variables.put("bpmnRequest", request);
\r
120 variables.put("msoRequestUdid", requestId);
\r
121 variables.put("serviceInstanceId",siId);
\r
122 variables.put("testVnfId","testVnfId123");
\r
123 variables.put("vnfType", "STMTN");
\r
127 private void setVariablesSuccess(Map<String, Object> variables, String request, String requestId, String siId) {
\r
128 variables.put("isDebugLogEnabled", "true");
\r
129 variables.put("requestId", requestId);
\r
130 variables.put("msoRequestId", requestId);
\r
131 variables.put("serviceInstanceId",siId);
\r
132 variables.put("disableRollback", "true");
\r
133 //variables.put("testVnfId","testVnfId123");
\r
134 variables.put("vnfType", "STMTN");
\r
135 variables.put("vnfId", "skask");
\r
136 variables.put("tenantId", "88a6ca3ee0394ade9403f075db23167e");
\r
137 variables.put("lcpCloudRegionId", "mdt1");
\r
139 String serviceModelInfo = "{ "+ "\"modelType\": \"service\"," +
\r
140 "\"modelInvariantUuid\": \"995256d2-5a33-55df-13ab-12abad84e7ff\"," +
\r
141 "\"modelUuid\": \"ab6478e5-ea33-3346-ac12-ab121484a3fe\"," +
\r
142 "\"modelName\": \"ServicevSAMP12\"," +
\r
143 "\"modelVersion\": \"1.0\"," +
\r
145 variables.put("serviceModelInfo", serviceModelInfo);
\r
146 variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
\r
147 String vnfModelInfo = "{" + "\"modelType\": \"vnf\"," +
\r
148 "\"modelInvariantUuid\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +
\r
149 "\"modelUuid\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +
\r
150 "\"modelName\": \"vSAMP12\"," +
\r
151 "\"modelVersion\": \"1.0\"," +
\r
152 "\"modelCustomizationUuid\": \"MODEL-ID-1234\"" + "}";
\r
153 variables.put("vnfModelInfo", vnfModelInfo);
\r
155 String cloudConfiguration = "{" + "\"cloudConfiguration\": { " +
\r
156 "\"lcpCloudRegionId\": \"mdt1\"," +
\r
157 "\"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\"" + "}}";
\r
158 variables.put("cloudConfiguration", cloudConfiguration);
\r
159 variables.put("sdncVersion", "1702");
\r
160 variables.put("globalSubscriberId", "subscriber123");
\r
161 variables.put("asdcServiceModelVersion", "serviceVersion01");
\r
164 VnfResource vr = new VnfResource();
\r
165 ModelInfo mvr = new ModelInfo();
\r
166 mvr.setModelName("vSAMP12");
\r
167 mvr.setModelInstanceName("v123");
\r
168 mvr.setModelInvariantUuid("extrovert");
\r
169 mvr.setModelVersion("1.0");
\r
170 mvr.setModelCustomizationUuid("MODEL-ID-1234");
\r
171 vr.setModelInfo(mvr);
\r
172 vr.constructVnfType("vnf1");
\r
173 vr.setNfType("somenftype");
\r
174 vr.setNfRole("somenfrole");
\r
175 vr.setNfFunction("somenffunction");
\r
176 vr.setNfNamingCode("somenamingcode");
\r
177 ModuleResource mr = new ModuleResource();
\r
178 ModelInfo mvmr = new ModelInfo();
\r
179 mvmr.setModelInvariantUuid("introvert");
\r
180 mvmr.setModelName("STMTN5MMSC21-MMSC::model-1-0");
\r
181 mvmr.setModelVersion("1");
\r
182 mvmr.setModelCustomizationUuid("MODEL-123");
\r
183 mr.setModelInfo(mvmr);
\r
184 mr.setIsBase(true);
\r
185 mr.setVfModuleLabel("MODULELABEL");
\r
186 vr.addVfModule(mr);
\r
187 ModuleResource mr1 = new ModuleResource();
\r
188 ModelInfo mvmr1 = new ModelInfo();
\r
189 mvmr1.setModelInvariantUuid("extrovert");
\r
190 mvmr1.setModelName("SECONDMODELNAME");
\r
191 mvmr1.setModelVersion("1");
\r
192 mvmr1.setModelCustomizationUuid("MODEL-123");
\r
193 mr1.setModelInfo(mvmr1);
\r
194 mr1.setIsBase(false);
\r
195 mr1.setVfModuleLabel("MODULELABEL1");
\r
196 vr.addVfModule(mr1);
\r
197 variables.put("vnfResourceDecomposition", vr);
\r
198 variables.put("isTest", true);
\r
199 } catch(Exception e) {
\r