19bb7c86b4652b54fd37074ed8c784eb15e24958
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Modifications Copyright (c) 2019 Samsung
8  * ================================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=========================================================
21  */
22
23 package org.onap.so.bpmn.infrastructure.scripts
24
25 import com.github.tomakehurst.wiremock.client.WireMock
26 import com.github.tomakehurst.wiremock.junit.WireMockRule
27 import org.camunda.bpm.engine.ProcessEngineServices
28 import org.camunda.bpm.engine.RepositoryService
29 import org.camunda.bpm.engine.delegate.BpmnError
30 import org.camunda.bpm.engine.delegate.DelegateExecution
31 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
32 import org.camunda.bpm.engine.repository.ProcessDefinition
33 import org.junit.*
34 import org.junit.runner.RunWith
35 import org.mockito.MockitoAnnotations
36 import org.mockito.junit.MockitoJUnitRunner
37 import org.onap.aai.domain.yang.*
38 import org.onap.so.bpmn.common.scripts.MsoUtils
39 import org.onap.so.bpmn.core.UrnPropertiesReader
40 import org.onap.so.bpmn.core.WorkflowException
41 import org.onap.so.bpmn.mock.FileUtil
42 import org.onap.so.client.aai.entities.AAIResultWrapper
43 import org.springframework.mock.env.MockEnvironment
44
45 import static org.mockito.ArgumentMatchers.eq
46 import static org.mockito.ArgumentMatchers.isA
47 import static org.mockito.ArgumentMatchers.refEq
48 import static org.mockito.Mockito.atLeast
49 import static org.mockito.Mockito.mock
50 import static org.mockito.Mockito.verify
51 import static org.mockito.Mockito.when
52 import static org.onap.so.bpmn.mock.StubResponseAAI.*
53
54 @RunWith(MockitoJUnitRunner.class)
55 class DoUpdateNetworkInstanceTest  {
56
57         @Rule
58         public WireMockRule wireMockRule = new WireMockRule(8090);
59
60                 def utils = new MsoUtils()
61                 String Prefix="UPDNETI_"
62
63                 String jsonIncomingRequest =
64                 """{ "requestDetails": {
65               "modelInfo": {
66                         "modelType": "network",
67                         "modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",
68                         "modelName": "CONTRAIL_EXTERNAL",
69                         "modelVersion": "1.0"
70                   },
71                   "cloudConfiguration": {
72                         "lcpCloudRegionId": "RDM2WAGPLCP",
73                         "tenantId": "7dd5365547234ee8937416c65507d266"
74                   },
75                   "requestInfo": {
76                         "instanceName": "MNS-25180-L-01-dmz_direct_net_1",
77                         "source": "VID",
78                         "callbackUrl": "",
79             "suppressRollback": true,
80                 "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"
81                   },
82                   "relatedInstanceList": [
83                         {
84                         "relatedInstance": {
85                                 "instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",
86                                 "modelInfo": {
87                                         "modelType": "serviceT",
88                                         "modelId": "modelI",
89                                         "modelNameVersionId": "modelNameVersionI",
90                                         "modelName": "modleNam",
91                                         "modelVersion": "1"
92                                 }
93                         }
94                 }
95                   ],
96                   "requestParameters": {
97                         "userParams": [
98                {
99                                  "name": "someUserParam1",
100                                  "value": "someValue1"
101                            }
102             ]
103                   }
104   }}"""
105
106
107                   String jsonIncomingRequest_MissingCloudRegion =
108                 """{ "requestDetails": {
109               "modelInfo": {
110                         "modelType": "network",
111                         "modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422",
112                         "modelName": "CONTRAIL_EXTERNAL",
113                         "modelVersion": "1.0"
114                   },
115                   "cloudConfiguration": {
116                         "tenantId": "7dd5365547234ee8937416c65507d266"
117                   },
118                   "requestInfo": {
119                         "instanceName": "MNS-25180-L-01-dmz_direct_net_1",
120                         "source": "VID",
121                         "callbackUrl": "",
122             "suppressRollback": true,
123                 "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb"
124                   },
125                   "relatedInstanceList": [
126                         {
127                         "relatedInstance": {
128                                 "instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4",
129                                 "modelInfo": {
130                                         "modelType": "serviceT",
131                                         "modelId": "modelI",
132                                         "modelNameVersionId": "modelNameVersionI",
133                                         "modelName": "modleNam",
134                                         "modelVersion": "1"
135                                 }
136                         }
137                 }
138                   ],
139                   "requestParameters": {
140                         "userParams": []
141                   }
142   }}"""
143
144
145
146    String expectedNetworkRequestMissingNetworkId =
147    """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
148    <request-info>
149       <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
150       <action>UPDATE</action>
151       <source>VID</source>
152       <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
153    </request-info>
154    <network-inputs>
155       <network-id/>
156       <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
157       <network-type>CONTRAIL_EXTERNAL</network-type>
158       <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
159       <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
160       <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
161       <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
162       <backout-on-failure>false</backout-on-failure>
163       <sdncVersion>1610</sdncVersion>
164    </network-inputs>
165    <network-params>
166       <param name="some_user_param1">someValue1</param>
167    </network-params>
168 </network-request>"""
169
170
171 String expectedNetworkRequestMissingCloudRegion =
172 """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
173    <request-info>
174       <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
175       <action>UPDATE</action>
176       <source>VID</source>
177       <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
178    </request-info>
179    <network-inputs>
180       <network-id>networkId</network-id>
181       <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
182       <network-type>CONTRAIL_EXTERNAL</network-type>
183       <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
184       <aic-cloud-region>null</aic-cloud-region>
185       <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
186       <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
187       <backout-on-failure>false</backout-on-failure>
188       <sdncVersion>null</sdncVersion>
189    </network-inputs>
190    <network-params/>
191 </network-request>"""
192
193 String expectedNetworkInputMissingCloudRegion =
194 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
195    <network-id>networkId</network-id>
196    <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
197    <network-type>CONTRAIL_EXTERNAL</network-type>
198    <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
199    <aic-cloud-region>null</aic-cloud-region>
200    <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
201    <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
202    <backout-on-failure>false</backout-on-failure>
203    <sdncVersion>null</sdncVersion>
204 </network-inputs>"""
205
206           // expectedNetworkRequest
207           String expectedNetworkRequest =
208   """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
209    <request-info>
210       <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
211       <action>UPDATE</action>
212       <source>VID</source>
213       <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
214    </request-info>
215    <network-inputs>
216       <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
217       <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
218       <network-type>CONTRAIL_EXTERNAL</network-type>
219       <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
220       <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
221       <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
222       <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
223       <backout-on-failure>false</backout-on-failure>
224       <sdncVersion>1610</sdncVersion>
225    </network-inputs>
226    <network-params>
227       <param name="some_user_param1">someValue1</param>
228    </network-params>
229 </network-request>"""
230
231 String expectedNetworkInputs =
232 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
233    <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
234    <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
235    <network-type>CONTRAIL_EXTERNAL</network-type>
236    <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
237    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
238    <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
239    <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
240    <backout-on-failure>false</backout-on-failure>
241    <sdncVersion>1610</sdncVersion>
242 </network-inputs>"""
243
244 String expectedVperNetworkRequest =
245 """<network-request xmlns="http://www.w3.org/2001/XMLSchema">
246    <request-info>
247       <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
248       <action>UPDATE</action>
249       <source>VID</source>
250       <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
251    </request-info>
252    <network-inputs>
253       <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
254       <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
255       <network-type>CONTRAIL_EXTERNAL</network-type>
256       <subscription-service-type>MSO-dev-service-type</subscription-service-type>
257       <global-customer-id>globalId_45678905678</global-customer-id>
258       <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
259       <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
260       <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
261       <backout-on-failure>false</backout-on-failure>
262       <failIfExist>false</failIfExist>
263       <networkModelInfo>
264          <modelName>CONTRAIL_EXTERNAL</modelName>
265          <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>
266          <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>
267          <modelVersion>1</modelVersion>
268          <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>
269       </networkModelInfo>
270       <serviceModelInfo>
271          <modelName/>
272          <modelUuid/>
273          <modelInvariantUuid/>
274          <modelVersion/>
275          <modelCustomizationUuid/>
276       </serviceModelInfo>
277       <sdncVersion>1702</sdncVersion>
278    </network-inputs>
279    <network-params/>
280 </network-request>"""
281
282 String expectedVperNetworkInputs = 
283 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
284    <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
285    <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
286    <network-type>CONTRAIL_EXTERNAL</network-type>
287    <subscription-service-type>MSO-dev-service-type</subscription-service-type>
288    <global-customer-id>globalId_45678905678</global-customer-id>
289    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
290    <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
291    <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
292    <backout-on-failure>false</backout-on-failure>
293    <failIfExist>false</failIfExist>
294    <networkModelInfo>
295       <modelName>CONTRAIL_EXTERNAL</modelName>
296       <modelUuid>sn5256d1-5a33-55df-13ab-12abad84e111</modelUuid>
297       <modelInvariantUuid>sn5256d1-5a33-55df-13ab-12abad84e764</modelInvariantUuid>
298       <modelVersion>1</modelVersion>
299       <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>
300    </networkModelInfo>
301    <serviceModelInfo>
302       <modelName/>
303       <modelUuid/>
304       <modelInvariantUuid/>
305       <modelVersion/>
306       <modelCustomizationUuid/>
307    </serviceModelInfo>
308    <sdncVersion>1702</sdncVersion>
309 </network-inputs>"""
310
311 String expectedNetworkInputsMissingNetworkId =
312 """<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
313    <network-id/>
314    <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
315    <network-type>CONTRAIL_EXTERNAL</network-type>
316    <modelCustomizationId>f21df226-8093-48c3-be7e-0408fcda0422</modelCustomizationId>
317    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
318    <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
319    <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
320    <backout-on-failure>false</backout-on-failure>
321    <sdncVersion>1610</sdncVersion>
322 </network-inputs>"""
323
324
325   String NetworkRequest_noPhysicalName =
326   """<vnfreq:network-request xmlns:vnfreq="http://org.onap/so/infra/vnf-request/v1">
327    <vnfreq:request-info>
328       <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
329       <vnfreq:action>UPDATE</vnfreq:action>
330       <vnfreq:source>PORTAL</vnfreq:source>
331    </vnfreq:request-info>
332    <vnfreq:network-inputs>
333       <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
334       <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
335           <vnfreq:modelCustomizationId></vnfreq:modelCustomizationId>
336       <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
337       <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
338       <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
339       <vnfreq:vlans>3008</vnfreq:vlans>
340    </vnfreq:network-inputs>
341    <vnfreq:network-params>
342    <network-params>
343       <param name="dhcp-enabled">true</param>
344       <param name="serviceId">a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</param>
345       <param name="cidr-mask">true</param>
346           <param name="backoutOnFailure">true</param>
347           <param name="gateway-address">10.10.125.1</param>
348    </network-params>
349    </vnfreq:network-params>
350 </vnfreq:network-request>"""
351
352   String vnfRequestFakeRegion =
353   """<vnfreq:network-request xmlns:vnfreq="http://org.onap/so/infra/vnf-request/v1">
354    <vnfreq:request-info>
355       <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
356       <vnfreq:action>UPDATE</vnfreq:action>
357       <vnfreq:source>PORTAL</vnfreq:source>
358    </vnfreq:request-info>
359    <vnfreq:network-inputs>
360       <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
361       <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
362       <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
363       <vnfreq:aic-cloud-region>MDTWNJ21</vnfreq:aic-cloud-region>
364       <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
365    </vnfreq:network-inputs>
366    <vnfreq:network-params>
367       <param name="shared">1</param>
368       <param name="external">0</param>
369    </vnfreq:network-params>
370 </vnfreq:network-request>"""
371
372
373           String updateNetworkRequest =
374           """<updateNetworkRequest>
375    <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
376    <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
377    <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
378    <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>
379    <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>
380    <networkType>CONTRAIL_EXTERNAL</networkType>
381    <modelCustomizationUuid>sn5256d1-5a33-55df-13ab-12abad84e222</modelCustomizationUuid>
382    <networkTypeVersion/>
383    <networkTechnology>CONTRAIL</networkTechnology>
384    <providerVlanNetwork>
385       <physicalNetworkName>networkName</physicalNetworkName>
386       <vlans>414,415</vlans>
387    </providerVlanNetwork>
388    <contrailNetwork>
389       <shared>true</shared>
390       <external>false</external>
391       <routeTargets>13979:105757</routeTargets>
392       <routeTargets>13979:105757</routeTargets>
393       <policyFqdns>GN_EVPN_Test</policyFqdns>
394       <routeTableFqdns>refFQDN1</routeTableFqdns>
395       <routeTableFqdns>refFQDN2</routeTableFqdns>
396    </contrailNetwork>
397    <subnets>
398       <allocationPools>
399          <start/>
400          <end/>
401       </allocationPools>
402       <cidr>107.239.52.0/24</cidr>
403       <enableDHCP>true</enableDHCP>
404       <gatewayIp>107.239.52.1</gatewayIp>
405       <ipVersion>4</ipVersion>
406       <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
407       <subnetName>subnetName</subnetName>
408       <addrFromStart>true</addrFromStart>
409       <hostRoutes>
410          <prefix>172.20.1.0/24</prefix>
411          <nextHop>10.102.200.1</nextHop>
412       </hostRoutes>
413       <hostRoutes>
414          <prefix>10.102.0.0/16</prefix>
415          <nextHop>10.102.200.1</nextHop>
416       </hostRoutes>
417       <hostRoutes>
418          <prefix>192.168.2.0/25</prefix>
419          <nextHop>10.102.200.1</nextHop>
420       </hostRoutes>
421    </subnets>
422    <skipAAI>true</skipAAI>
423    <backout>true</backout>
424    <failIfExists>false</failIfExists>
425    <msoRequest>
426       <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
427       <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>
428    </msoRequest>
429    <messageId>messageId_generated</messageId>
430    <notificationUrl/>
431 </updateNetworkRequest>"""
432
433 String updateNetworkRequest_noPhysicalName =
434 """<updateNetworkRequest>
435    <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
436    <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
437    <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
438    <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>
439    <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>
440    <networkType>CONTRAIL_EXTERNAL</networkType>
441    <modelCustomizationUuid/>
442    <networkTypeVersion/>
443    <networkTechnology>CONTRAIL</networkTechnology>
444    <providerVlanNetwork>
445       <physicalNetworkName>networkName</physicalNetworkName>
446       <vlans>414,415</vlans>
447    </providerVlanNetwork>
448    <contrailNetwork>
449       <shared>true</shared>
450       <external>false</external>
451       <routeTargets>13979:105757</routeTargets>
452       <routeTargets>13979:105757</routeTargets>
453       <policyFqdns>GN_EVPN_Test</policyFqdns>
454    </contrailNetwork>
455    <subnets>
456       <allocationPools>
457          <start/>
458          <end/>
459       </allocationPools>
460       <cidr>107.239.52.0/24</cidr>
461       <enableDHCP>true</enableDHCP>
462       <gatewayIp>107.239.52.1</gatewayIp>
463       <ipVersion>4</ipVersion>
464       <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
465       <subnetName>subnetName</subnetName>
466       <addrFromStart>true</addrFromStart>
467       <hostRoutes>
468          <prefix>172.20.1.0/24</prefix>
469          <nextHop>10.102.200.1</nextHop>
470       </hostRoutes>
471       <hostRoutes>
472          <prefix>10.102.0.0/16</prefix>
473          <nextHop>10.102.200.1</nextHop>
474       </hostRoutes>
475       <hostRoutes>
476          <prefix>192.168.2.0/25</prefix>
477          <nextHop>10.102.200.1</nextHop>
478       </hostRoutes>
479    </subnets>
480    <skipAAI>true</skipAAI>
481    <backout>true</backout>
482    <failIfExists>false</failIfExists>
483    <networkParams>
484       <dhcp-enabled>true</dhcp-enabled>
485       <serviceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceId>
486       <cidr-mask>true</cidr-mask>
487       <backoutOnFailure>true</backoutOnFailure>
488       <gateway-address>10.10.125.1</gateway-address>
489    </networkParams>
490    <msoRequest>
491       <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
492       <serviceInstanceId>null</serviceInstanceId>
493    </msoRequest>
494    <messageId>messageId_generated</messageId>
495    <notificationUrl/>
496 </updateNetworkRequest>"""
497
498           String updateNetworkResponseREST =
499   """<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.onap.so/network">
500         <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
501         <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
502     <networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>
503         <networkStackId></networkStackId>
504         <subnetMap>
505                 <entry>
506                         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
507                         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
508                 </entry>
509                 <entry>
510                         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
511                         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
512                 </entry>
513         </subnetMap>
514         <rollback>
515                 <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
516                 <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
517                 <networkStackId></networkStackId>
518                 <networkType>CONTRAIL_EXTERNAL</networkType>
519                 <networkUpdated>true</networkUpdated>
520                 <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
521                 <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
522                 <msoRequest>
523                         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
524                         <serviceInstanceId></serviceInstanceId>
525                 </msoRequest>
526         </rollback>
527         <messageId>messageId_generated</messageId>
528 </ns2:updateNetworkContrailResponse>"""
529
530           String updateRollbackNetworkRequest =
531           """<rollbackNetworkRequest>
532    <networkRollback>
533       <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
534       <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
535       <networkStackId/>
536       <networkType>CONTRAIL_EXTERNAL</networkType>
537       <networkUpdated>true</networkUpdated>
538       <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
539       <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
540       <msoRequest>
541          <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
542          <serviceInstanceId/>
543       </msoRequest>
544    </networkRollback>
545 </rollbackNetworkRequest>"""
546
547
548   String networkException500 =
549   """<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:VersionMismatch</faultcode><faultstring>"http://org.onap.so/network", the namespace on the "updateNetworkContrail" element, is not a valid SOAP version.</faultstring></soap:Fault></soap:Body></soap:Envelope>"""
550
551         String changeAssignSDNCRequest =
552     """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
553                                   xmlns:ns5="http://org.onap/so/request/types/v1"
554                                   xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
555    <sdncadapter:RequestHeader>
556       <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
557       <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
558       <sdncadapter:SvcAction>changeassign</sdncadapter:SvcAction>
559       <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
560       <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
561    </sdncadapter:RequestHeader>
562    <aetgt:SDNCRequestData>
563       <request-information>
564          <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
565          <request-action>NetworkActivateRequest</request-action>
566          <source>VID</source>
567          <notification-url/>
568          <order-number/>
569          <order-version/>
570       </request-information>
571       <service-information>
572          <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
573          <service-type>MSO-dev-service-type</service-type>
574          <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
575          <subscriber-name>MSO_1610_dev</subscriber-name>
576       </service-information>
577       <network-request-information>
578          <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
579          <network-type>CONTRAIL30_BASIC</network-type>
580          <network-name>vprobes_pktinternal_net_4_1806</network-name>
581          <tenant>7dd5365547234ee8937416c65507d266</tenant>
582          <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
583       </network-request-information>
584    </aetgt:SDNCRequestData>
585 </aetgt:SDNCAdapterWorkflowRequest>"""
586
587 String assignResponse =
588 """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1" xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <sdncadapterworkflow:response-data> <tag0:CallbackHeader> <tag0:RequestId>006927ca-f5a3-47fd-880c-dfcbcd81a093</tag0:RequestId> <tag0:ResponseCode>200</tag0:ResponseCode> <tag0:ResponseMessage>OK</tag0:ResponseMessage> </tag0:CallbackHeader> <tag0:RequestData xsi:type="xs:string"><output xmlns="com:att:sdnctl:vnf"><response-code>200</response-code><svc-request-id>006927ca-f5a3-47fd-880c-dfcbcd81a093</svc-request-id><ack-final-indicator>Y</ack-final-indicator><service-information><subscriber-name>notsurewecare</subscriber-name><service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id><service-instance-id>GN_EVPN_direct_net_0_ST_noGW</service-instance-id></service-information><network-information><network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id></network-information></output></tag0:RequestData> </sdncadapterworkflow:response-data> </sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
589
590   String sdncRollbackRequest =
591                           """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
592                                   xmlns:ns5="http://org.onap/so/request/types/v1"
593                                   xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
594    <sdncadapter:RequestHeader>
595       <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
596       <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
597       <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>
598       <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
599       <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
600    </sdncadapter:RequestHeader>
601    <aetgt:SDNCRequestData>
602       <request-information>
603          <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
604          <request-action>NetworkActivateRequest</request-action>
605          <source>VID</source>
606          <notification-url/>
607          <order-number/>
608          <order-version/>
609       </request-information>
610       <service-information>
611          <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
612          <service-type>MSO-dev-service-type</service-type>
613          <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
614          <subscriber-name>MSO_1610_dev</subscriber-name>
615       </service-information>
616       <network-request-information>
617          <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
618          <network-type>CONTRAIL_EXTERNAL</network-type>
619          <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
620          <tenant>7dd5365547234ee8937416c65507d266</tenant>
621          <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
622       </network-request-information>
623    </aetgt:SDNCRequestData>
624 </aetgt:SDNCAdapterWorkflowRequest>"""
625
626            String sdncAdapterWorkflowResponse =
627           """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
628                                    xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1">
629    <sdncadapterworkflow:response-data>
630 <tag0:CallbackHeader xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
631    <tag0:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</tag0:RequestId>
632    <tag0:ResponseCode>200</tag0:ResponseCode>
633    <tag0:ResponseMessage>OK</tag0:ResponseMessage>
634 </tag0:CallbackHeader>
635    <tag0:RequestData xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
636                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
637                   xsi:type="xs:string">&lt;output xmlns="com:att:sdnctl:vnf"&gt;&lt;svc-request-id&gt;00703dc8-71ff-442d-a4a8-3adc5beef6a9&lt;/svc-request-id&gt;&lt;response-code&gt;200&lt;/response-code&gt;&lt;ack-final-indicator&gt;Y&lt;/ack-final-indicator&gt;&lt;network-information&gt;&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;/network-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;</tag0:RequestData>
638    </sdncadapterworkflow:response-data>
639 </aetgt:SDNCAdapterWorkflowResponse>"""
640
641
642           String sdncAdapterWorkflowResponse_Error =
643           """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.onap/so/workflow/schema/v1"
644                                                  xmlns:tag0="http://org.onap.so/workflow/sdnc/adapter/schema/v1"
645                                                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
646                                                  xmlns="com:att:sdnctl:vnf">
647    <sdncadapterworkflow:response-data>
648       <tag0:RequestData xsi:type="xs:string">
649          <output>
650             <response-code>400</response-code>
651             <response-message>Error writing to l3-netework</response-message>
652             <ack-final-indicator>Y</ack-final-indicator>
653             <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>
654          </output>
655       </tag0:RequestData>
656    </sdncadapterworkflow:response-data>
657 </sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
658
659
660 String rollbackSDNCRequest =
661 """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://org.onap/so/workflow/schema/v1"
662                                   xmlns:ns5="http://org.onap/so/request/types/v1"
663                                   xmlns:sdncadapter="http://org.onap.so/workflow/sdnc/adapter/schema/v1">
664    <sdncadapter:RequestHeader>
665       <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
666       <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
667       <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>
668       <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
669       <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
670    </sdncadapter:RequestHeader>
671    <aetgt:SDNCRequestData>
672       <request-information>
673          <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
674          <request-action>CreateNetworkInstance</request-action>
675          <source>VID</source>
676          <notification-url/>
677          <order-number/>
678          <order-version/>
679       </request-information>
680       <service-information>
681          <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
682          <service-type>MSO-dev-service-type</service-type>
683          <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
684          <subscriber-name>MSO_1610_dev</subscriber-name>
685       </service-information>
686       <network-information>
687          <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
688          <network-type>CONTRAIL_EXTERNAL</network-type>
689          <onap-model-information>
690             <model-invariant-uuid>invariant-uuid</model-invariant-uuid>
691             <model-customization-uuid>customization-uuid</model-customization-uuid>
692             <model-uuid>uuid</model-uuid>
693             <model-version>version</model-version>
694             <model-name>CONTRAIL_EXTERNAL</model-name>
695          </onap-model-information>
696       </network-information>
697       <network-request-information>
698          <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
699          <network-type>CONTRAIL_EXTERNAL</network-type>
700          <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
701          <tenant>7dd5365547234ee8937416c65507d266</tenant>
702          <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
703       </network-request-information>
704    </aetgt:SDNCRequestData>
705 </aetgt:SDNCAdapterWorkflowRequest>"""
706
707 String rollbackNetworkRequest =
708 """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.onap.so/network">
709    <rollback>
710       <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
711       <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
712       <networkStackId/>
713       <networkType>CONTRAIL_EXTERNAL</networkType>
714       <networkCreated>true</networkCreated>
715       <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
716       <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
717       <msoRequest>
718          <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
719          <serviceInstanceId/>
720       </msoRequest>
721    </rollback>
722 </NetworkAdapter:rollbackNetwork>"""
723
724 // - - - - - - - -
725
726
727     @BeforeClass
728     static void initEnv() {
729         MockEnvironment mockEnvironment = mock(MockEnvironment.class)
730         when(mockEnvironment.getProperty("mso.workflow.global.default.aai.version")).thenReturn("14")
731         when(mockEnvironment.getProperty("mso.workflow.global.default.aai.namespace")).thenReturn("defaultTestNamespace")
732         when(mockEnvironment.getProperty("aai.endpoint")).thenReturn("http://localhost:8090")
733         UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader()
734         urnPropertiesReader.setEnvironment(mockEnvironment)
735     }
736
737     @AfterClass
738     static void cleanupEnv() {
739         UrnPropertiesReader urnPropertiesReader = new UrnPropertiesReader()
740         urnPropertiesReader.setEnvironment(null)
741     }
742
743             @Before
744                 public void init()
745                 {
746                         MockitoAnnotations.initMocks(this)
747                 }
748
749                 public void initializeVariables (DelegateExecution mockExecution) {
750
751                         verify(mockExecution).setVariable(Prefix + "messageId", "")
752                         verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "")
753                         verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "")
754                         verify(mockExecution).setVariable(Prefix + "networkRequest", "")
755                         verify(mockExecution).setVariable(Prefix + "networkInputs", "")
756                         verify(mockExecution).setVariable(Prefix + "networkOutputs", "")
757                         verify(mockExecution).setVariable(Prefix + "requestId", "")
758                         verify(mockExecution).setVariable(Prefix + "source", "")
759                         verify(mockExecution).setVariable(Prefix + "networkId", "")
760
761                         verify(mockExecution).setVariable(Prefix + "isPONR", false)
762
763                         // AAI query Cloud Region
764                         verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest","")
765                         verify(mockExecution).setVariable(Prefix + "queryCloudRegionReturnCode","")
766                         verify(mockExecution).setVariable(Prefix + "queryCloudRegionResponse","")
767                         verify(mockExecution).setVariable(Prefix + "cloudRegionPo","")
768                         verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc","")
769                         verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", false)
770
771                         // AAI query Id
772                         verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest","")
773                         verify(mockExecution).setVariable(Prefix + "queryIdAAIResponse", "")
774                         verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "")
775
776                         // AAI query vpn binding
777                         verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest","")
778                         verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", "")
779                         verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "")
780                         verify(mockExecution).setVariable(Prefix + "vpnBindings", null)
781                         verify(mockExecution).setVariable(Prefix + "vpnCount", 0)
782                         verify(mockExecution).setVariable(Prefix + "routeCollection", "")
783
784                         // AAI query network policy
785                         verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest","")
786                         verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse", "")
787                         verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "")
788                         verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", null)
789                         verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0)
790                         verify(mockExecution).setVariable(Prefix + "networkCollection", "")
791
792                         // AAI query route table reference
793                         verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest","")
794                         verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse", "")
795                         verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "")
796                         verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", null)
797                         verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0)
798                         verify(mockExecution).setVariable(Prefix + "tableRefCollection", "")
799
800
801                         // AAI requery Id
802                         verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest","")
803                         verify(mockExecution).setVariable(Prefix + "requeryIdAAIResponse", "")
804                         verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "")
805
806                         // AAI update contrail
807                         verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest","")
808                         verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest","")
809                         verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", "")
810                         verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "")
811
812                         verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", "")
813                         verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", "")
814                         verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "")
815                         //verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "")
816                         verify(mockExecution).setVariable(Prefix + "networkReturnCode", "")
817                         //verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "")
818                         verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", false)
819
820                         verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", "")
821                         verify(mockExecution).setVariable(Prefix + "changeAssignSDNCResponse", "")
822                         verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "")
823                         //verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "")
824                         verify(mockExecution).setVariable(Prefix + "sdncReturnCode", "")
825                         //verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "")
826                         verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", false)
827                         verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)
828
829                         verify(mockExecution).setVariable(Prefix + "isVnfBindingPresent", false)
830                         verify(mockExecution).setVariable(Prefix + "Success", false)
831                         verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "")
832
833                         verify(mockExecution).setVariable(Prefix + "isException", false)
834
835                 }
836
837     @Test
838     public void preProcessRequest_NetworkRequest() {
839
840         println "************ preProcessRequest_Payload ************* "
841         ExecutionEntity mockExecution = setupMock()
842         // Initialize prerequisite variables
843         when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
844         when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")
845         when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
846         when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")
847         when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)
848         when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")
849         when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
850         when(mockExecution.getVariable("mso.adapters.po.auth")).
851                 thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C")
852         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
853
854
855         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
856         DoUpdateNetworkInstance.preProcessRequest(mockExecution)
857
858         verify(mockExecution).setVariable("prefix", Prefix + "")
859
860         //verify variable initialization
861         initializeVariables(mockExecution)
862
863         // Authentications
864         verify(mockExecution).setVariable("action", "UPDATE")
865         verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequest)
866         verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
867         verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputs)
868         verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
869         verify(mockExecution).setVariable(Prefix + "source", "VID")
870         verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic dGVzdDp0ZXN0")
871         verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic dGVzdDp0ZXN0")
872         verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4")
873         verify(mockExecution).setVariable(Prefix + "networkOutputs", """<network-outputs>
874 \t                   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
875 \t                   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
876 \t                 </network-outputs>""")
877         verify(mockExecution).setVariable(Prefix + "networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4")
878         verify(mockExecution).setVariable(Prefix + "networkName", "MNS-25180-L-01-dmz_direct_net_1")
879     }
880
881     @Test
882     public void preProcessRequest_vPERNetworkRequest() {
883
884         String networkModelInfo = """{"modelUuid": "sn5256d1-5a33-55df-13ab-12abad84e111",
885                                      "modelName": "CONTRAIL_EXTERNAL",
886                                      "modelType": "CONTRAIL_EXTERNAL",
887                                      "modelVersion": "1",
888                                      "modelCustomizationUuid": "sn5256d1-5a33-55df-13ab-12abad84e222",
889                                      "modelInvariantUuid": "sn5256d1-5a33-55df-13ab-12abad84e764"
890                                     }""".trim()
891
892         println "************ preProcessRequest_Payload ************* "
893
894         ExecutionEntity mockExecution = setupMock()
895
896         // Initialize prerequisite variables
897         when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
898         when(mockExecution.getVariable("action")).thenReturn("UPDATE")
899
900         when(mockExecution.getVariable("disableRollback")).thenReturn("true")
901         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
902         when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
903         when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")     // optional
904         when(mockExecution.getVariable("networkName")).thenReturn("MNS-25180-L-01-dmz_direct_net_1")        // optional
905         when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb")
906         when(mockExecution.getVariable("networkModelInfo")).thenReturn("CONTRAIL_EXTERNAL")
907         when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RDM2WAGPLCP")
908         when(mockExecution.getVariable("tenantId")).thenReturn("7dd5365547234ee8937416c65507d266")
909         when(mockExecution.getVariable("failIfExists")).thenReturn("false")
910         when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo)
911         when(mockExecution.getVariable("sdncVersion")).thenReturn("1702")
912
913         when(mockExecution.getVariable("subscriptionServiceType")).thenReturn("MSO-dev-service-type")
914         when(mockExecution.getVariable("globalSubscriberId")).thenReturn("globalId_45678905678")
915         when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
916
917         when(mockExecution.getVariable("mso.adapters.po.auth")).
918                 thenReturn("5E12ACACBD552A415E081E29F2C4772F9835792A51C766CCFDD7433DB5220B59969CB2798C")
919         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
920
921         when(mockExecution.getVariable("mso.rollback")).thenReturn("true")
922         when(mockExecution.getVariable("mso.adapters.sdnc.endpoint")).
923                 thenReturn("http://localhost:8090/SDNCAdapter")
924         when(mockExecution.getVariable("mso.adapters.network.rest.endpoint")).
925                 thenReturn("http://localhost:8090/networks/NetworkAdapter")
926         when(mockExecution.getVariable("mso.adapters.sdnc.resource.endpoint")).
927                 thenReturn("http://localhost:8090/SDNCAdapterRpc")
928
929         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
930         DoUpdateNetworkInstance.preProcessRequest(mockExecution)
931
932         verify(mockExecution).setVariable("prefix", Prefix + "")
933
934         //verify variable initialization
935         initializeVariables(mockExecution)
936
937         // Authentications
938         verify(mockExecution).setVariable("action", "UPDATE")
939         verify(mockExecution).setVariable(Prefix + "networkRequest", expectedVperNetworkRequest)
940         verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
941         verify(mockExecution).setVariable(Prefix + "networkInputs", expectedVperNetworkInputs)
942         verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
943         verify(mockExecution).setVariable(Prefix + "source", "VID")
944         verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic dGVzdDp0ZXN0")
945         verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic dGVzdDp0ZXN0")
946         verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4")
947         verify(mockExecution).setVariable(eq(Prefix + "networkOutputs"), eq("""<network-outputs>
948 \t                   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
949 \t                   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
950 \t                 </network-outputs>"""))
951
952         verify(mockExecution).setVariable(Prefix + "networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4")
953         verify(mockExecution).setVariable(Prefix + "networkName", "MNS-25180-L-01-dmz_direct_net_1")
954     }
955
956     @Test
957                 //@Ignore
958                 public void preProcessRequest_MissingNetworkId() {
959
960                         println "************ preProcessRequest_MissingName() ************* "
961
962                         WorkflowException missingNameWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Variable 'network-id' value/element is missing.")
963
964                         ExecutionEntity mockExecution = setupMock()
965                         // Initialize prerequisite variables
966                         when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
967                         when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
968                         when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)
969                         when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)
970                         when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")
971                         when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
972                         when(mockExecution.getVariable("vnfId")).thenReturn("")
973                         when(mockExecution.getVariable("volumeGroupId")).thenReturn("")
974                         //when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4")
975                         when(mockExecution.getVariable("serviceType")).thenReturn("MOG")
976                         when(mockExecution.getVariable("networkType")).thenReturn("modelName")
977                         when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest)
978                         when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")
979
980                         when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
981                         when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
982                         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
983                         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
984                         when(mockExecution.getVariable("mso.rollback")).thenReturn("true")
985                         when(mockExecution.getVariable("disableRollback")).thenReturn("true")
986
987                         // preProcessRequest(DelegateExecution execution)
988                         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
989                         try {
990                                 DoUpdateNetworkInstance.preProcessRequest(mockExecution)
991                         } catch (Exception ex) {
992                                 println " Test End - Handle catch-throw BpmnError()! "
993                         }
994
995                         verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled")
996                         verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
997
998                         //verify variable initialization
999                         initializeVariables(mockExecution)
1000
1001                         verify(mockExecution).setVariable("action", "UPDATE")
1002                         verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingNetworkId)
1003                         verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
1004                         verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputsMissingNetworkId)
1005                         verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1006                         verify(mockExecution).setVariable(Prefix + "source", "VID")
1007                         verify(mockExecution).setVariable(Prefix + "networkOutputs", "")
1008
1009                         verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingNameWorkflowException))
1010
1011                 }
1012
1013                 @Test
1014                 //@Ignore
1015                 public void preProcessRequest_MissingCloudRegion() {
1016
1017                         println "************ preProcessRequest_MissingCloudRegion() ************* "
1018
1019                         WorkflowException missingCloudRegionWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "requestDetails has missing 'aic-cloud-region' value/element.")
1020
1021                         ExecutionEntity mockExecution = setupMock()
1022                         // Initialize prerequisite variables
1023                         when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1024                         when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1025                         when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true)
1026                         when(mockExecution.getVariable("recipeTimeout")).thenReturn(0)
1027                         when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE")
1028                         when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
1029                         when(mockExecution.getVariable("vnfId")).thenReturn("")
1030                         when(mockExecution.getVariable("volumeGroupId")).thenReturn("")
1031                         when(mockExecution.getVariable("networkId")).thenReturn("networkId")
1032                         when(mockExecution.getVariable("serviceType")).thenReturn("MOG")
1033                         when(mockExecution.getVariable("networkType")).thenReturn("modelName")
1034
1035                         when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest_MissingCloudRegion)
1036                         when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1037                         when(mockExecution.getVariable("mso.adapters.po.auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
1038                         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1039                         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1040                         when(mockExecution.getVariable("mso.rollback")).thenReturn("true")
1041                         when(mockExecution.getVariable("disableRollback")).thenReturn("true")
1042
1043                         // preProcessRequest(DelegateExecution execution)
1044                         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1045                         try {
1046                                 DoUpdateNetworkInstance.preProcessRequest(mockExecution)
1047                         } catch (Exception ex) {
1048                                 println " Test End - Handle catch-throw BpmnError()! "
1049                         }
1050                         // check the sequence of variable invocation
1051                         //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
1052                         //preDebugger.printInvocations(mockExecution)
1053
1054                         verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled")
1055                         verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1056
1057                         //verify variable initialization
1058                         initializeVariables(mockExecution)
1059
1060                         verify(mockExecution).setVariable("action", "UPDATE")
1061                         verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingCloudRegion)
1062                         verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false)
1063                         verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputMissingCloudRegion)
1064                         verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1065                         verify(mockExecution).setVariable(Prefix + "source", "VID")
1066
1067                         verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingCloudRegionWorkflowException))
1068
1069                 }
1070
1071     @Test
1072     public void prepareUpdateNetworkRequest() {
1073
1074         println "************ prepareNetworkRequest ************* "
1075         ExecutionEntity mockExecution = setupMock()
1076         // Initialize prerequisite variables
1077         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedVperNetworkRequest)
1078         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(getContrailL3Network())
1079         when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")
1080         when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")
1081         when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")
1082         when(mockExecution.getVariable(Prefix + "routeCollection")).
1083                 thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")
1084         when(mockExecution.getVariable(Prefix + "networkCollection")).
1085                 thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")
1086         when(mockExecution.getVariable(Prefix + "tableRefCollection")).
1087                 thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")
1088         when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1089         when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")
1090
1091         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1092         DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution)
1093
1094         verify(mockExecution).setVariable("prefix", Prefix + "")
1095         verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest)
1096     }
1097
1098
1099     @Test
1100     public void prepareUpdateNetworkRequest_NoPhysicalname() {
1101
1102         println "************ prepareNetworkRequest ************* "
1103         ExecutionEntity mockExecution = setupMock()
1104         // Initialize prerequisite variables
1105         when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1106         when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated")
1107         when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID")
1108
1109         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(NetworkRequest_noPhysicalName)
1110         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).
1111                 thenReturn(getContrailL3Network())
1112         when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP")
1113         when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true")
1114
1115         when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")
1116         when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")
1117         when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("")
1118
1119         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1120         DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution)
1121
1122         // verify set prefix = Prefix + ""
1123         verify(mockExecution).setVariable("prefix", Prefix + "")
1124         verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest_noPhysicalName)
1125     }
1126
1127     @Test
1128     public void prepareSDNCRequest() {
1129
1130         println "************ prepareSDNCRequest ************* "
1131
1132         ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1133         // Initialize prerequisite variables
1134         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1135         when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")
1136         when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
1137         when(mockExecution.getVariable(Prefix + "queryIdAAIResponse")).thenReturn(
1138                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1139         when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1140         when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1141         when(mockExecution.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")
1142         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1143         when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn(
1144                 "https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")
1145
1146         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1147         DoUpdateNetworkInstance.prepareSDNCRequest(mockExecution)
1148
1149         // verify set prefix = Prefix + ""
1150         verify(mockExecution).setVariable("prefix", Prefix + "")
1151         verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", changeAssignSDNCRequest)
1152     }
1153
1154                 @Test
1155                 //@Ignore
1156                 public void prepareSDNCRollbackRequest() {
1157
1158                         println "************ prepareSDNCRollbackRequest ************* "
1159
1160
1161
1162                         ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1163                         // Initialize prerequisite variables
1164                         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1165                         when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")
1166                         when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
1167                         when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(assignResponse)
1168                         when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1169                         when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
1170                         when(mockExecution.getVariable("mso.workflow.sdncadapter.callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback")
1171                         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1172                         when(mockExecution.getVariable("GENGSI_siResourceLink")).thenReturn("https://aai-int1.test.com:8443/aai/v8/business/customers/customer/MSO_1610_dev/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/6d4eb22a-82f1-4257-9f80-4176262cfe69/")
1173
1174                         // preProcessRequest(DelegateExecution execution)
1175                         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1176                         DoUpdateNetworkInstance.prepareSDNCRollbackRequest(mockExecution)
1177
1178                         // verify set prefix = Prefix + ""
1179                         verify(mockExecution).setVariable("prefix", Prefix + "")
1180                         verify(mockExecution).setVariable(Prefix + "WorkflowException", null)
1181                         verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", sdncRollbackRequest)
1182
1183                 }
1184
1185     @Test
1186     public void callRESTQueryAAINetworkId_200() {
1187
1188         println "************ callRESTQueryAAINetworkId ************* "
1189
1190         WireMock.reset();
1191         MockGetNetworkByIdWithDepth(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4",
1192                 "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1");
1193
1194         ExecutionEntity mockExecution = setupMock()
1195         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1196
1197         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1198         DoUpdateNetworkInstance.callRESTQueryAAINetworkId(mockExecution)
1199
1200         verify(mockExecution).setVariable("prefix", Prefix)
1201         verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "200")
1202         verify(mockExecution).setVariable(eq(Prefix + "queryIdAAIResponse"), isA(AAIResultWrapper.class))
1203     }
1204
1205     @Test
1206     public void callRESTQueryAAICloudRegion30_200() {
1207
1208         println "************ callRESTQueryAAICloudRegion30_200 ************* "
1209
1210         WireMock.reset();
1211         MockGetNetworkCloudRegion(wireMockRule, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml", "RDM2WAGPLCP");
1212
1213         ExecutionEntity mockExecution = setupMock()
1214         when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1215         when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)
1216         when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:8090")
1217         when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("8")
1218         when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).
1219                 thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner")
1220         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1221         when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
1222         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1223         when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
1224
1225         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1226         DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)
1227
1228         verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1229         verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200")
1230         verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)
1231     }
1232
1233     @Test
1234     public void callRESTQueryAAICloudRegion25_200() {
1235
1236         println "************ callRESTQueryAAICloudRegion25_200 ************* "
1237
1238         WireMock.reset();
1239         MockGetNetworkCloudRegion(wireMockRule, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP");
1240
1241         ExecutionEntity mockExecution = setupMock()
1242         when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1243         when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest)
1244         when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:8090")
1245         when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("8")
1246         when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).
1247                 thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner")
1248         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1249         when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
1250         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1251         when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
1252
1253         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1254         DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)
1255
1256         verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1257         verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)
1258     }
1259
1260     @Test
1261     public void callRESTQueryAAICloudRegion_NotFound() {
1262
1263         println "************ callRESTQueryAAICloudRegionFake ************* "
1264
1265         WireMock.reset();
1266         MockGetNetworkCloudRegion_404(wireMockRule, "MDTWNJ21");
1267
1268         ExecutionEntity mockExecution = setupMock()
1269         when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1270         when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(vnfRequestFakeRegion)
1271         when(mockExecution.getVariable("aai.endpoint")).thenReturn("http://localhost:8090")
1272         when(mockExecution.getVariable("mso.workflow.global.default.aai.version")).thenReturn("8")
1273         when(mockExecution.getVariable("mso.workflow.default.aai.v8.cloud-region.uri")).
1274                 thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/CloudOwner")
1275         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1276         when(mockExecution.getVariable("mso.workflow.global.default.aai.namespace")).thenReturn('http://org.openecomp.aai.inventory/')
1277         when(mockExecution.getVariable("mso.msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
1278         when(mockExecution.getVariable("aai.auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
1279
1280         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1281         DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution)
1282
1283         verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "")
1284         verify(mockExecution, atLeast(1)).setVariable(Prefix + "queryCloudRegionReturnCode", "404")
1285         verify(mockExecution).setVariable(Prefix + "cloudRegionPo", "MDTWNJ21")
1286         verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc", "AAIAIC25")
1287         verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true)
1288     }
1289
1290     @Test
1291     public void callRESTQueryAAINetworkVpnBinding_200() {
1292
1293         println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
1294
1295         ExecutionEntity mockExecution = setupMock()
1296         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1297                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAIResponseEmptyUri.json")))
1298
1299         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1300         DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1301
1302         verify(mockExecution).setVariable("prefix", Prefix + "")
1303         verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200")
1304         verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse",
1305                 """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
1306               xmlns="defaultTestNamespacev14"\n              contentType="text/xml">\n   <vpn-binding>
1307       <global-route-target/>\n   </vpn-binding>\n</rest:payload>""")
1308         verify(mockExecution).setVariable(Prefix + "routeCollection", "<routeTargets/>")
1309     }
1310
1311     @Test
1312     public void callRESTQueryAAINetworkVpnBindingList_200() {
1313
1314         println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
1315
1316         WireMock.reset();
1317
1318         MockGetNetworkVpnBindingWithDepth(wireMockRule,
1319                 "BuildingBlocks/Network/queryAAIVpnBindingTestResponseWithRoutes.json",
1320                 "13e94b71-3ce1-4988-ab0e-61208fc91f1c", "2")
1321
1322         ExecutionEntity mockExecution = setupMock()
1323         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1324                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1325
1326         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1327         DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1328
1329         verify(mockExecution).setVariable("prefix", Prefix + "")
1330         verify(mockExecution).setVariable(Prefix + "routeCollection", """<routeTargets>
1331  <routeTarget>2001:051111</routeTarget>\n <routeTargetRole>EXPORT</routeTargetRole>\n</routeTargets>
1332 <routeTargets>\n <routeTarget>1000:051113</routeTarget>\n <routeTargetRole>IMPORT</routeTargetRole>\n</routeTargets>\n""")
1333     }
1334
1335
1336     @Test
1337     public void callRESTQueryAAINetworkVpnBinding_200_URN_Uri() {
1338
1339         println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
1340
1341         WireMock.reset();
1342         MockGetNetworkVpnBindingWithDepth(wireMockRule,
1343                 "BuildingBlocks/Network/queryAAIVpnBindingTestResponseWithRoutes.json",
1344                 "13e94b71-3ce1-4988-ab0e-61208fc91f1c", "2");
1345
1346         ExecutionEntity mockExecution = setupMock()
1347         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1348                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1349
1350         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1351         DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1352
1353         verify(mockExecution).setVariable("prefix", Prefix + "")
1354         verify(mockExecution).setVariable(Prefix + "routeCollection",
1355                 """<routeTargets>\n <routeTarget>2001:051111</routeTarget>\n <routeTargetRole>EXPORT</routeTargetRole>
1356 </routeTargets>\n<routeTargets>\n <routeTarget>1000:051113</routeTarget>\n <routeTargetRole>IMPORT</routeTargetRole>
1357 </routeTargets>\n""")
1358     }
1359
1360     @Test
1361     public void callRESTQueryAAINetworkVpnBinding_NotPresent() {
1362
1363         println "************ callRESTQueryAAINetworkVpnBinding_NotPresent ************* "
1364
1365         WireMock.reset();
1366
1367         MockGetNetworkVpnBindingWithDepth(wireMockRule,
1368                 "BuildingBlocks/Network/queryAAIVpnBindingTestResponse.json",
1369                 "13e94b71-3ce1-4988-ab0e-61208fc91f1c", "2")
1370
1371         ExecutionEntity mockExecution = setupMock()
1372         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1373                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1374
1375         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1376         DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution)
1377
1378         verify(mockExecution).setVariable("prefix", Prefix + "")
1379         verify(mockExecution).setVariable(Prefix + "routeCollection", "")
1380     }
1381
1382     @Test
1383     public void callRESTQueryAAINetworkTableRef_200() {
1384
1385         println "************ callRESTQueryAAINetworkTableRef_200 ************* "
1386         WireMock.reset();
1387
1388         ExecutionEntity mockExecution = setupMock()
1389         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1390                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1391
1392         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1393         DoUpdateNetworkInstance.callRESTQueryAAINetworkTableRef(mockExecution)
1394
1395         verify(mockExecution).setVariable("prefix", Prefix + "")
1396         verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0)
1397         verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200")
1398         verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse",
1399                 """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
1400               xmlns="defaultTestNamespacev14"\n              contentType="text/xml">\n   <route-table-references>
1401       <route-table-reference-fqdn/>\n   </route-table-references>\n</rest:payload>""")
1402         verify(mockExecution).setVariable(Prefix + "tableRefCollection", "<routeTableFqdns/>")
1403     }
1404
1405     @Test
1406     public void callRESTQueryAAINetworkPolicy_200() {
1407
1408         println "************ callRESTQueryAAINetworkPolicy_200 ************* "
1409
1410         WireMock.reset();
1411
1412         ExecutionEntity mockExecution = setupMock()
1413         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1414                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAINetworkTestResponse.json")))
1415
1416         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1417         DoUpdateNetworkInstance.callRESTQueryAAINetworkPolicy(mockExecution)
1418
1419         verify(mockExecution).setVariable("prefix", Prefix + "")
1420         verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0)
1421         verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200")
1422         verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse",
1423                 """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
1424               xmlns="defaultTestNamespacev14"\n              contentType="text/xml">\n   <network-policy>
1425       <network-policy-fqdn/>\n   </network-policy>\n</rest:payload>""")
1426         verify(mockExecution).setVariable(Prefix + "networkCollection", "<policyFqdns/>")
1427     }
1428
1429
1430     @Test
1431     public void callRESTReQueryAAINetworkId_200() {
1432
1433         println "************ callRESTReQueryAAINetworkId ************* "
1434
1435         WireMock.reset();
1436         MockGetNetworkByIdWithDepth(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4",
1437                 "BuildingBlocks/Network/queryAAINetworkTestResponse.json", "1");
1438
1439         ExecutionEntity mockExecution = setupMock()
1440         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1441
1442         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1443         DoUpdateNetworkInstance.callRESTReQueryAAINetworkId(mockExecution)
1444
1445         verify(mockExecution).setVariable("prefix", Prefix + "")
1446         verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "200")
1447         verify(mockExecution).setVariable(eq(Prefix + "requeryIdAAIResponse"), isA(AAIResultWrapper.class))
1448         verify(mockExecution).setVariable(Prefix + "networkOutputs", """<network-outputs>
1449                    <network-id>467e3349-bec1-4922-bcb1-d0bb041bce30</network-id>
1450                    <network-name>vprobes_pktinternal_net_4_1806</network-name>
1451                  </network-outputs>""")
1452     }
1453
1454
1455     @Test
1456     public void callRESTUpdateContrailAAINetworkREST_200() {
1457
1458         println "************ callRESTUpdateContrailAAINetwork ************* "
1459
1460         WireMock.reset();
1461         MockPostNetwork(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4")
1462         MockPostNetworkSubnet(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "209f62cf-cf0c-42f8-b13c-f038b92ef108")
1463         MockPostNetworkSubnet(wireMockRule, "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "971bc608-1aff-47c0-923d-92e43b699f01")
1464
1465         ExecutionEntity mockExecution = setupMock()
1466         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1467         when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(
1468                 new AAIResultWrapper(FileUtil.readResourceFile("__files/BuildingBlocks/Network/queryAAIResponseEmptyUri.json")))
1469         when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST)
1470
1471         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1472         DoUpdateNetworkInstance.callRESTUpdateContrailAAINetwork(mockExecution)
1473
1474         verify(mockExecution).setVariable("prefix", Prefix + "")
1475         verify(mockExecution).setVariable(Prefix + "isPONR", true)
1476     }
1477
1478
1479     @Test
1480     public void validateUpdateNetworkResponseREST() {
1481
1482         println "************ validateNetworkResponse ************* "
1483
1484         ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1485         // Initialize prerequisite variables
1486         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1487         when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST)
1488         when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('200')
1489
1490         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1491         DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution)
1492
1493         verify(mockExecution).setVariable("prefix", Prefix + "")
1494         verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", updateNetworkResponseREST)
1495         verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", true)
1496         verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", updateRollbackNetworkRequest)
1497     }
1498
1499     @Test
1500     public void validateUpdateNetworkResponseREST_Error() {
1501
1502         println "************ validateNetworkResponse ************* "
1503
1504         WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")
1505
1506         ExecutionEntity mockExecution = setupMock()
1507         // Initialize prerequisite variables
1508         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1509         when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(networkException500)
1510         when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('500')
1511
1512         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1513         try {
1514             DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution)
1515         } catch (Exception ex) {
1516             println " Test End - Handle catch-throw BpmnError()! "
1517         }
1518
1519         verify(mockExecution).setVariable("prefix", Prefix + "")
1520         verify(mockExecution, atLeast(1)).setVariable(eq("WorkflowException"), refEq(workflowException))
1521
1522     }
1523
1524     @Test
1525     public void validateSDNCResponse() {
1526
1527         println "************ validateSDNCResponse ************* "
1528
1529         ExecutionEntity mockExecution = setupMock()
1530         // Initialize prerequisite variables
1531         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1532         when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)
1533         when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1534         when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
1535         when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")
1536         when(mockExecution.getVariable(Prefix + "sdncResponseSuccess")).thenReturn(true)
1537
1538         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1539         DoUpdateNetworkInstance.validateSDNCResponse(mockExecution)
1540
1541         verify(mockExecution).setVariable("prefix", Prefix)
1542         verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)
1543         verify(mockExecution).setVariable(Prefix + "sdncRequestDataResponseCode", "200")
1544         verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", true)
1545         verify(mockExecution).setVariable(Prefix + "changeAssignSDNCResponse", sdncAdapterWorkflowResponse)
1546         verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true)
1547     }
1548
1549     @Test(expected = BpmnError.class)
1550     public void validateSDNCResponse_Error() {
1551
1552         println "************ validateSDNCResponse ************* "
1553         ExecutionEntity mockExecution = setupMock()
1554         // Initialize prerequisite variables
1555         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1556         when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse_Error)
1557         when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "")
1558         when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false)
1559         when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200")
1560         when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true)
1561
1562         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1563         try {
1564             DoUpdateNetworkInstance.validateSDNCResponse(mockExecution)
1565         } catch (BpmnError ex) {
1566             verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false)
1567             println " Graceful Exit! - " + ex.getMessage()
1568             throw ex
1569         }
1570     }
1571
1572     @Test
1573     public void prepareRollbackData() {
1574
1575         println "************ prepareRollbackData() ************* "
1576
1577         WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.")
1578
1579         ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1580         // Initialize prerequisite variables
1581         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1582         when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)
1583         when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackNetworkRequest)
1584         when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
1585
1586         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1587         DoUpdateNetworkInstance.prepareRollbackData(mockExecution)
1588
1589         verify(mockExecution).setVariable("prefix", Prefix)
1590     }
1591
1592                 @Test
1593                 //@Ignore
1594                 public void postProcessResponse() {
1595
1596                         println "************ postProcessResponse() ************* "
1597                         ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1598                         // Initialize prerequisite variables
1599                         when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
1600                         when(mockExecution.getVariable(Prefix + "isException")).thenReturn(false)
1601                         when(mockExecution.getVariable("sdncVersion")).thenReturn("1610")
1602                         when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest)
1603                         when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackSDNCRequest)
1604                         when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest)
1605                         when(mockExecution.getVariable("mso-request-id")).thenReturn("requestId")
1606
1607                         // preProcessRequest(DelegateExecution execution)
1608                         DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance()
1609                         DoUpdateNetworkInstance.postProcessResponse(mockExecution)
1610
1611 //                      verify(mockExecution, atLeast(3)).getVariable("isDebugLogEnabled")
1612                         verify(mockExecution, atLeast(3)).setVariable("prefix", Prefix)
1613                         verify(mockExecution).setVariable(Prefix + "Success", true)
1614
1615                 }
1616
1617     private static L3Network getContrailL3Network() {
1618
1619         HostRoutes routes1 = new HostRoutes()
1620         routes1.getHostRoute().add(new HostRoute(routePrefix: "172.20.1.0/24", nextHop: "10.102.200.1"))
1621         routes1.getHostRoute().add(new HostRoute(routePrefix: "10.102.0.0/16", nextHop: "10.102.200.1"))
1622         routes1.getHostRoute().add(new HostRoute(routePrefix: "192.168.2.0/25", nextHop: "10.102.200.1"))
1623
1624         Subnet subnet1 = new Subnet(networkStartAddress: "107.239.52.0", cidrMask: "24", dhcpEnabled: true,
1625                 gatewayAddress: "107.239.52.1", ipVersion: "4", subnetId: "57e9a1ff-d14f-4071-a828-b19ae98eb2fc",
1626                 subnetName: "subnetName", ipAssignmentDirection: "true", hostRoutes: routes1)
1627         Subnets subnets = new Subnets()
1628         subnets.getSubnet().add(subnet1)
1629
1630         SegmentationAssignments segments = new SegmentationAssignments()
1631         segments.getSegmentationAssignment().add(new SegmentationAssignment(segmentationId: "414"))
1632         segments.getSegmentationAssignment().add(new SegmentationAssignment(segmentationId: "415"))
1633
1634         return new L3Network(
1635                 networkName: "MNS-25180-L-01-dmz_direct_net_1",
1636                 networkType: "CONTRAIL_EXTERNAL",
1637                 networkTechnology: "Contrail",
1638                 networkId: "49c86598-f766-46f8-84f8-8d1c1b10f9b4",
1639                 orchestrationStatus: "pending-create",
1640                 physicalNetworkName: "networkName",
1641                 heatStackId: "ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326",
1642                 isSharedNetwork: true,
1643                 subnets: subnets,
1644                 segmentationAssignments: segments
1645         )
1646     }
1647
1648                 private ExecutionEntity setupMock() {
1649
1650                         ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)
1651                         when(mockProcessDefinition.getKey()).thenReturn("DoUpdateNetworkInstance")
1652                         RepositoryService mockRepositoryService = mock(RepositoryService.class)
1653                         when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)
1654                         when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoUpdateNetworkInstance")
1655                         ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class)
1656                         when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService)
1657
1658                         ExecutionEntity mockExecution = mock(ExecutionEntity.class)
1659                         // Initialize prerequisite variables
1660
1661                         when(mockExecution.getProcessDefinitionId()).thenReturn("DoUpdateNetworkInstance")
1662                         when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)
1663                         when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)
1664
1665                         return mockExecution
1666                 }
1667
1668
1669 }