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.common;
\r
23 import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
\r
24 import static com.github.tomakehurst.wiremock.client.WireMock.containing;
\r
25 import static com.github.tomakehurst.wiremock.client.WireMock.put;
\r
26 import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
\r
27 import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
\r
28 import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;
\r
30 import java.util.HashMap;
\r
31 import java.util.Map;
\r
33 import org.camunda.bpm.engine.RuntimeService;
\r
34 import org.camunda.bpm.engine.test.Deployment;
\r
35 import org.junit.Assert;
\r
36 import org.junit.Test;
\r
37 import org.openecomp.mso.bpmn.core.WorkflowException;
\r
40 * Unit test for CreateAAIVfModule.bpmn.
\r
42 public class CreateAAIVfModuleTest extends WorkflowTest {
\r
45 @Deployment(resources = {
\r
46 "subprocess/CreateAAIVfModule.bpmn"
\r
48 public void TestCreateGenericVnfSuccess_200() {
\r
50 MockAAIGenericVnfSearch();
\r
51 MockAAICreateGenericVnf();
\r
52 MockAAIVfModulePUT(true);
\r
53 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
54 Map<String, Object> variables = new HashMap<String, Object>();
\r
55 variables.put("isDebugLogEnabled","true");
\r
56 variables.put("isVidRequest", "false");
\r
57 variables.put("vnfName", "STMTN5MMSC22");
\r
58 variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
\r
59 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
60 variables.put("personaModelVersion", "1.0");
\r
61 variables.put("vfModuleName", "STMTN5MMSC22-MMSC::module-0-0");
\r
62 variables.put("vfModuleModelName", "MMSC::module-0");
\r
64 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
65 String response = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
\r
66 String responseCode = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
\r
67 Assert.assertEquals("201", responseCode);
\r
68 System.out.println(response);
\r
72 @Deployment(resources = {
\r
73 "subprocess/CreateAAIVfModule.bpmn"
\r
75 public void TestCreateVfModuleSuccess_200() {
\r
76 // create Add-on VF Module for existing Generic VNF
\r
77 MockAAIGenericVnfSearch();
\r
78 MockAAICreateGenericVnf();
\r
79 MockAAIVfModulePUT(true);
\r
80 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
81 Map<String, Object> variables = new HashMap<String, Object>();
\r
82 variables.put("isDebugLogEnabled","true");
\r
83 variables.put("isVidRequest", "false");
\r
84 variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
\r
85 variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
\r
86 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
87 variables.put("personaModelVersion", "1.0");
\r
88 variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-1-0");
\r
89 variables.put("vfModuleModelName", "STMTN5MMSC21-MMSC::model-1-0");
\r
90 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
91 String response = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
\r
92 String responseCode = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
\r
93 Assert.assertEquals("201", responseCode);
\r
94 System.out.println(response);
\r
98 @Deployment(resources = {
\r
99 "subprocess/CreateAAIVfModule.bpmn"
\r
101 public void TestQueryGenericVnfFailure_5000() {
\r
102 MockAAIGenericVnfSearch();
\r
103 MockAAICreateGenericVnf();
\r
104 MockAAIVfModulePUT(true);
\r
105 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
106 Map<String, Object> variables = new HashMap<String, Object>();
\r
107 variables.put("isDebugLogEnabled","true");
\r
108 variables.put("isVidRequest", "false");
\r
109 variables.put("vnfName", "STMTN5MMSC23");
\r
110 variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
\r
111 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
112 variables.put("personaModelVersion", "1.0");
\r
113 variables.put("vfModuleName", "STMTN5MMSC23-MMSC::module-0-0");
\r
114 variables.put("vfModuleModelName", "MMSC::module-0");
\r
115 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
116 WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
\r
117 Assert.assertEquals(500, exception.getErrorCode());
\r
118 Assert.assertEquals(true, exception.getErrorMessage().contains("Error occurred attempting to query AAI"));
\r
119 System.out.println(exception.getErrorMessage());
\r
123 @Deployment(resources = {
\r
124 "subprocess/CreateAAIVfModule.bpmn"
\r
126 public void TestCreateDupGenericVnfFailure_1002() {
\r
127 MockAAIGenericVnfSearch();
\r
128 MockAAICreateGenericVnf();
\r
129 MockAAIVfModulePUT(true);
\r
130 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
131 Map<String, Object> variables = new HashMap<String, Object>();
\r
132 variables.put("isDebugLogEnabled","true");
\r
133 variables.put("isVidRequest", "false");
\r
134 variables.put("vnfName", "STMTN5MMSC21");
\r
135 variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
\r
136 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
137 variables.put("personaModelVersion", "1.0");
\r
138 variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-0-0");
\r
139 variables.put("vfModuleModelName", "MMSC::module-0");
\r
140 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
141 WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
\r
142 Assert.assertEquals(1002, exception.getErrorCode());
\r
143 Assert.assertEquals(true, exception.getErrorMessage().contains("Invalid request for new Generic VNF which already exists"));
\r
144 System.out.println(exception.getErrorMessage());
\r
148 @Deployment(resources = {
\r
149 "subprocess/CreateAAIVfModule.bpmn"
\r
151 public void TestCreateDupVfModuleFailure_1002() {
\r
152 MockAAIGenericVnfSearch();
\r
153 MockAAICreateGenericVnf();
\r
154 MockAAIVfModulePUT(true);
\r
155 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
156 Map<String, Object> variables = new HashMap<String, Object>();
\r
157 variables.put("isDebugLogEnabled","true");
\r
158 variables.put("isVidRequest", "false");
\r
159 variables.put("vnfId", "2f6aee38-1e2a-11e6-82d1-ffc7d9ee8aa4");
\r
160 variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
\r
161 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
162 variables.put("personaModelVersion", "1.0");
\r
163 variables.put("vfModuleName", "STMTN5MMSC20-MMSC::module-1-0");
\r
164 variables.put("vfModuleModelName", "STMTN5MMSC20-MMSC::model-1-0");
\r
165 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
166 WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
\r
167 Assert.assertEquals(1002, exception.getErrorCode());
\r
168 Assert.assertEquals(true, exception.getErrorMessage().contains("already exists for Generic VNF"));
\r
169 System.out.println(exception.getErrorMessage());
\r
173 @Deployment(resources = {
\r
174 "subprocess/CreateAAIVfModule.bpmn"
\r
176 public void TestCreateGenericVnfFailure_5000() {
\r
177 MockAAIGenericVnfSearch();
\r
178 MockAAICreateGenericVnf();
\r
179 MockAAIVfModulePUT(true);
\r
180 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
181 Map<String, Object> variables = new HashMap<String, Object>();
\r
182 variables.put("isDebugLogEnabled","true");
\r
183 variables.put("isVidRequest", "false");
\r
184 variables.put("vnfName", "STMTN5MMSC22");
\r
185 variables.put("serviceId", "99999999-9999-9999-9999-999999999999");
\r
186 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
187 variables.put("personaModelVersion", "1.0");
\r
188 variables.put("vfModuleName", "STMTN5MMSC22-PCRF::module-1-0");
\r
189 variables.put("vfModuleModelName", "PCRF::module-0");
\r
190 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
191 WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
\r
192 Assert.assertEquals(5000, exception.getErrorCode());
\r
193 Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
\r
194 System.out.println(exception.getErrorMessage());
\r
198 @Deployment(resources = {
\r
199 "subprocess/CreateAAIVfModule.bpmn"
\r
201 public void TestCreateGenericVnfFailure_1002() {
\r
202 MockAAIGenericVnfSearch();
\r
203 MockAAICreateGenericVnf();
\r
204 MockAAIVfModulePUT(true);
\r
205 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
206 Map<String, Object> variables = new HashMap<String, Object>();
\r
207 variables.put("isDebugLogEnabled","true");
\r
208 variables.put("isVidRequest", "false");
\r
209 variables.put("vnfId", "768073c7-f41f-4822-9323-b75962763d74");
\r
210 variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
\r
211 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
212 variables.put("personaModelVersion", "1.0");
\r
213 variables.put("vfModuleName", "STMTN5MMSC22-PCRF::module-1-0");
\r
214 variables.put("vfModuleModelName", "PCRF::module-0");
\r
215 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
216 WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
\r
217 Assert.assertEquals(1002, exception.getErrorCode());
\r
218 Assert.assertEquals(true, exception.getErrorMessage().contains("Generic VNF Not Found"));
\r
219 System.out.println(exception.getErrorMessage());
\r
223 @Deployment(resources = {
\r
224 "subprocess/CreateAAIVfModule.bpmn"
\r
226 public void TestCreateVfModuleFailure_5000() {
\r
227 MockAAIGenericVnfSearch();
\r
228 MockAAICreateGenericVnf();
\r
229 MockAAIVfModulePUT(true);
\r
230 RuntimeService runtimeService = processEngineRule.getRuntimeService();
\r
231 Map<String, Object> variables = new HashMap<String, Object>();
\r
232 variables.put("isDebugLogEnabled","true");
\r
233 variables.put("isVidRequest", "false");
\r
234 variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
\r
235 variables.put("serviceId", "99999999-9999-9999-9999-999999999999");
\r
236 variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
\r
237 variables.put("personaModelVersion", "1.0");
\r
238 variables.put("vfModuleName", "STMTN5MMSC21-PCRF::module-1-0");
\r
239 variables.put("vfModuleModelName", "STMTN5MMSC21-PCRF::model-1-0");
\r
240 runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
\r
241 WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
\r
242 Assert.assertEquals(5000, exception.getErrorCode());
\r
243 Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
\r
244 System.out.println(exception.getErrorMessage());
\r
247 public static void MockAAICreateGenericVnf(){
\r
248 stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*"))
\r
249 .withRequestBody(containing("<service-id>00000000-0000-0000-0000-000000000000</service-id>"))
\r
250 .willReturn(aResponse()
\r
251 .withStatus(201)));
\r
252 stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*"))
\r
253 .withRequestBody(containing("<service-id>99999999-9999-9999-9999-999999999999</service-id>"))
\r
254 .willReturn(aResponse()
\r
256 .withHeader("Content-Type", "text/xml")
\r
257 .withBodyFile("aaiFault.xml")));
\r
260 // start of mocks used locally and by other VF Module unit tests
\r
261 public static void MockAAIVfModulePUT(boolean isCreate){
\r
262 stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*/vf-modules/vf-module/.*"))
\r
263 .withRequestBody(containing("MMSC"))
\r
264 .willReturn(aResponse()
\r
265 .withStatus(isCreate ? 201 : 200)));
\r
266 stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*/vf-modules/vf-module/.*"))
\r
267 .withRequestBody(containing("PCRF"))
\r
268 .willReturn(aResponse()
\r
270 .withHeader("Content-Type", "text/xml")
\r
271 .withBodyFile("aaiFault.xml")));
\r
272 stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721"))
\r
273 .willReturn(aResponse()
\r
274 .withStatus(200)));
\r