2 * ============LICENSE_START=======================================================
\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
11 * http://www.apache.org/licenses/LICENSE-2.0
\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
21 package org.openecomp.mso.bpmn.infrastructure;
\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
34 import java.io.IOException;
\r
35 import java.util.HashMap;
\r
36 import java.util.Map;
\r
37 import java.util.UUID;
\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
48 * Unit tests for DoCreateVfModuleTest.bpmn.
\r
50 public class DoCreateVfModuleTest extends WorkflowTest {
\r
52 private final CallbackSet callbacks = new CallbackSet();
\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
66 * Test the sunny day scenario.
\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
81 public void sunnyDay() throws IOException {
\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
95 String businessKey = UUID.randomUUID().toString();
\r
96 //RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
98 Map<String, Object> variables = setupVariablesSunnyDayBuildingBlocks();
\r
99 //runtimeService.startProcessInstanceByKey("DoCreateVfModule", variables);
\r
100 invokeSubProcess("DoCreateVfModule", businessKey, variables);
\r
102 injectSDNCCallbacks(callbacks, "assign, query");
\r
103 injectVNFRestCallbacks(callbacks, "vnfCreate");
\r
104 injectSDNCCallbacks(callbacks, "activate");
\r
106 waitForProcessEnd(businessKey, 10000);
\r
108 Assert.assertTrue(isProcessEnded(businessKey));
\r
109 Assert.assertTrue((boolean) getRawVariable(processEngineRule, "DoCreateVfModule", "DCVFM_SuccessIndicator"));
\r
114 private Map<String, Object> setupVariablesSunnyDayBuildingBlocks() {
\r
115 Map<String, Object> variables = new HashMap<String, Object>();
\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
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
143 String cloudConfiguration = "{" + "\"cloudConfiguration\": { " +
\r
144 "\"lcpCloudRegionId\": \"MDTWNJ21\"," +
\r
145 "\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}}";
\r
146 variables.put("cloudConfiguration", cloudConfiguration);
\r