Change the header to SO
[so.git] / bpmn / MSOCommonBPMN / src / test / java / org / openecomp / mso / bpmn / common / CreateAAIVfModuleTest.java
1 /*- \r
2  * ============LICENSE_START======================================================= \r
3  * ONAP - SO \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.common;\r
22 \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
29 \r
30 import java.util.HashMap;\r
31 import java.util.Map;\r
32 \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
38 \r
39 /**\r
40  * Unit test for CreateAAIVfModule.bpmn.\r
41  */\r
42 public class CreateAAIVfModuleTest extends WorkflowTest {\r
43         \r
44         @Test   \r
45         @Deployment(resources = {\r
46                         "subprocess/CreateAAIVfModule.bpmn"\r
47                 })\r
48         public void  TestCreateGenericVnfSuccess_200() {\r
49 \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
63                 \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
69         }\r
70 \r
71         @Test   \r
72         @Deployment(resources = {\r
73                         "subprocess/CreateAAIVfModule.bpmn"\r
74                 })\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
95         }\r
96 \r
97         @Test   \r
98         @Deployment(resources = {\r
99                         "subprocess/CreateAAIVfModule.bpmn"\r
100                 })\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
120         }\r
121 \r
122         @Test   \r
123         @Deployment(resources = {\r
124                         "subprocess/CreateAAIVfModule.bpmn"\r
125                 })\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
145         }\r
146 \r
147         @Test   \r
148         @Deployment(resources = {\r
149                         "subprocess/CreateAAIVfModule.bpmn"\r
150                 })\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
170         }\r
171         \r
172         @Test   \r
173         @Deployment(resources = {\r
174                         "subprocess/CreateAAIVfModule.bpmn"\r
175                 })\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
195         }\r
196 \r
197         @Test   \r
198         @Deployment(resources = {\r
199                         "subprocess/CreateAAIVfModule.bpmn"\r
200                 })\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
220         }\r
221 \r
222         @Test   \r
223         @Deployment(resources = {\r
224                         "subprocess/CreateAAIVfModule.bpmn"\r
225                 })\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
245         }\r
246 \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
255                                                 .withStatus(500)\r
256                                                 .withHeader("Content-Type", "text/xml")\r
257                                                 .withBodyFile("aaiFault.xml")));\r
258         }\r
259         \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
269                                                 .withStatus(500)\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
275         }\r
276         \r
277 }