package org.openecomp.mso.bpmn.infrastructure.scripts import static org.mockito.Mockito.* import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkByIdWithDepth; import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion; import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkCloudRegion_404; import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkVpnBinding; import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkTableReference; import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicy; import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetworkIdWithDepth; import org.camunda.bpm.engine.ProcessEngineServices import org.camunda.bpm.engine.RepositoryService import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity import org.camunda.bpm.engine.repository.ProcessDefinition import org.camunda.bpm.engine.runtime.Execution import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.mockito.MockitoAnnotations import org.mockito.runners.MockitoJUnitRunner import org.openecomp.mso.bpmn.common.scripts.MsoUtils import org.openecomp.mso.bpmn.core.WorkflowException import com.github.tomakehurst.wiremock.client.WireMock import com.github.tomakehurst.wiremock.junit.WireMockRule import org.apache.commons.lang3.* @RunWith(MockitoJUnitRunner.class) class DoUpdateNetworkInstanceTest { @Rule public WireMockRule wireMockRule = new WireMockRule(8090); def utils = new MsoUtils() String Prefix="UPDNETI_" String jsonIncomingRequest = """{ "requestDetails": { "modelInfo": { "modelType": "network", "modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422", "modelName": "CONTRAIL_EXTERNAL", "modelVersion": "1.0" }, "cloudConfiguration": { "lcpCloudRegionId": "RDM2WAGPLCP", "tenantId": "7dd5365547234ee8937416c65507d266" }, "requestInfo": { "instanceName": "MNS-25180-L-01-dmz_direct_net_1", "source": "VID", "callbackUrl": "", "suppressRollback": true, "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb" }, "relatedInstanceList": [ { "relatedInstance": { "instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4", "modelInfo": { "modelType": "serviceT", "modelId": "modelI", "modelNameVersionId": "modelNameVersionI", "modelName": "modleNam", "modelVersion": "1" } } } ], "requestParameters": { "userParams": [ { "name": "someUserParam1", "value": "someValue1" } ] } }}""" String jsonIncomingRequest_MissingCloudRegion = """{ "requestDetails": { "modelInfo": { "modelType": "network", "modelCustomizationId": "f21df226-8093-48c3-be7e-0408fcda0422", "modelName": "CONTRAIL_EXTERNAL", "modelVersion": "1.0" }, "cloudConfiguration": { "tenantId": "7dd5365547234ee8937416c65507d266" }, "requestInfo": { "instanceName": "MNS-25180-L-01-dmz_direct_net_1", "source": "VID", "callbackUrl": "", "suppressRollback": true, "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb" }, "relatedInstanceList": [ { "relatedInstance": { "instanceId": "f70e927b-6087-4974-9ef8-c5e4d5847ca4", "modelInfo": { "modelType": "serviceT", "modelId": "modelI", "modelNameVersionId": "modelNameVersionI", "modelName": "modleNam", "modelVersion": "1" } } } ], "requestParameters": { "userParams": [] } }}""" String expectedNetworkRequestMissingNetworkId = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 UPDATE VID f70e927b-6087-4974-9ef8-c5e4d5847ca4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL f21df226-8093-48c3-be7e-0408fcda0422 RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false 1610 someValue1 """ String expectedNetworkRequestMissingCloudRegion = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 UPDATE VID f70e927b-6087-4974-9ef8-c5e4d5847ca4 networkId MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL f21df226-8093-48c3-be7e-0408fcda0422 null 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false null """ String expectedNetworkInputMissingCloudRegion = """ networkId MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL f21df226-8093-48c3-be7e-0408fcda0422 null 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false null """ String networkInputsMissingName = """ CONTRAIL_EXTERNAL a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb RDM2WAGPLCP e81d842d3e8b45c5a59f57cd76af3aaf """ String networkInputsMissingCloudRegion = """ HSL_direct_net_2 CONTRAIL_EXTERNAL a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb e81d842d3e8b45c5a59f57cd76af3aaf """ // expectedNetworkRequest String expectedNetworkRequest = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 UPDATE VID f70e927b-6087-4974-9ef8-c5e4d5847ca4 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL f21df226-8093-48c3-be7e-0408fcda0422 RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false 1610 someValue1 """ String expectedNetworkInputs = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL f21df226-8093-48c3-be7e-0408fcda0422 RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false 1610 """ String expectedVperNetworkRequest = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 UPDATE VID f70e927b-6087-4974-9ef8-c5e4d5847ca4 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL MSO-dev-service-type globalId_45678905678 RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false false CONTRAIL_EXTERNAL sn5256d1-5a33-55df-13ab-12abad84e111 sn5256d1-5a33-55df-13ab-12abad84e764 1 sn5256d1-5a33-55df-13ab-12abad84e222 1702 """ String expectedVperNetworkInputs = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL MSO-dev-service-type globalId_45678905678 RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false false CONTRAIL_EXTERNAL sn5256d1-5a33-55df-13ab-12abad84e111 sn5256d1-5a33-55df-13ab-12abad84e764 1 sn5256d1-5a33-55df-13ab-12abad84e222 1702 """ String expectedNetworkInputsMissingNetworkId = """ MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL f21df226-8093-48c3-be7e-0408fcda0422 RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb false 1610 """ String NetworkRequest_noPhysicalName = """ 1ef47428-cade-45bd-a103-0751e8b2deb0 UPDATE PORTAL MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 3008 true a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb true true 10.10.125.1 """ String vnfRequestFakeRegion = """ 1ef47428-cade-45bd-a103-0751e8b2deb0 UPDATE PORTAL MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb MDTWNJ21 7dd5365547234ee8937416c65507d266 1 0 """ // expectedNetworkRequest String expectedNetworkRequest_Outputs = """ 1ef47428-cade-45bd-a103-0751e8b2deb0 UPDATE PORTAL MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 MNS-25180-L-01-dmz_direct_net_1 bdc5efe8-404a-409b-85f6-0dcc9eebae30 1 0 """ String networkInputs = """ bdc5efe8-404a-409b-85f6-0dcc9eebae30 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb RDM2WAGPLCP e81d842d3e8b45c5a59f57cd76af3aaf """ String networkOutputs = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 """ String queryAAIResponse = """ bdc5efe8-404a-409b-85f6-0dcc9eebae30 HSL_direct_net_2 CONTRAIL_EXTERNAL dmz_direct contrail a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb 0 pending-delete 57e9a1ff-d14f-4071-a828-b19ae98eb2fc 107.239.52.1 107.239.52.0 24 4 pending-delete true vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/ vpn-binding.vpn-id 85f015d0-2e32-4c30-96d2-87a1a27f8017 vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/ vpn-binding.vpn-id c980a6ef-3b88-49f0-9751-dbad8608d0a6 tenant https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/ tenant.tenant-id 7dd5365547234ee8937416c65507d266 """ String queryIdAIIResponse = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL dmz_direct contrail a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb 0 l3-version pending-delete ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326 networkName false true false 57e9a1ff-d14f-4071-a828-b19ae98eb2fc 107.239.52.1 107.239.52.0 24 4 pending-update true subnetName 57e9a1ff-d14f-4071-a828-b19ae98eb2fc 107.239.52.1 107.239.52.0 24 4 pending-delete true subnetName 414 4132176 415 4132176 inner ctag-version tenant https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/ tenant.tenant-id 897deadc2b954a6bac6d3c197fb3525e tenant.tenant-name MSOTest1 vpn-binding https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/ vpn-binding.vpn-id a290b841-f672-44dd-b9cd-6f8c20d7d8c8 vpn-binding.vpn-name oam_protected_net_6_MTN5_msotest2 vpn-binding https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/ vpn-binding.vpn-id 24a4b507-853a-4a38-99aa-05fcc54be24d vpn-binding.vpn-name oam_protected_net_6_MTN5_msotest1 vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/ vpn-binding.vpn-id 85f015d0-2e32-4c30-96d2-87a1a27f8017 vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/ vpn-binding.vpn-id c980a6ef-3b88-49f0-9751-dbad8608d0a6 tenant https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/ tenant.tenant-id 7dd5365547234ee8937416c65507d266 network-policy https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg network-policy.network-policy-id cee6d136-e378-4678-a024-2cd15f0ee0cg route-table-reference https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1 route-table-reference.route-table-reference-id cee6d136-e378-4678-a024-2cd15f0ee0hi route-table-reference https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2 route-table-reference.route-table-reference-id cee6d136-e378-4678-a024-2cd15f0ee0hi """ String queryIdAIIResponseTestScenario01 = """ 4da55fe4-7a9e-478c-a434-8a98d62265ab GN_EVPN_direct_net_0_ST1 CONTRAIL30_BASIC GN_EVPN_direct contrail false 9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb 0 1465398611 pending-delete networkName false true false cb1a7b47-5428-44c9-89c2-8b17541c3228 108.239.40.1 108.239.40.0 28 4 pending-delete true 108.239.40.0 108.239.40.0 1465398611 subnetName e2cc7c14-90f0-4205-840d-b4e07f04e621 2606:ae00:2e01:604::1 2606:ae00:2e01:604:: 64 6 pending-delete true 2606:ae00:2e01:604:: 2606:ae00:2e01:604:: 1465398611 subnetName 416 4132176 cloud-region https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/ cloud-region.cloud-region-id AAIAIC25 cloud-region.cloud-owner att-aic cloud-region.owner-defined-type tenant https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/4ae1d3446a4c48b2bec44b6cfba06d68/ tenant.tenant-id 4ae1d3446a4c48b2bec44b6cfba06d68 cloud-region.cloud-owner att-aic cloud-region.cloud-region-id AAIAIC25 tenant.tenant-name Ruchira Contrail 3.0 test vpn-binding https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/ vpn-binding.vpn-id 9a7b327d9-287aa00-82c4b0-100001 vpn-binding.vpn-name GN_EVPN_direct_net_0_ST1 route-table-reference route-table-reference.route-table-reference-id cee6d136-e378-4678-a024-2cd15f0ee0hi """ String queryIdAIIResponseVpnNotPresent = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL dmz_direct contrail a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb 0 pending-delete networkName false true false 57e9a1ff-d14f-4071-a828-b19ae98eb2fc 107.239.52.1 107.239.52.0 24 4 pending-delete true subnetName """ String queryNameAIIResponse = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL dmz_direct contrail a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb 0 pending-delete 57e9a1ff-d14f-4071-a828-b19ae98eb2fc 107.239.52.1 107.239.52.0 24 4 pending-delete true vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/ vpn-binding.vpn-id 85f015d0-2e32-4c30-96d2-87a1a27f8017 vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/ vpn-binding.vpn-id c980a6ef-3b88-49f0-9751-dbad8608d0a6 tenant https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/ tenant.tenant-id 7dd5365547234ee8937416c65507d266 """ String queryNameAIIResponseVpnNotPresent = """ """ String queryVpnBindingAAIResponse = """ 9a7b327d9-287aa00-82c4b0-105757 GN_EVPN_Test 13979:105757 l3-network https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/689ec39e-c5fc-4462-8db2-4f760763ad28/ l3-network.network-id 689ec39e-c5fc-4462-8db2-4f760763ad28 l3-network https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/1a49396b-19b3-40a4-8792-aa2fbd0f0704/ l3-network.network-id 1a49396b-19b3-40a4-8792-aa2fbd0f0704 l3-network https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/774f3329-3c83-4771-86c7-9e6207cd50fd/ l3-network.network-id 774f3329-3c83-4771-86c7-9e6207cd50fd """ String updateNetworkRequest = """ RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 49c86598-f766-46f8-84f8-8d1c1b10f9b4 ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL sn5256d1-5a33-55df-13ab-12abad84e222 CONTRAIL networkName 414,415 true false 13979:105757 13979:105757 GN_EVPN_Test refFQDN1 refFQDN2 107.239.52.0/24 true 107.239.52.1 4 57e9a1ff-d14f-4071-a828-b19ae98eb2fc subnetName true true false 88f65519-9a38-4c4b-8445-9eb4a5a5af56 f70e927b-6087-4974-9ef8-c5e4d5847ca4 messageId_generated """ String updateNetworkRequest_noPhysicalName = """ RDM2WAGPLCP 7dd5365547234ee8937416c65507d266 49c86598-f766-46f8-84f8-8d1c1b10f9b4 ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL CONTRAIL networkName 414,415 true false 13979:105757 13979:105757 GN_EVPN_Test 107.239.52.0/24 true 107.239.52.1 4 57e9a1ff-d14f-4071-a828-b19ae98eb2fc subnetName true true false true a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb true true 10.10.125.1 88f65519-9a38-4c4b-8445-9eb4a5a5af56 null messageId_generated """ String updateNetworkResponseREST = """ MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 c4f4e878-cde0-4b15-ae9a-bda857759cea default-domain:MSOTest:GN_EVPN_direct_net_0_ST1 57e9a1ff-d14f-4071-a828-b19ae98eb2fc bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73 57e9a1ff-d14f-4071-a828-b19ae98eb2fc bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73 MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 c4f4e878-cde0-4b15-ae9a-bda857759cea CONTRAIL_EXTERNAL true 7dd5365547234ee8937416c65507d266 RDM2WAGPLCP 1ef47428-cade-45bd-a103-0751e8b2deb0 messageId_generated """ String updateRollbackNetworkRequest = """ MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 c4f4e878-cde0-4b15-ae9a-bda857759cea CONTRAIL_EXTERNAL true 7dd5365547234ee8937416c65507d266 RDM2WAGPLCP 1ef47428-cade-45bd-a103-0751e8b2deb0 """ String updateNetworkResponse = """ MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 c4f4e878-cde0-4b15-ae9a-bda857759cea MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 default-domain:MSOTest:GN_EVPN_direct_net_0_ST1 57e9a1ff-d14f-4071-a828-b19ae98eb2fc bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73 RDM2WAGPLCP 1ef47428-cade-45bd-a103-0751e8b2deb0 true MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 CONTRAIL_EXTERNAL false c4f4e878-cde0-4b15-ae9a-bda857759cea 7dd5365547234ee8937416c65507d266 """ String updateContrailAAIPayloadRequest = """ 49c86598-f766-46f8-84f8-8d1c1b10f9b4 MNS-25180-L-01-dmz_direct_net_1 CONTRAIL_EXTERNAL dmz_direct contrail c4f4e878-cde0-4b15-ae9a-bda857759cea a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb 0 l3-version Active ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326 default-domain:MSOTest:GN_EVPN_direct_net_0_ST1 networkName false true false 57e9a1ff-d14f-4071-a828-b19ae98eb2fc bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73 107.239.52.1 107.239.52.0 24 4 Active true subnetName 414 4132176 415 4132176 inner ctag-version tenant https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/ tenant.tenant-id 897deadc2b954a6bac6d3c197fb3525e tenant.tenant-name MSOTest1 vpn-binding https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/ vpn-binding.vpn-id a290b841-f672-44dd-b9cd-6f8c20d7d8c8 vpn-binding.vpn-name oam_protected_net_6_MTN5_msotest2 vpn-binding https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/ vpn-binding.vpn-id 24a4b507-853a-4a38-99aa-05fcc54be24d vpn-binding.vpn-name oam_protected_net_6_MTN5_msotest1 vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/ vpn-binding.vpn-id 85f015d0-2e32-4c30-96d2-87a1a27f8017 vpn-binding https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/ vpn-binding.vpn-id c980a6ef-3b88-49f0-9751-dbad8608d0a6 tenant https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/ tenant.tenant-id 7dd5365547234ee8937416c65507d266 network-policy https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg network-policy.network-policy-id cee6d136-e378-4678-a024-2cd15f0ee0cg route-table-reference https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1 route-table-reference.route-table-reference-id cee6d136-e378-4678-a024-2cd15f0ee0hi route-table-reference https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2 route-table-reference.route-table-reference-id cee6d136-e378-4678-a024-2cd15f0ee0hi """ String updateContrailAAIResponse = """ """ String updateNetworkErrorResponse = """ 680bd458-5ec1-4a16-b77c-509022e53450INTERNAL 400 Bad Request: The server could not comply with the request since it is either malformed or otherwise incorrect., error.type=StackValidationFailed, error.message=Property error: : resources.network.properties: : Unknown Property network_ipam_refs_data true """ String networkException500 = """soap:VersionMismatch"http://org.openecomp.mso/network", the namespace on the "updateNetworkContrail" element, is not a valid SOAP version.""" String aaiResponse = """ bdc5efe8-404a-409b-85f6-0dcc9eebae30 HSL_direct_net_2 CONTRAIL_BASIC HSL_direct contrail 8bbd3edf-b835-4610-96a2-a5cafa029042 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb active HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6 ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a 5a77fdc2-7789-4649-a1b9-6eaf1db1813a 172.16.34.1 172.16.34.0 28 4 active true tenant https://aai-app-e2e.test.com:8443/aai/v3/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/ tenant.tenant-id e81d842d3e8b45c5a59f57cd76af3aaf """ String changeAssignSDNCRequest = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 f70e927b-6087-4974-9ef8-c5e4d5847ca4 changeassign network-topology-operation sdncCallback 88f65519-9a38-4c4b-8445-9eb4a5a5af56 NetworkActivateRequest VID a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb MSO-dev-service-type f70e927b-6087-4974-9ef8-c5e4d5847ca4 MSO_1610_dev 49c86598-f766-46f8-84f8-8d1c1b10f9b4 CONTRAIL_EXTERNAL MNS-25180-L-01-dmz_direct_net_1 7dd5365547234ee8937416c65507d266 RDM2WAGPLCP """ String assignResponse = """ 006927ca-f5a3-47fd-880c-dfcbcd81a093 200 OK 200006927ca-f5a3-47fd-880c-dfcbcd81a093Ynotsurewecarea9a77d5a-123e-4ca2-9eb9-0b015d2ee0fbGN_EVPN_direct_net_0_ST_noGW8abc633a-810b-4ca5-8b3a-09511d13a2ce """ String sdncRollbackRequest = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 f70e927b-6087-4974-9ef8-c5e4d5847ca4 rollback network-topology-operation sdncCallback 88f65519-9a38-4c4b-8445-9eb4a5a5af56 NetworkActivateRequest VID a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb MSO-dev-service-type f70e927b-6087-4974-9ef8-c5e4d5847ca4 MSO_1610_dev 8abc633a-810b-4ca5-8b3a-09511d13a2ce CONTRAIL_EXTERNAL MNS-25180-L-01-dmz_direct_net_1 7dd5365547234ee8937416c65507d266 RDM2WAGPLCP """ String sdncAdapterWorkflowResponse = """ 745b1b50-e39e-4685-9cc8-c71f0bde8bf0 200 OK <output xmlns="com:att:sdnctl:vnf"><svc-request-id>00703dc8-71ff-442d-a4a8-3adc5beef6a9</svc-request-id><response-code>200</response-code><ack-final-indicator>Y</ack-final-indicator><network-information><network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id></network-information><service-information><service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type><service-instance-id>MNS-25180-L-01-dmz_direct_net_1</service-instance-id><subscriber-name>notsurewecare</subscriber-name></service-information></output> """ String sdncAdapterWorkflowResponse_Error = """ 400 Error writing to l3-netework Y c79240d8-34b5-4853-af69-2021928dba00 """ String expected_sdncAdapterWorkflowResponse_Error = """ 400 Error writing to l3-netework Y c79240d8-34b5-4853-af69-2021928dba00 """ String sdncAdapterWorkflowFormattedResponse = """ 00703dc8-71ff-442d-a4a8-3adc5beef6a9 200 Y 49c86598-f766-46f8-84f8-8d1c1b10f9b4 a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb f70e927b-6087-4974-9ef8-c5e4d5847ca4 notsurewecare """ String rollbackSDNCRequest = """ 88f65519-9a38-4c4b-8445-9eb4a5a5af56 f70e927b-6087-4974-9ef8-c5e4d5847ca4 rollback network-topology-operation sdncCallback 88f65519-9a38-4c4b-8445-9eb4a5a5af56 CreateNetworkInstance VID a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb MSO-dev-service-type f70e927b-6087-4974-9ef8-c5e4d5847ca4 MSO_1610_dev 8abc633a-810b-4ca5-8b3a-09511d13a2ce CONTRAIL_EXTERNAL invariant-uuid customization-uuid uuid version CONTRAIL_EXTERNAL 8abc633a-810b-4ca5-8b3a-09511d13a2ce CONTRAIL_EXTERNAL MNS-25180-L-01-dmz_direct_net_1 7dd5365547234ee8937416c65507d266 RDM2WAGPLCP """ String rollbackNetworkRequest = """ MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641 c4f4e878-cde0-4b15-ae9a-bda857759cea CONTRAIL_EXTERNAL true 7dd5365547234ee8937416c65507d266 RDM2WAGPLCP 1ef47428-cade-45bd-a103-0751e8b2deb0 """ // - - - - - - - - @Before public void init() { MockitoAnnotations.initMocks(this) } public void initializeVariables (Execution mockExecution) { verify(mockExecution).setVariable(Prefix + "messageId", "") verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "") verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "") verify(mockExecution).setVariable(Prefix + "networkRequest", "") verify(mockExecution).setVariable(Prefix + "networkInputs", "") verify(mockExecution).setVariable(Prefix + "networkOutputs", "") verify(mockExecution).setVariable(Prefix + "requestId", "") verify(mockExecution).setVariable(Prefix + "source", "") verify(mockExecution).setVariable(Prefix + "networkId", "") verify(mockExecution).setVariable(Prefix + "isPONR", false) // AAI query Cloud Region verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest","") verify(mockExecution).setVariable(Prefix + "queryCloudRegionReturnCode","") verify(mockExecution).setVariable(Prefix + "queryCloudRegionResponse","") verify(mockExecution).setVariable(Prefix + "cloudRegionPo","") verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc","") verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", false) // AAI query Id verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest","") verify(mockExecution).setVariable(Prefix + "queryIdAAIResponse", "") verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "") // AAI query vpn binding verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest","") verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", "") verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "") verify(mockExecution).setVariable(Prefix + "vpnBindings", null) verify(mockExecution).setVariable(Prefix + "vpnCount", 0) verify(mockExecution).setVariable(Prefix + "routeCollection", "") // AAI query network policy verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest","") verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIResponse", "") verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "") verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", null) verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 0) verify(mockExecution).setVariable(Prefix + "networkCollection", "") // AAI query route table reference verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest","") verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIResponse", "") verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "") verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", null) verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 0) verify(mockExecution).setVariable(Prefix + "tableRefCollection", "") // AAI requery Id verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest","") verify(mockExecution).setVariable(Prefix + "requeryIdAAIResponse", "") verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "") // AAI update contrail verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest","") verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest","") verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", "") verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "") verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", "") verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", "") verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", "") //verify(mockExecution).setVariable(Prefix + "rollbackNetworkResponse", "") verify(mockExecution).setVariable(Prefix + "networkReturnCode", "") //verify(mockExecution).setVariable(Prefix + "rollbackNetworkReturnCode", "") verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", false) verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", "") verify(mockExecution).setVariable(Prefix + "changeAssignSDNCResponse", "") verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "") //verify(mockExecution).setVariable(Prefix + "rollbackSDNCResponse", "") verify(mockExecution).setVariable(Prefix + "sdncReturnCode", "") //verify(mockExecution).setVariable(Prefix + "rollbackSDNCReturnCode", "") verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", false) verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false) verify(mockExecution).setVariable(Prefix + "isVnfBindingPresent", false) verify(mockExecution).setVariable(Prefix + "Success", false) verify(mockExecution).setVariable(Prefix + "serviceInstanceId", "") verify(mockExecution).setVariable(Prefix + "isException", false) } @Test //@Ignore public void preProcessRequest_NetworkRequest() { println "************ preProcessRequest_Payload ************* " ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true) when(mockExecution.getVariable("recipeTimeout")).thenReturn(0) when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE") when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4") when(mockExecution.getVariable("vnfId")).thenReturn("") when(mockExecution.getVariable("volumeGroupId")).thenReturn("") when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4") when(mockExecution.getVariable("serviceType")).thenReturn("MOG") when(mockExecution.getVariable("networkType")).thenReturn("modelName") when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest) when(mockExecution.getVariable("sdncVersion")).thenReturn("1610") when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true") when(mockExecution.getVariable("disableRollback")).thenReturn("true") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.preProcessRequest(mockExecution) verify(mockExecution).getVariable("isDebugLogEnabled") verify(mockExecution).setVariable("prefix", Prefix + "") //verify variable initialization initializeVariables(mockExecution) // Authentications verify(mockExecution).setVariable("action", "UPDATE") verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequest) verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false) verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputs) verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=") verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=") verify(mockExecution).setVariable(Prefix + "networkOutputs", "") } @Test //@Ignore public void preProcessRequest_vPERNetworkRequest() { def networkModelInfo = """{"modelUuid": "sn5256d1-5a33-55df-13ab-12abad84e111", "modelName": "CONTRAIL_EXTERNAL", "modelType": "CONTRAIL_EXTERNAL", "modelVersion": "1", "modelCustomizationUuid": "sn5256d1-5a33-55df-13ab-12abad84e222", "modelInvariantUuid": "sn5256d1-5a33-55df-13ab-12abad84e764" }""".trim() println "************ preProcessRequest_Payload ************* " ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("msoRequestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("disableRollback")).thenReturn("true") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4") when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4") // optional when(mockExecution.getVariable("networkName")).thenReturn("MNS-25180-L-01-dmz_direct_net_1") // optional when(mockExecution.getVariable("productFamilyId")).thenReturn("a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb") when(mockExecution.getVariable("networkModelInfo")).thenReturn("CONTRAIL_EXTERNAL") when(mockExecution.getVariable("lcpCloudRegionId")).thenReturn("RDM2WAGPLCP") when(mockExecution.getVariable("tenantId")).thenReturn("7dd5365547234ee8937416c65507d266") when(mockExecution.getVariable("failIfExists")).thenReturn("false") when(mockExecution.getVariable("networkModelInfo")).thenReturn(networkModelInfo) when(mockExecution.getVariable("sdncVersion")).thenReturn("1702") when(mockExecution.getVariable("action")).thenReturn("UPDATE") when(mockExecution.getVariable("subscriptionServiceType")).thenReturn("MSO-dev-service-type") when(mockExecution.getVariable("globalSubscriberId")).thenReturn("globalId_45678905678") when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true") when(mockExecution.getVariable("URN_mso_adapters_sdnc_endpoint")).thenReturn("http://localhost:8090/SDNCAdapter") when(mockExecution.getVariable("URN_mso_adapters_network_rest_endpoint")).thenReturn("http://localhost:8090/networks/NetworkAdapter") when(mockExecution.getVariable("URN_mso_adapters_sdnc_resource_endpoint")).thenReturn("http://localhost:8090/SDNCAdapterRpc") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.preProcessRequest(mockExecution) verify(mockExecution).getVariable("isDebugLogEnabled") verify(mockExecution).setVariable("prefix", Prefix + "") //verify variable initialization initializeVariables(mockExecution) // Authentications verify(mockExecution).setVariable("action", "UPDATE") verify(mockExecution).setVariable(Prefix + "networkRequest", expectedVperNetworkRequest) verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false) verify(mockExecution).setVariable(Prefix + "networkInputs", expectedVperNetworkInputs) verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=") verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=") verify(mockExecution).setVariable(Prefix + "networkOutputs", "") } @Test //@Ignore public void preProcessRequest_MissingNetworkId() { println "************ preProcessRequest_MissingName() ************* " WorkflowException missingNameWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Variable 'network-id' value/element is missing.") ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true) when(mockExecution.getVariable("recipeTimeout")).thenReturn(0) when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE") when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4") when(mockExecution.getVariable("vnfId")).thenReturn("") when(mockExecution.getVariable("volumeGroupId")).thenReturn("") //when(mockExecution.getVariable("networkId")).thenReturn("49c86598-f766-46f8-84f8-8d1c1b10f9b4") when(mockExecution.getVariable("serviceType")).thenReturn("MOG") when(mockExecution.getVariable("networkType")).thenReturn("modelName") when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest) when(mockExecution.getVariable("sdncVersion")).thenReturn("1610") when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true") when(mockExecution.getVariable("disableRollback")).thenReturn("true") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() try { DoUpdateNetworkInstance.preProcessRequest(mockExecution) } catch (Exception ex) { println " Test End - Handle catch-throw BpmnError()! " } verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled") verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "") //verify variable initialization initializeVariables(mockExecution) verify(mockExecution).setVariable("action", "UPDATE") verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingNetworkId) verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false) verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputsMissingNetworkId) verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56") verify(mockExecution).setVariable(Prefix + "source", "VID") verify(mockExecution).setVariable(Prefix + "networkOutputs", "") verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingNameWorkflowException)) } @Test //@Ignore public void preProcessRequest_MissingCloudRegion() { println "************ preProcessRequest_MissingCloudRegion() ************* " WorkflowException missingCloudRegionWorkflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "requestDetails has missing 'aic-cloud-region' value/element.") ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("isBaseVfModule")).thenReturn(true) when(mockExecution.getVariable("recipeTimeout")).thenReturn(0) when(mockExecution.getVariable("requestAction")).thenReturn("UPDATE") when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4") when(mockExecution.getVariable("vnfId")).thenReturn("") when(mockExecution.getVariable("volumeGroupId")).thenReturn("") when(mockExecution.getVariable("networkId")).thenReturn("networkId") when(mockExecution.getVariable("serviceType")).thenReturn("MOG") when(mockExecution.getVariable("networkType")).thenReturn("modelName") when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonIncomingRequest_MissingCloudRegion) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B") when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true") when(mockExecution.getVariable("disableRollback")).thenReturn("true") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() try { DoUpdateNetworkInstance.preProcessRequest(mockExecution) } catch (Exception ex) { println " Test End - Handle catch-throw BpmnError()! " } // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution, atLeast(1)).getVariable("isDebugLogEnabled") verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "") //verify variable initialization initializeVariables(mockExecution) verify(mockExecution).setVariable("action", "UPDATE") verify(mockExecution).setVariable(Prefix + "networkRequest", expectedNetworkRequestMissingCloudRegion) verify(mockExecution).setVariable(Prefix + "rollbackEnabled", false) verify(mockExecution).setVariable(Prefix + "networkInputs", expectedNetworkInputMissingCloudRegion) verify(mockExecution).setVariable(Prefix + "messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56") verify(mockExecution).setVariable(Prefix + "source", "VID") verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingCloudRegionWorkflowException)) } @Test //@Ignore public void prepareUpdateNetworkRequest() { println "************ prepareNetworkRequest ************* " ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedVperNetworkRequest) when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP") when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated") when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID") //when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse) when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("13979:10575713979:105757") when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("GN_EVPN_Test") when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("refFQDN1refFQDN2") when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") //when(mockExecution.getVariable("URN_?????")).thenReturn("") // notificationUrl, //TODO - is this coming from URN? What variable/value to use? when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) // verify set prefix = Prefix + "" verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest) } @Test //@Ignore public void prepareUpdateNetworkRequest_NoPhysicalname() { println "************ prepareNetworkRequest ************* " ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(NetworkRequest_noPhysicalName) when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) when(mockExecution.getVariable(Prefix + "cloudRegionPo")).thenReturn("RDM2WAGPLCP") when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("messageId_generated") when(mockExecution.getVariable(Prefix + "source")).thenReturn("VID") //when(mockExecution.getVariable(Prefix + "queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse) when(mockExecution.getVariable(Prefix + "routeCollection")).thenReturn("13979:10575713979:105757") when(mockExecution.getVariable(Prefix + "networkCollection")).thenReturn("GN_EVPN_Test") when(mockExecution.getVariable(Prefix + "tableRefCollection")).thenReturn("") when(mockExecution.getVariable(Prefix + "requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") //when(mockExecution.getVariable("URN_?????")).thenReturn("") // notificationUrl, //TODO - is this coming from URN? What variable/value to use? when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "rollbackEnabled")).thenReturn("true") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.prepareUpdateNetworkRequest(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) // verify set prefix = Prefix + "" verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "updateNetworkRequest", updateNetworkRequest_noPhysicalName) } @Test //@Ignore public void prepareSDNCRequest() { println "************ prepareSDNCRequest ************* " ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP") when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4") when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") 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/") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.prepareSDNCRequest(mockExecution) // verify set prefix = Prefix + "" verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "changeAssignSDNCRequest", changeAssignSDNCRequest) } @Test //@Ignore public void prepareSDNCRollbackRequest() { println "************ prepareSDNCRollbackRequest ************* " ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable(Prefix + "cloudRegionSdnc")).thenReturn("RDM2WAGPLCP") when(mockExecution.getVariable(Prefix + "serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4") when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(assignResponse) when(mockExecution.getVariable("mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("testMessageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56") when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:8090/SDNCAdapterCallback") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") 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/") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.prepareSDNCRollbackRequest(mockExecution) // verify set prefix = Prefix + "" verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", sdncRollbackRequest) } @Test //@Ignore public void callRESTQueryAAINetworkId_200() { println "************ callRESTQueryAAINetworkId ************* " WireMock.reset(); MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkId(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "queryIdAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1") verify(mockExecution).setVariable(Prefix + "aaiIdReturnCode", "200") } @Test //@Ignore public void callRESTQueryAAICloudRegion30_200() { println "************ callRESTQueryAAICloudRegion30_200 ************* " WireMock.reset(); MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml", "RDM2WAGPLCP"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "") when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP") verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200") verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true) } @Test //@Ignore public void callRESTQueryAAICloudRegion25_200() { println "************ callRESTQueryAAICloudRegion25_200 ************* " WireMock.reset(); MockGetNetworkCloudRegion("CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml", "RDM2WAGPLCP"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "") when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP") verify(mockExecution, atLeast(2)).setVariable(Prefix + "queryCloudRegionReturnCode", "200") verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true) } @Test //@Ignore public void callRESTQueryAAICloudRegion_NotFound() { println "************ callRESTQueryAAICloudRegionFake ************* " WireMock.reset(); MockGetNetworkCloudRegion_404("MDTWNJ21"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "") when(mockExecution.getVariable(Prefix + "networkInputs")).thenReturn(vnfRequestFakeRegion) when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_cloud_region_uri")).thenReturn("/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAICloudRegion(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution, atLeast(1)).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "queryCloudRegionRequest", "http://localhost:8090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/MDTWNJ21") verify(mockExecution, atLeast(1)).setVariable(Prefix + "queryCloudRegionReturnCode", "404") verify(mockExecution).setVariable(Prefix + "cloudRegionPo", "MDTWNJ21") verify(mockExecution).setVariable(Prefix + "cloudRegionSdnc", "AAIAIC25") verify(mockExecution).setVariable(Prefix + "isCloudRegionGood", true) } @Test //@Ignore public void callRESTQueryAAINetworkVpnBinding_200() { println "************ callRESTQueryAAINetworkVpnBinding_200 ************* " WireMock.reset(); MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017"); MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) // v6 when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "vpnCount", 2) verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/', '/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/']) // the last vpnBinding value is saved. verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all") verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200") } @Test //@Ignore public void callRESTQueryAAINetworkVpnBinding_TestScenario01_200() { println "************ callRESTQueryAAINetworkVpnBinding_200 ************* " WireMock.reset(); MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponseTestScenario01) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "vpnCount", 1) verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/']) // the last vpnBinding value is saved. verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all") verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200") } @Test //@Ignore public void callRESTQueryAAINetworkVpnBinding_200_URN_Uri() { println "************ callRESTQueryAAINetworkVpnBinding_200 ************* " WireMock.reset(); MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017"); MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "c980a6ef-3b88-49f0-9751-dbad8608d0a6"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vpn_binding_uri")).thenReturn("/aai/v8/network/vpn-bindings/vpn-binding") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "vpnCount", 2) verify(mockExecution).setVariable(Prefix + "vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/', '/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/']) // the last vpnBinding value is saved. verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIRequest", "http://localhost:8090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017?depth=all") verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200") } @Test //@Ignore public void callRESTQueryAAINetworkVpnBinding_NotPresent() { println "************ callRESTQueryAAINetworkVpnBinding_NotPresent ************* " WireMock.reset(); MockGetNetworkVpnBinding("UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", "85f015d0-2e32-4c30-96d2-87a1a27f8017"); ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponseVpnNotPresent) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn("/aai/v8/network/l3-networks/l3-network") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkVpnBinding(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "aaiQqueryVpnBindingReturnCode", "200") verify(mockExecution).setVariable(Prefix + "vpnCount", 0) verify(mockExecution).setVariable(Prefix + "queryVpnBindingAAIResponse", aaiVpnResponseStub) } @Test //@Ignore public void callRESTQueryAAINetworkTableRef_200() { println "************ callRESTQueryAAINetworkTableRef_200 ************* " WireMock.reset(); MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", "refFQDN1"); MockGetNetworkTableReference("UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", "refFQDN2"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_default_aai_network_table_reference_uri")).thenReturn("") when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_route_table_reference_uri")).thenReturn("/aai/v8/network/route-table-references/route-table-reference") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkTableRef(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "networkTableRefCount", 2) verify(mockExecution).setVariable(Prefix + "networkTableRefUriList", ['/aai/v8/network/route-table-references/route-table-reference/refFQDN1','/aai/v8/network/route-table-references/route-table-reference/refFQDN2']) // the last vpnBinding value is saved. verify(mockExecution).setVariable(Prefix + "queryNetworkTableRefAAIRequest", "http://localhost:8090/aai/v8/network/route-table-references/route-table-reference/refFQDN1?depth=all") verify(mockExecution, atLeast(2)).setVariable(Prefix + "aaiQqueryNetworkTableRefReturnCode", "200") } @Test //@Ignore public void callRESTQueryAAINetworkPolicy_200() { println "************ callRESTQueryAAINetworkPolicy_200 ************* " WireMock.reset(); MockGetNetworkPolicy("UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", "cee6d136-e378-4678-a024-2cd15f0ee0cg"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8") when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_network_policy_uri")).thenReturn("/aai/v8/network/network-policies/network-policy") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTQueryAAINetworkPolicy(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "networkPolicyCount", 1) verify(mockExecution).setVariable(Prefix + "networkPolicyUriList", ['/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg']) // the last vpnBinding value is saved. verify(mockExecution).setVariable(Prefix + "queryNetworkPolicyAAIRequest", "http://localhost:8090/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg?depth=all") verify(mockExecution).setVariable(Prefix + "aaiQqueryNetworkPolicyReturnCode", "200") } @Test //@Ignore public void callRESTReQueryAAINetworkId_200() { println "************ callRESTReQueryAAINetworkId ************* " WireMock.reset(); MockGetNetworkByIdWithDepth("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", "1"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTReQueryAAINetworkId(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "requeryIdAAIRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1") verify(mockExecution).setVariable(Prefix + "aaiRequeryIdReturnCode", "200") } @Test //@Ignore public void callRESTUpdateContrailAAINetworkREST_200() { println "************ callRESTUpdateContrailAAINetwork ************* " WireMock.reset(); MockPutNetworkIdWithDepth("UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml", "49c86598-f766-46f8-84f8-8d1c1b10f9b4", "1"); ExecutionEntity mockExecution = setupMock() when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse) when(mockExecution.getVariable(Prefix + "requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST) when(mockExecution.getVariable(Prefix + "messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6") when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:8090") when(mockExecution.getVariable("URN_mso_workflow_DoUpdateNetworkInstance_aai_l3_network_uri")).thenReturn("/aai/v9/network/l3-networks/l3-network") when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_namespace")).thenReturn('http://org.openecomp.aai.inventory/') when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7") when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.callRESTUpdateContrailAAINetwork(mockExecution) // check the sequence of variable invocation //MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl() //preDebugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "updateContrailAAIUrlRequest", "http://localhost:8090/aai/v9/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4"+"?depth=1") verify(mockExecution).setVariable(Prefix + "updateContrailAAIPayloadRequest", updateContrailAAIPayloadRequest) verify(mockExecution).setVariable(Prefix + "aaiUpdateContrailReturnCode", "200") //verify(mockExecution).setVariable(Prefix + "updateContrailAAIResponse", updateContrailAAIResponse) verify(mockExecution).setVariable(Prefix + "isPONR", true) } @Test //@Ignore public void validateUpdateNetworkResponseREST() { println "************ validateNetworkResponse ************* " ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(updateNetworkResponseREST) when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('200') DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution) //MockitoDebuggerImpl debugger = new MockitoDebuggerImpl() //debugger.printInvocations(mockExecution) verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution).setVariable(Prefix + "updateNetworkResponse", updateNetworkResponseREST) verify(mockExecution).setVariable(Prefix + "isNetworkRollbackNeeded", true) verify(mockExecution).setVariable(Prefix + "rollbackNetworkRequest", updateRollbackNetworkRequest) } @Test //@Ignore public void validateUpdateNetworkResponseREST_Error() { println "************ validateNetworkResponse ************* " WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.") ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "updateNetworkResponse")).thenReturn(networkException500) when(mockExecution.getVariable(Prefix + "networkReturnCode")).thenReturn('500') DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() try { DoUpdateNetworkInstance.validateUpdateNetworkResponse(mockExecution) } catch (Exception ex) { println " Test End - Handle catch-throw BpmnError()! " } verify(mockExecution).setVariable("prefix", Prefix + "") verify(mockExecution, atLeast(1)).setVariable("WorkflowException", refEq(workflowException, any(WorkflowException.class))) } @Test //@Ignore public void validateSDNCResponse() { println "************ validateSDNCResponse ************* " ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse) when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "") when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true) when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200") when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() try { DoUpdateNetworkInstance.validateSDNCResponse(mockExecution) verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true) verify(mockExecution).setVariable(Prefix + "rollbackSDNCRequest", "") } catch (Exception ex) { println " Graceful Exit - " + ex.getMessage() } //MockitoDebuggerImpl debugger = new MockitoDebuggerImpl() //debugger.printInvocations(mockExecution) //verify(mockExecution).setVariable(Prefix + "isSdncRollbackNeeded", true) } @Test //@Ignore public void validateSDNCResponse_Error() { println "************ validateSDNCResponse ************* " //ExecutionEntity mockExecution = mock(ExecutionEntity.class) ExecutionEntity mockExecution = setupMock() // Initialize prerequisite variables when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse_Error) when(mockExecution.getVariable("prefix")).thenReturn(Prefix + "") when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false) when(mockExecution.getVariable(Prefix + "sdncReturnCode")).thenReturn("200") when(mockExecution.getVariable(Prefix + "isResponseGood")).thenReturn(true) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() try { DoUpdateNetworkInstance.validateSDNCResponse(mockExecution) } catch (Exception ex) { println " Graceful Exit! - " + ex.getMessage() } //MockitoDebuggerImpl debugger = new MockitoDebuggerImpl() //debugger.printInvocations(mockExecution) // verify set prefix = Prefix + "" //verify(mockExecution).setVariable(Prefix + "sdncResponseSuccess", false) } @Test //@Ignore public void prepareRollbackData() { println "************ prepareRollbackData() ************* " WorkflowException workflowException = new WorkflowException("DoUpdateNetworkInstance", 2500, "Received error from Network Adapter: JBWEB000065: HTTP Status 500.") ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest) when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackNetworkRequest) when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException) // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.prepareRollbackData(mockExecution) verify(mockExecution).getVariable("isDebugLogEnabled") verify(mockExecution).setVariable("prefix", Prefix) } @Test //@Ignore public void postProcessResponse() { println "************ postProcessResponse() ************* " ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") when(mockExecution.getVariable(Prefix + "isException")).thenReturn(false) when(mockExecution.getVariable("sdncVersion")).thenReturn("1610") when(mockExecution.getVariable(Prefix + "rollbackSDNCRequest")).thenReturn(rollbackSDNCRequest) when(mockExecution.getVariable(Prefix + "rollbackNetworkRequest")).thenReturn(rollbackSDNCRequest) when(mockExecution.getVariable(Prefix + "networkRequest")).thenReturn(expectedNetworkRequest) when(mockExecution.getVariable("mso-request-id")).thenReturn("requestId") // preProcessRequest(Execution execution) DoUpdateNetworkInstance DoUpdateNetworkInstance = new DoUpdateNetworkInstance() DoUpdateNetworkInstance.postProcessResponse(mockExecution) verify(mockExecution, atLeast(3)).getVariable("isDebugLogEnabled") verify(mockExecution, atLeast(3)).setVariable("prefix", Prefix) verify(mockExecution).setVariable(Prefix + "Success", true) } private ExecutionEntity setupMock() { ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class) when(mockProcessDefinition.getKey()).thenReturn("DoUpdateNetworkInstance") RepositoryService mockRepositoryService = mock(RepositoryService.class) when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition) when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("DoUpdateNetworkInstance") when(mockRepositoryService.getProcessDefinition().getId()).thenReturn("100") ProcessEngineServices mockProcessEngineServices = mock(ProcessEngineServices.class) when(mockProcessEngineServices.getRepositoryService()).thenReturn(mockRepositoryService) ExecutionEntity mockExecution = mock(ExecutionEntity.class) // Initialize prerequisite variables when(mockExecution.getId()).thenReturn("100") when(mockExecution.getProcessDefinitionId()).thenReturn("DoUpdateNetworkInstance") when(mockExecution.getProcessInstanceId()).thenReturn("DoUpdateNetworkInstance") when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices) when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition) return mockExecution } }