[MSO-8] Update the maven dependency

Update the maven depenency for sdc-distribution-client to cooperate with the sdc changes.

Change-Id: I2da936e5c40cb68c7181bb78307192dd5655b5dc
Signed-off-by: xg353y <xg353y@intl.att.com>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy
new file mode 100644
index 0000000..4f53757
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/CreateVfModuleVolumeInfraV1Test.groovy
@@ -0,0 +1,209 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*
+
+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
+import org.mockito.ArgumentCaptor
+import org.mockito.MockitoAnnotations
+import org.mockito.runners.MockitoJUnitRunner
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.openecomp.mso.bpmn.common.scripts.MsoGroovyTest;
+
+
+@RunWith(MockitoJUnitRunner.class)
+import org.apache.commons.lang3.*
+
+
+class CreateVfModuleVolumeInfraV1Test extends MsoGroovyTest {
+
+	def jsonRequest = """
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mdt1",
+			"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+		},
+		"requestInfo": {
+			"instanceName": "MSOTESTVOL101a-vSAMP12_base_vol_module-0",
+			"source": "VID",
+			"suppressRollback": false
+		},
+		"relatedInstanceList": [
+			{
+				"relatedInstance": {
+					"instanceId": "{service-instance-id}",
+					"modelInfo": {
+						"modelType": "service",
+						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test",
+						"modelVersion": "2.0"
+					}
+				}
+			}, {
+				"relatedInstance": {
+					"instanceId": "{vnf-instance-id}",
+					"modelInfo": {
+						"modelType": "vnf",
+						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "vSAMP12",
+						"modelVersion": "1",
+						"modelCustomizationName": "vSAMP12"
+					}
+				}
+			}
+		],
+		"requestParameters": {
+			"serviceId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+			"userParams": [
+				{"name": "vnfName", "value": "STMTN5MMSC20" },
+				{"name": "vnfName2", "value": "US1117MTSNJVBR0246" },
+				{"name": "vnfNmInformation", "value": "" },
+				{"name": "vnfType", "value": "pcrf-capacity" },
+				{"name": "vnfId", "value": "skask" },
+				{"name": "vnfStackId", "value": "slowburn" },
+				{"name": "vnfStatus", "value": "created" },
+				{"name": "aicCloudRegion", "value": "MDTWNJ21" },
+				{"name": "availabilityZone", "value": "slcp3-esx-az01" },
+				{"name": "oamNetworkName", "value": "VLAN-OAM-1323" },
+				{"name": "vmName", "value": "slcp34246vbc246ceb" },
+				{"name": "ipagNetworkId", "value": "970cd2b9-7f09-4a12-af47-182ea38ba1f0" },
+				{"name": "vpeNetworkId", "value": "545cc2c3-1930-4100-b534-5d82d0e12bb6" }
+			]
+		}
+	}
+}
+"""
+	
+	def volumeRequestXml = """<volume-request xmlns="http://www.w3.org/2001/XMLSchema">
+   <request-info>
+      <action>CREATE_VF_MODULE_VOL</action>
+      <source>VID</source>
+      <service-instance-id/>
+   </request-info>
+   <volume-inputs>
+      <volume-group-id/>
+      <volume-group-name>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volume-group-name>
+      <vnf-type>Test/vSAMP12</vnf-type>
+      <vf-module-model-name>vSAMP12::base::module-0</vf-module-model-name>
+      <asdc-service-model-version>2.0</asdc-service-model-version>
+      <aic-cloud-region>mdt1</aic-cloud-region>
+      <tenant-id>88a6ca3ee0394ade9403f075db23167e</tenant-id>
+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+      <backout-on-failure>true</backout-on-failure>
+      <model-customization-id/>
+   </volume-inputs>
+   <volume-params>
+      <param name="vnf_name">STMTN5MMSC20</param>
+      <param name="vnf_name2">US1117MTSNJVBR0246</param>
+      <param name="vnf_nm_information"/>
+      <param name="vnf_type">pcrf-capacity</param>
+      <param name="vnf_id">skask</param>
+      <param name="vnf_stack_id">slowburn</param>
+      <param name="vnf_status">created</param>
+      <param name="aic_cloud_region">MDTWNJ21</param>
+      <param name="availability_zone">slcp3-esx-az01</param>
+      <param name="oam_network_name">VLAN-OAM-1323</param>
+      <param name="vm_name">slcp34246vbc246ceb</param>
+      <param name="ipag_network_id">970cd2b9-7f09-4a12-af47-182ea38ba1f0</param>
+      <param name="vpe_network_id">545cc2c3-1930-4100-b534-5d82d0e12bb6</param>
+   </volume-params>
+</volume-request>"""
+	 	
+	def completeMsoRequestXml = """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"
+                            xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <request-info>
+      <request-id>1234</request-id>
+      <action>CREATE</action>
+      <source>VID</source>
+   </request-info>
+   <aetgt:status-message>Volume Group has been created successfully.</aetgt:status-message>
+   <aetgt:mso-bpel-name>BPMN VF Module Volume action: CREATE</aetgt:mso-bpel-name>
+</aetgt:MsoCompletionRequest>"""
+
+
+    @Before
+	public void init()
+	{
+		MockitoAnnotations.initMocks(this)
+	}
+	
+
+	@Test
+	public void testPreProcessRequest() {
+		
+		ExecutionEntity mockExecution = setupMock('CreateVfModuleVolumeInfraV1')
+
+		when(mockExecution.getVariable("prefix")).thenReturn('CVMVINFRAV1_')
+		when(mockExecution.getVariable("bpmnRequest")).thenReturn(jsonRequest)
+		when(mockExecution.getVariable("serviceInstanceId")).thenReturn('')
+		when(mockExecution.getVariable("vnfId")).thenReturn('test-vnf-id')
+		when(mockExecution.getVariable("mso-request-id")).thenReturn('1234')
+								
+		CreateVfModuleVolumeInfraV1 createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
+		createVfModuleVolumeInfraV1.preProcessRequest(mockExecution, 'true')
+		
+		// Capture the arguments to setVariable
+		ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
+		ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
+		
+		verify(mockExecution, times(15)).setVariable(captor1.capture(), captor2.capture())
+		
+		List<String> arg2List = captor2.getAllValues()
+		String volumeRequestActual = arg2List.get(6)
+		String isVidRequestActual = arg2List.get(8) 
+		
+		assertEquals(volumeRequestXml, volumeRequestActual.trim())
+		assertEquals('true', isVidRequestActual)
+	}
+	
+	@Test
+	public void testPostProcessResponse() {
+		
+		ExecutionEntity mockExecution = setupMock('CreateVfModuleVolumeInfraV1')
+		when(mockExecution.getVariable("dbReturnCode")).thenReturn('000')
+		when(mockExecution.getVariable("CVMVINFRAV1_createDBResponse")).thenReturn('')
+		when(mockExecution.getVariable("mso-request-id")).thenReturn('1234')
+		when(mockExecution.getVariable("CVMVINFRAV1_source")).thenReturn('VID')
+								
+		CreateVfModuleVolumeInfraV1 createVfModuleVolumeInfraV1 = new CreateVfModuleVolumeInfraV1()
+		createVfModuleVolumeInfraV1.postProcessResponse(mockExecution, 'true')
+		
+		verify(mockExecution).setVariable('CVMVINFRAV1_Success', true)
+		verify(mockExecution).setVariable('CVMVINFRAV1_CompleteMsoProcessRequest', completeMsoRequestXml)
+	}
+	
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy
new file mode 100644
index 0000000..2e6b35e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DeleteVfModuleVolumeInfraV1Test.groovy
@@ -0,0 +1,166 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
+
+import static org.junit.Assert.*
+import static org.mockito.Mockito.*
+
+import org.apache.commons.lang3.*
+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
+import org.junit.Before
+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.MsoGroovyTest
+import org.openecomp.mso.bpmn.core.WorkflowException
+
+
+@RunWith(MockitoJUnitRunner.class)
+class DeleteVfModuleVolumeInfraV1Test extends MsoGroovyTest {
+
+	def deleteVnfAdapterRequestXml = """<deleteVolumeGroupRequest>
+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+   <tenantId>fba1bd1e195a404cacb9ce17a9b2b421</tenantId>
+   <volumeGroupId>78987</volumeGroupId>
+   <volumeGroupStackId/>
+   <skipAAI>true</skipAAI>
+   <msoRequest>
+      <requestId>TEST-REQUEST-ID-0123</requestId>
+      <serviceInstanceId>1234</serviceInstanceId>
+   </msoRequest>
+   <messageId>ebb9ef7b-a6a5-40e6-953e-f868f1767677</messageId>
+   <notificationUrl>http://localhost:28080/mso/WorkflowMessage/VNFAResponse/ebb9ef7b-a6a5-40e6-953e-f868f1767677</notificationUrl>
+</deleteVolumeGroupRequest>"""
+	
+	def dbRequestXml = """<soapenv:Envelope xmlns:req="http://org.openecomp.mso/requestsdb"
+                  xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <req:updateInfraRequest>
+         <requestId>TEST-REQUEST-ID-0123</requestId>
+         <lastModifiedBy>BPMN</lastModifiedBy>
+         <statusMessage>VolumeGroup successfully deleted</statusMessage>
+         <requestStatus>COMPLETE</requestStatus>
+         <progress>100</progress>
+         <vnfOutputs/>
+      </req:updateInfraRequest>
+   </soapenv:Body>
+</soapenv:Envelope>"""
+	
+	def completionRequestXml = """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"
+                            xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <request-info>
+      <request-id>TEST-REQUEST-ID-0123</request-id>
+      <action>DELETE</action>
+      <source>VID</source>
+   </request-info>
+   <aetgt:status-message>Volume Group has been deleted successfully.</aetgt:status-message>
+   <aetgt:mso-bpel-name>BPMN VF Module Volume action: DELETE</aetgt:mso-bpel-name>
+</aetgt:MsoCompletionRequest>"""
+	
+	def falloutHandlerRequestXml = """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+                             xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <request-info>
+      <request-id>TEST-REQUEST-ID-0123</request-id>
+      <action>DELETE</action>
+      <source>VID</source>
+   </request-info>
+   <aetgt:WorkflowException>
+      <aetgt:ErrorMessage>Unexpected Error</aetgt:ErrorMessage>
+      <aetgt:ErrorCode>5000</aetgt:ErrorCode>
+   </aetgt:WorkflowException>
+</aetgt:FalloutHandlerRequest>"""
+	
+	@Before
+	public void init()
+	{
+		MockitoAnnotations.initMocks(this)
+	}
+	
+	
+	@Test
+	public void testPrepareVnfAdapterDeleteRequest() {
+		
+		ExecutionEntity mockExecution = setupMock('DeleteVfModuleVolumeInfraV1')
+		when(mockExecution.getVariable("DELVfModVol_cloudRegion")).thenReturn('RDM2WAGPLCP')
+		when(mockExecution.getVariable("DELVfModVol_tenantId")).thenReturn('fba1bd1e195a404cacb9ce17a9b2b421')
+		when(mockExecution.getVariable("DELVfModVol_volumeGroupId")).thenReturn('78987')
+		when(mockExecution.getVariable("DELVfModVol_volumeGroupHeatStackId")).thenReturn('')
+		when(mockExecution.getVariable("DELVfModVol_requestId")).thenReturn('TEST-REQUEST-ID-0123')
+		when(mockExecution.getVariable("DELVfModVol_serviceId")).thenReturn('1234')
+		when(mockExecution.getVariable("DELVfModVol_messageId")).thenReturn('ebb9ef7b-a6a5-40e6-953e-f868f1767677')
+		when(mockExecution.getVariable("URN_mso_workflow_message_endpoint")).thenReturn('http://localhost:28080/mso/WorkflowMessage')
+		when(mockExecution.getVariable("URN_mso_use_qualified_host")).thenReturn('')
+
+		DeleteVfModuleVolumeInfraV1 myproc = new DeleteVfModuleVolumeInfraV1()
+		myproc.prepareVnfAdapterDeleteRequest(mockExecution, 'true')
+		
+		verify(mockExecution).setVariable("DELVfModVol_deleteVnfARequest", deleteVnfAdapterRequestXml)
+
+	}
+	
+	@Test
+	public void testPrepareDbRequest() {
+		
+		ExecutionEntity mockExecution = setupMock('DeleteVfModuleVolumeInfraV1')
+		when(mockExecution.getVariable("DELVfModVol_requestId")).thenReturn('TEST-REQUEST-ID-0123')
+		when(mockExecution.getVariable("DELVfModVol_volumeOutputs")).thenReturn('')
+		
+		DeleteVfModuleVolumeInfraV1 myproc = new DeleteVfModuleVolumeInfraV1()
+		myproc.prepareDBRequest(mockExecution, 'true')
+		
+		verify(mockExecution).setVariable("DELVfModVol_updateInfraRequest", dbRequestXml)
+	}
+
+	@Test
+	public void testPrepareCompletionHandlerRequest() {
+		
+		ExecutionEntity mockExecution = setupMock('DeleteVfModuleVolumeInfraV1')
+		when(mockExecution.getVariable("mso-request-id")).thenReturn('TEST-REQUEST-ID-0123')
+		when(mockExecution.getVariable("DELVfModVol_source")).thenReturn('VID')
+		
+		DeleteVfModuleVolumeInfraV1 myproc = new DeleteVfModuleVolumeInfraV1()
+		myproc.prepareCompletionHandlerRequest(mockExecution, 'true')
+		
+		verify(mockExecution).setVariable("DELVfModVol_CompleteMsoProcessRequest", completionRequestXml)
+	}
+	
+	@Test
+	public void testPrepareFalloutHandler() {
+		
+		WorkflowException workflowException = new WorkflowException('DeleteVfModuleVolumeInfraV1', 5000, 'Unexpected Error')
+		
+		ExecutionEntity mockExecution = setupMock('DeleteVfModuleVolumeInfraV1')
+		
+		when(mockExecution.getVariable("DELVfModVol_requestId")).thenReturn('TEST-REQUEST-ID-0123')
+		when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
+		when(mockExecution.getVariable("DELVfModVol_source")).thenReturn('VID')
+		
+		DeleteVfModuleVolumeInfraV1 myproc = new DeleteVfModuleVolumeInfraV1()
+		myproc.prepareFalloutHandler(mockExecution, 'true')
+		
+		verify(mockExecution).setVariable("DELVfModVol_Success", false)
+		verify(mockExecution).setVariable("DELVfModVol_FalloutHandlerRequest", falloutHandlerRequestXml)
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1Test.groovy
new file mode 100644
index 0000000..cf95ed3
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/DoCreateVfModuleVolumeV1Test.groovy
@@ -0,0 +1,218 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
+
+import static org.junit.Assert.*
+import static org.mockito.Mockito.*
+
+import org.apache.commons.lang3.*
+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
+import org.junit.Assert
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.mockito.ArgumentCaptor
+import org.mockito.MockitoAnnotations
+import org.mockito.runners.MockitoJUnitRunner
+import org.openecomp.mso.bpmn.common.scripts.MsoGroovyTest
+
+
+@RunWith(MockitoJUnitRunner.class)
+class DoCreateVfModuleVolumeV1Test extends MsoGroovyTest  {
+	
+	def volumeRequest =
+"""<volume-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<request-info>
+		<test-data-only>123abc</test-data-only> <!-- don't remove this tag. Its used for junit test -->
+		<request-id>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</request-id>
+		<action>CREATE_VF_MODULE_VOL</action>
+		<source>SoapUI-bns-create-base-vol-1001-1</source>
+	</request-info>
+	<volume-inputs>
+		<vnf-type>Test/vSAMP12</vnf-type>
+		<vf-module-model-name>vSAMP12::base::module-0</vf-module-model-name>
+		<backout-on-failure>true</backout-on-failure>
+		<asdc-service-model-version>2.0</asdc-service-model-version>
+		<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		<aic-cloud-region>MDTWNJ21</aic-cloud-region>
+		<tenant-id>897deadc2b954a6bac6d3c197fb3525e</tenant-id>
+		<volume-group-name>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volume-group-name>
+		<volume-group-id/>
+	</volume-inputs>
+	<volume-params>
+		<param name="param1">value1</param>"
+		<param name="param2">value2</param>"
+		<param name="param3">value3</param>"
+	</volume-params>	
+</volume-request>"""
+
+	def genericVnfResponseXml = """
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v8">
+	<vnf-id>TEST-VNF-ID-0123</vnf-id>
+	<vnf-name>STMTN5MMSC20</vnf-name>
+	<vnf-type>pcrf-capacity</vnf-type>
+	<service-id>SDN-MOBILITY</service-id>
+	<equipment-role>vPCRF</equipment-role>
+	<orchestration-status>pending-create</orchestration-status>
+	<in-maint>false</in-maint>
+	<is-closed-loop-disabled>false</is-closed-loop-disabled>
+	<persona-model-id>introvert</persona-model-id>
+	<persona-model-version>2.0</persona-model-version>
+	<resource-version>0000020</resource-version>
+	<vf-modules>
+		<vf-module>
+			<vf-module-id>lukewarm</vf-module-id>
+			<vf-module-name>PCRF::module-0-0</vf-module-name>
+			<persona-model-id>introvert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>true</is-base-vf-module>
+			<heat-stack-id>fastburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000074</resource-version>
+		</vf-module>
+		<vf-module>
+			<vf-module-id>supercool</vf-module-id>
+			<vf-module-name>PCRF::module-1-0</vf-module-name>
+			<persona-model-id>extrovert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>false</is-base-vf-module>
+			<heat-stack-id>slowburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000075</resource-version>
+		</vf-module>
+	</vf-modules>
+	<relationship-list/>
+	<l-interfaces/>
+	<lag-interfaces/>
+</generic-vnf>
+"""		
+	def String expectedCreateVnfRequestXml = """<createVolumeGroupRequest>
+   <cloudSiteId>MDTWNJ21</cloudSiteId>
+   <tenantId>897deadc2b954a6bac6d3c197fb3525e</tenantId>
+   <vnfId>TEST-VNF-ID-0123</vnfId>
+   <vnfName>STMTN5MMSC20</vnfName>
+   <volumeGroupId>test-vol-group-id-123</volumeGroupId>
+   <volumeGroupName>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volumeGroupName>
+   <vnfType>Test/vSAMP12</vnfType>
+   <vnfVersion>2.0</vnfVersion>
+   <vfModuleType>vSAMP12::base::module-0</vfModuleType>
+   <modelCustomizationUuid/>
+   <volumeGroupParams>
+      <entry>
+         <key>vnf_id</key>
+         <value>TEST-VNF-ID-0123</value>
+      </entry>
+      <entry>
+         <key>vnf_name</key>
+         <value>STMTN5MMSC20</value>
+      </entry>
+      <entry>
+         <key>vf_module_id</key>
+         <value>test-vol-group-id-123</value>
+      </entry>
+      <entry>
+         <key>vf_module_name</key>
+         <value>MSOTESTVOL101a-vSAMP12_base_vol_module-0</value>
+      </entry>
+      <entry>
+         <key>param1</key>
+         <value>value1</value>
+      </entry>
+      <entry>
+         <key>param2</key>
+         <value>value2</value>
+      </entry>
+      <entry>
+         <key>param3</key>
+         <value>value3</value>
+      </entry>
+   </volumeGroupParams>
+   <skipAAI>true</skipAAI>
+   <backout>true</backout>
+   <failIfExists>true</failIfExists>
+   <msoRequest>
+      <requestId>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</requestId>
+      <serviceInstanceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceInstanceId>
+   </msoRequest>
+   <messageId>111</messageId>
+   <notificationUrl>http://localhost:28080/mso/WorkflowMessage/12345678</notificationUrl>
+</createVolumeGroupRequest>
+"""
+
+    @Before
+	public void init()
+	{
+		MockitoAnnotations.initMocks(this)
+		
+	}
+	
+	@Test
+	public void TestPreProcessRequest() {
+		
+		ExecutionEntity mockExecution = setupMock('DoCreateVfModuleVolumeV1')
+		
+		when(mockExecution.getVariable("DoCreateVfModuleVolumeV1Request")).thenReturn(volumeRequest)
+		when(mockExecution.getVariable("vnf-id")).thenReturn('test-vnf-id-123')
+		when(mockExecution.getVariable("volume-group-id")).thenReturn('test-volume-group-id-123')
+		when(mockExecution.getVariable("mso-request-id")).thenReturn('test-request-id-123')
+								
+		DoCreateVfModuleVolumeV1 myprocess = new DoCreateVfModuleVolumeV1()
+		myprocess.preProcessRequest(mockExecution, 'true')
+		
+		verify(mockExecution).setVariable('DCVFMODVOLV1_serviceId', 'a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb')
+		verify(mockExecution).setVariable('DCVFMODVOLV1_source', 'SoapUI-bns-create-base-vol-1001-1')
+		verify(mockExecution, times(7)).setVariable(anyString(), anyString())
+	}
+	
+	@Test
+	public void TestPrepareVnfAdapterCreateRequest() {
+		
+		ExecutionEntity mockExecution = setupMock('DoCreateVfModuleVolumeV1')
+		
+		when(mockExecution.getVariable("DCVFMODVOLV1_Request")).thenReturn(volumeRequest)
+		when(mockExecution.getVariable("DCVFMODVOLV1_requestId")).thenReturn('d8d4fcfa-fd7e-4413-b19d-c95aa67291b8')
+		when(mockExecution.getVariable("DCVFMODVOLV1_serviceId")).thenReturn('a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb')
+		when(mockExecution.getVariable("DCVFMODVOLV1_AAIQueryGenericVfnResponse")).thenReturn(genericVnfResponseXml)
+		when(mockExecution.getVariable("DCVFMODVOLV1_rollbackEnabled")).thenReturn(true)
+		when(mockExecution.getVariable("volume-group-id")).thenReturn('test-vol-group-id-123')
+		when(mockExecution.getVariable("URN_mso_workflow_message_endpoint")).thenReturn('http://localhost:28080/mso/WorkflowMessage')
+		when(mockExecution.getVariable("URN_mso_use_qualified_host")).thenReturn(true)
+								
+		DoCreateVfModuleVolumeV1 myprocess = new DoCreateVfModuleVolumeV1()
+		myprocess.prepareVnfAdapterCreateRequest(mockExecution, 'true')
+		
+		// Capture the arguments to setVariable
+		ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
+		ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
+		
+		verify(mockExecution, times(2)).setVariable(captor1.capture(), captor2.capture())
+		
+		List<String> arg2List = captor2.getAllValues()
+		String createVnfRequestXml = arg2List.get(0)
+		
+		//replace messageID value because it is random generated
+		createVnfRequestXml = createVnfRequestXml.replaceAll("<messageId>(.+?)</messageId>", "<messageId>111</messageId>")
+												 .replaceAll("<notificationUrl>(.+?)</notificationUrl>", "<notificationUrl>http://localhost:28080/mso/WorkflowMessage/12345678</notificationUrl>")
+		
+		Assert.assertEquals(expectedCreateVnfRequestXml.trim(), createVnfRequestXml.trim())
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstanceInfraTest.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstanceInfraTest.groovy
new file mode 100644
index 0000000..d19081c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateNetworkInstanceInfraTest.groovy
@@ -0,0 +1,3094 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
+
+import static org.junit.Assert.*
+import static org.mockito.Mockito.*
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetwork
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicy
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkRouteTable
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkVpnBinding
+
+import org.apache.commons.lang3.*
+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.ArgumentCaptor
+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
+
+
+@RunWith(MockitoJUnitRunner.class)
+class UpdateNetworkInstanceInfraTest  {
+	
+	@Rule
+	public WireMockRule wireMockRule = new WireMockRule(28090);
+	
+		def utils = new MsoUtils()
+
+		String jsonIncomingRequest =
+		"""{ "requestDetails": {
+	      "modelInfo": {
+			"modelType": "networkTyp",
+  			"modelId": "modelId",
+  			"modelNameVersionId": "modelNameVersionId",
+  			"modelName": "CONTRAIL_EXTERNAL",
+  			"modelVersion": "1"
+		  },
+		  "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_Missingname =
+		"""{ "requestDetails": {
+	      "modelInfo": {
+			"modelType": "networkTyp",
+  			"modelId": "modelId",
+  			"modelNameVersionId": "modelNameVersionId",
+  			"modelName": "CONTRAIL_EXTERNAL",
+  			"modelVersion": "1"
+		  },
+		  "cloudConfiguration": {
+  			"lcpCloudRegionId": "RDM2WAGPLCP",
+  			"tenantId": "7dd5365547234ee8937416c65507d266"
+		  },
+		  "requestInfo": {
+  			"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 jsonIncomingRequest_MissingCloudRegion =
+		"""{ "requestDetails": {
+	      "modelInfo": {
+			"modelType": "networkTyp",
+  			"modelId": "modelId",
+  			"modelNameVersionId": "modelNameVersionId",
+  			"modelName": "CONTRAIL_EXTERNAL",
+  			"modelVersion": "1"
+		  },
+		  "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 =
+   """<network-request xmlns="http://www.w3.org/2001/XMLSchema">  
+   <request-info>             
+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id> 
+      <action>UPDATE</action>  
+      <source>VID</source>  
+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id> 
+   </request-info>  
+   <network-inputs>  
+      <network-id/>  
+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>  
+      <network-type>CONTRAIL_EXTERNAL</network-type> 
+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>  
+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id> 
+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>  
+      <backout-on-failure>true</backout-on-failure> 
+   </network-inputs>  
+   <network-params>
+      <param name="some_user_param1">someValue1</param> 
+   </network-params> 
+</network-request>
+"""
+
+  
+String expectedNetworkRequestMissingCloudRegion =
+"""<network-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <request-info>
+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
+      <action>UPDATE</action>
+      <source>PORTAL</source>
+   </request-info>
+   <network-inputs>
+      <network-name>HSL_direct_net_2</network-name>
+      <network-type>CONTRAIL_EXTERNAL</network-type>
+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+      <aic-cloud-region/>
+      <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>
+   </network-inputs>
+   <network-params>
+      <param name="shared">1</param>
+   </network-params>
+</network-request>"""
+
+		// vnfRESTRequest
+		String networkRESTRequest =
+"""<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+					xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1"
+					statusCode="200">
+	<rest:payload contentType="text/xml">
+	   <vnfreq:network-request>
+		  <vnfreq:request-info>
+			 <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
+			 <vnfreq:action>UPDATE</vnfreq:action>
+			 <vnfreq:source>PORTAL</vnfreq:source>
+		  </vnfreq:request-info>
+		  <vnfreq:network-inputs>
+			 <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+			 <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
+			 <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
+			 <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
+			 <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
+			 <vnfreq:physicalNetworkName>dvs-slcp3-01</vnfreq:physicalNetworkName>
+			 <vnfreq:vlans>3008</vnfreq:vlans>
+		  </vnfreq:network-inputs>
+		  <vnfreq:network-params>
+			 <param name="shared">1</param>
+			 <param name="external">0</param>
+		  </vnfreq:network-params>
+	   </vnfreq:network-request>
+	</rest:payload>
+ </rest:RESTResponse>"""
+
+	String networkInputsMissingName =
+ """<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+	<network-name/>
+	<network-type>CONTRAIL_EXTERNAL</network-type>
+	<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+	<aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
+	<tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>
+ </network-inputs>"""
+
+String networkInputsMissingCloudRegion =
+"""<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <network-name>HSL_direct_net_2</network-name>
+   <network-type>CONTRAIL_EXTERNAL</network-type>
+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+   <aic-cloud-region/>
+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>
+</network-inputs>"""
+   
+	String expectedUpdateNetworkInstanceInfraRequest =
+	"""<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+              xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1"
+              contentType="text/xml">
+   <vnfreq:network-request>
+      <vnfreq:request-info>
+         <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
+         <vnfreq:action>UPDATE</vnfreq:action>
+         <vnfreq:source>PORTAL</vnfreq:source>
+      </vnfreq:request-info>
+      <vnfreq:network-inputs>
+         <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+         <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
+         <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
+         <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
+         <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
+         <vnfreq:physicalNetworkName>dvs-slcp3-01</vnfreq:physicalNetworkName>
+         <vnfreq:vlans>3008</vnfreq:vlans>
+      </vnfreq:network-inputs>
+      <vnfreq:network-params>
+         <param name="shared">1</param>
+         <param name="external">0</param>
+      </vnfreq:network-params>
+   </vnfreq:network-request>
+</rest:payload>"""
+  
+	  String expectedUpdateNetworkInstanceInfraRequest_Output =
+  """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+              xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1"
+              contentType="text/xml">
+   <vnfreq:network-request>
+      <vnfreq:request-info>
+         <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
+         <vnfreq:action>UPDATE</vnfreq:action>
+         <vnfreq:source>PORTAL</vnfreq:source>
+      </vnfreq:request-info>
+      <vnfreq:network-inputs>
+         <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+         <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
+         <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
+         <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
+         <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
+      </vnfreq:network-inputs>
+      <vnfreq:network-outputs>
+         <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+         <vnfreq:network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</vnfreq:network-id>
+      </vnfreq:network-outputs>
+      <vnfreq:network-params>
+         <param name="shared">1</param>
+         <param name="external">0</param>
+      </vnfreq:network-params>
+   </vnfreq:network-request>
+</rest:payload>"""
+	
+	  // expectedNetworkRequest
+	  String expectedNetworkRequest =
+  """<network-request xmlns="http://www.w3.org/2001/XMLSchema">  
+   <request-info>  
+      <action>UPDATE</action>  
+      <source>VID</source>  
+      <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id> 
+   </request-info>  
+   <network-inputs>  
+      <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>  
+      <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>  
+      <network-type>CONTRAIL_EXTERNAL</network-type> 
+      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>  
+      <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id> 
+      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>  
+      <backout-on-failure>true</backout-on-failure> 
+   </network-inputs>
+   <network-params>
+      <param name="dhcp-enabled">true</param>
+      <param name="serviceId">a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</param>
+      <param name="cidr-mask">true</param>
+  	  <param name="backoutOnFailure">true</param>
+  	  <param name="gateway-address">10.10.125.1</param>
+   </network-params>   
+</network-request>"""
+  
+String expectedNetworkInputs =
+"""<network-inputs xmlns="http://www.w3.org/2001/XMLSchema">
+   <network-id/>
+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+   <network-type>CONTRAIL_EXTERNAL</network-type>
+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
+   <tenant-id>7dd5365547234ee8937416c65507d266</tenant-id>
+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+   <backout-on-failure>true</backout-on-failure>
+</network-inputs>"""
+
+ 
+  String NetworkRequest_noPhysicalName =
+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">
+   <vnfreq:request-info>
+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
+      <vnfreq:action>UPDATE</vnfreq:action>
+      <vnfreq:source>PORTAL</vnfreq:source>
+   </vnfreq:request-info>
+   <vnfreq:network-inputs>
+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
+      <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
+      <vnfreq:vlans>3008</vnfreq:vlans>
+   </vnfreq:network-inputs>
+   <vnfreq:network-params>
+   <network-params>
+      <param name="dhcp-enabled">true</param>
+      <param name="serviceId">a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</param>
+      <param name="cidr-mask">true</param>
+  	  <param name="backoutOnFailure">true</param>
+  	  <param name="gateway-address">10.10.125.1</param>
+   </network-params> 
+   </vnfreq:network-params>
+</vnfreq:network-request>"""
+  
+  String vnfRequestFakeRegion =
+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">
+   <vnfreq:request-info>
+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
+      <vnfreq:action>UPDATE</vnfreq:action>
+      <vnfreq:source>PORTAL</vnfreq:source>
+   </vnfreq:request-info>
+   <vnfreq:network-inputs>
+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
+      <vnfreq:aic-cloud-region>MDTWNJ21</vnfreq:aic-cloud-region>
+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
+   </vnfreq:network-inputs>
+   <vnfreq:network-params>
+      <param name="shared">1</param>
+      <param name="external">0</param>
+   </vnfreq:network-params>
+</vnfreq:network-request>"""
+  
+  // expectedNetworkRequest
+	  String expectedNetworkRequest_Outputs =
+  """<vnfreq:network-request xmlns:vnfreq="http://org.openecomp/mso/infra/vnf-request/v1">
+   <vnfreq:request-info>
+      <vnfreq:request-id>1ef47428-cade-45bd-a103-0751e8b2deb0</vnfreq:request-id>
+      <vnfreq:action>UPDATE</vnfreq:action>
+      <vnfreq:source>PORTAL</vnfreq:source>
+   </vnfreq:request-info>
+   <vnfreq:network-inputs>
+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+      <vnfreq:network-type>CONTRAIL_EXTERNAL</vnfreq:network-type>
+      <vnfreq:service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</vnfreq:service-id>
+      <vnfreq:aic-cloud-region>RDM2WAGPLCP</vnfreq:aic-cloud-region>
+      <vnfreq:tenant-id>7dd5365547234ee8937416c65507d266</vnfreq:tenant-id>
+   </vnfreq:network-inputs>
+   <vnfreq:network-outputs>
+      <vnfreq:network-name>MNS-25180-L-01-dmz_direct_net_1</vnfreq:network-name>
+      <vnfreq:network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</vnfreq:network-id>
+   </vnfreq:network-outputs>
+   <vnfreq:network-params>
+      <param name="shared">1</param>
+      <param name="external">0</param>
+   </vnfreq:network-params>
+</vnfreq:network-request>"""
+  
+		  
+  // expectedNetworkRequest
+		  String networkInputs_404 =
+		  """<network-inputs  xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+		      <network-name>myOwn_Network</network-name>
+		      <network-type>CONTRAIL_EXTERNAL</network-type>
+		      <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		      <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
+		      <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>
+		   </network-inputs>"""
+  
+  String networkInputs =
+  """<network-inputs xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>
+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+   <network-type>CONTRAIL_EXTERNAL</network-type>
+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+   <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
+   <tenant-id>e81d842d3e8b45c5a59f57cd76af3aaf</tenant-id>
+</network-inputs>"""
+  
+	  String networkOutputs =
+	"""<network-outputs>
+                   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>			
+                   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+                 </network-outputs>"""
+
+	  String queryAAIResponse =
+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v3">
+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>
+         <network-name>HSL_direct_net_2</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-delete</orchestration-status>
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-delete</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>"""
+  
+	  String queryIdAIIResponse =
+	  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+		 <resource-version>l3-version</resource-version>
+         <orchestration-status>pending-delete</orchestration-status>
+	     <heat-stack-id>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</heat-stack-id>
+	  	 <physical-network-name>networkName</physical-network-name>
+	     <is-provider-network>false</is-provider-network>
+	  	 <is-shared-network>true</is-shared-network>
+	  	 <is-external-network>false</is-external-network>
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-delete</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-delete</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+	  	 <segmentation-assignments>
+	  		<segmentation-id>414</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>	
+	  	 <segmentation-assignments>
+	  		<segmentation-id>415</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>	
+		 <ctag-assignments>	
+			 <ctag-assignment>	
+				 <vlan-id-inner>inner</vlan-id-inner>	
+				 <resource-version>ctag-version</resource-version>	  
+	             <relationship-list>
+					<relationship>
+					   <related-to>tenant</related-to>
+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>
+					   <relationship-data>
+						  <relationship-key>tenant.tenant-id</relationship-key>
+						  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>
+					   </relationship-data>
+					   <related-to-property>
+						  <property-key>tenant.tenant-name</property-key>
+						  <property-value>MSOTest1</property-value>
+					   </related-to-property>
+					</relationship>
+					<relationship>
+					   <related-to>vpn-binding</related-to>
+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>
+					   <relationship-data>
+						  <relationship-key>vpn-binding.vpn-id</relationship-key>
+						  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>
+					   </relationship-data>
+					   <related-to-property>
+						  <property-key>vpn-binding.vpn-name</property-key>
+						  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>
+					   </related-to-property>
+					</relationship>
+					<relationship>
+					   <related-to>vpn-binding</related-to>
+					   <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>
+					   <relationship-data>
+						  <relationship-key>vpn-binding.vpn-id</relationship-key>
+						  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>
+					   </relationship-data>
+					   <related-to-property>
+						  <property-key>vpn-binding.vpn-name</property-key>
+						  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>
+					   </related-to-property>
+					</relationship>
+				 </relationship-list>  
+				</ctag-assignment>	
+		 </ctag-assignments>
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+			<relationship>
+			  <related-to>network-policy</related-to>
+			  <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>
+			  <relationship-data>
+				  <relationship-key>network-policy.network-policy-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>
+			  </relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+	  	       <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>"""
+  
+	  String queryIdAIIResponseTestScenario01 =
+  """<?xml version="1.0" encoding="UTF-8"?>
+<l3-network xmlns="http://org.openecomp.aai.inventory/v7">
+	<network-id>4da55fe4-7a9e-478c-a434-8a98d62265ab</network-id>
+	<network-name>GN_EVPN_direct_net_0_ST1</network-name>
+	<network-type>CONTRAIL30_BASIC</network-type>
+	<network-role>GN_EVPN_direct</network-role>
+	<network-technology>contrail</network-technology>
+	<is-bound-to-vpn>false</is-bound-to-vpn>
+	<service-id>9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+	<network-role-instance>0</network-role-instance>
+	<resource-version>1465398611</resource-version>
+	<orchestration-status>pending-delete</orchestration-status>
+  	<physical-network-name>networkName</physical-network-name>
+	<is-provider-network>false</is-provider-network>
+	<is-shared-network>true</is-shared-network>
+	<is-external-network>false</is-external-network>
+	<subnets>
+		<subnet>
+			<subnet-id>cb1a7b47-5428-44c9-89c2-8b17541c3228</subnet-id>
+			<gateway-address>108.239.40.1</gateway-address>
+			<network-start-address>108.239.40.0</network-start-address>
+			<cidr-mask>28</cidr-mask>
+			<ip-version>4</ip-version>
+			<orchestration-status>pending-delete</orchestration-status>
+			<dhcp-enabled>true</dhcp-enabled>
+			<dhcp-start>108.239.40.0</dhcp-start>
+			<dhcp-end>108.239.40.0</dhcp-end>
+			<resource-version>1465398611</resource-version>
+  		    <subnet-name>subnetName</subnet-name>
+			<relationship-list />
+		</subnet>
+		<subnet>
+			<subnet-id>e2cc7c14-90f0-4205-840d-b4e07f04e621</subnet-id>
+			<gateway-address>2606:ae00:2e01:604::1</gateway-address>
+			<network-start-address>2606:ae00:2e01:604::</network-start-address>
+			<cidr-mask>64</cidr-mask>
+			<ip-version>6</ip-version>
+			<orchestration-status>pending-delete</orchestration-status>
+			<dhcp-enabled>true</dhcp-enabled>
+			<dhcp-start>2606:ae00:2e01:604::</dhcp-start>
+			<dhcp-end>2606:ae00:2e01:604::</dhcp-end>
+			<resource-version>1465398611</resource-version>
+  			<subnet-name>subnetName</subnet-name>
+			<relationship-list />
+		</subnet>
+	</subnets>
+	<ctag-assignments />
+	<segmentation-assignments>
+	   	<segmentation-id>416</segmentation-id>
+	  	<resource-version>4132176</resource-version>
+	</segmentation-assignments>
+	<relationship-list>
+		<relationship>
+			<related-to>cloud-region</related-to>
+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/
+			</related-link>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>AAIAIC25</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>cloud-region.owner-defined-type</property-key>
+				<property-value></property-value>
+			</related-to-property>
+		</relationship>
+		<relationship>
+			<related-to>tenant</related-to>
+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/4ae1d3446a4c48b2bec44b6cfba06d68/</related-link>
+			<relationship-data>
+				<relationship-key>tenant.tenant-id</relationship-key>
+				<relationship-value>4ae1d3446a4c48b2bec44b6cfba06d68
+				</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>AAIAIC25</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>tenant.tenant-name</property-key>
+				<property-value>Ruchira Contrail 3.0 test</property-value>
+			</related-to-property>
+		</relationship>
+		<relationship>
+			<related-to>vpn-binding</related-to>
+			<related-link>https://mtanjv9aaas03.aic.cip.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+			<relationship-data>
+				<relationship-key>vpn-binding.vpn-id</relationship-key>
+				<relationship-value>9a7b327d9-287aa00-82c4b0-100001</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>vpn-binding.vpn-name</property-key>
+				<property-value>GN_EVPN_direct_net_0_ST1</property-value>
+			</related-to-property>
+		</relationship>
+		<relationship>
+		   <related-to>route-table-reference</related-to>
+		   <relationship-data>
+			  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+			  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+		   </relationship-data>
+		</relationship>
+	</relationship-list>
+</l3-network>"""	
+  
+  String queryIdAIIResponseVpnNotPresent =
+  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-delete</orchestration-status>
+	  	 <physical-network-name>networkName</physical-network-name>
+	     <is-provider-network>false</is-provider-network>
+	  	 <is-shared-network>true</is-shared-network>
+	  	 <is-external-network>false</is-external-network>
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-delete</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+  			   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+         <relationship-list/>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>"""
+  
+	  String queryNameAIIResponse =
+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+		                   statusCode="200">
+		   <rest:headers>
+		      <rest:header name="Transfer-Encoding" value="chunked"/>
+		      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+		      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+		      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+		      <rest:header name="Content-Type" value="application/xml"/>
+		      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+		      <rest:header name="Cache-Control" value="private"/>
+		   </rest:headers>
+		   <rest:payload contentType="text/xml">
+		      <l3-network xmlns="http://org.openecomp.aai.inventory/v6">
+		         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+		         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+		         <network-type>CONTRAIL_EXTERNAL</network-type>
+		         <network-role>dmz_direct</network-role>
+		         <network-technology>contrail</network-technology>
+		         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		         <network-role-instance>0</network-role-instance>
+		         <orchestration-status>pending-delete</orchestration-status>
+		         <subnets>
+		            <subnet>
+		               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+		               <gateway-address>107.239.52.1</gateway-address>
+		               <network-start-address>107.239.52.0</network-start-address>
+		               <cidr-mask>24</cidr-mask>
+		               <ip-version>4</ip-version>
+		               <orchestration-status>pending-delete</orchestration-status>
+		               <dhcp-enabled>true</dhcp-enabled>
+		               <relationship-list/>
+		            </subnet>
+		         </subnets>
+		         <relationship-list>
+		            <relationship>
+		               <related-to>vpn-binding</related-to>
+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+		               <relationship-data>
+		                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+		                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+		               </relationship-data>
+		            </relationship>
+		            <relationship>
+		               <related-to>vpn-binding</related-to>
+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+		               <relationship-data>
+		                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+		                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+		               </relationship-data>
+		            </relationship>
+		            <relationship>
+		               <related-to>tenant</related-to>
+		               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+		               <relationship-data>
+		                  <relationship-key>tenant.tenant-id</relationship-key>
+		                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+		               </relationship-data>
+		            </relationship>
+		         </relationship-list>
+		      </l3-network>
+		   </rest:payload>
+		</rest:RESTResponse>"""
+  
+		  String queryNameAIIResponseVpnNotPresent =
+		  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+		                   statusCode="200">
+		   <rest:headers>
+		      <rest:header name="Transfer-Encoding" value="chunked"/>
+		      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+		      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+		      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+		      <rest:header name="Content-Type" value="application/xml"/>
+		      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+		      <rest:header name="Cache-Control" value="private"/>
+		   </rest:headers>
+		   <rest:payload contentType="text/xml">
+		      <l3-network xmlns="http://org.openecomp.aai.inventory/v6>
+		         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+		         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+		         <network-type>CONTRAIL_EXTERNAL</network-type>
+		         <network-role>dmz_direct</network-role>
+		         <network-technology>contrail</network-technology>
+		         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		         <network-role-instance>0</network-role-instance>
+		         <orchestration-status>pending-delete</orchestration-status>
+		         <subnets>
+		            <subnet>
+		               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+		               <gateway-address>107.239.52.1</gateway-address>
+		               <network-start-address>107.239.52.0</network-start-address>
+		               <cidr-mask>24</cidr-mask>
+		               <ip-version>4</ip-version>
+		               <orchestration-status>pending-delete</orchestration-status>
+		               <dhcp-enabled>true</dhcp-enabled>
+		               <relationship-list/>
+		            </subnet>
+		         </subnets>
+		      </l3-network>
+		   </rest:payload>
+		</rest:RESTResponse>"""
+		  
+	  String aaiVpnResponseStub =
+  """<rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+              xmlns="http://org.openecomp.aai.inventory/v8"
+              contentType="text/xml">
+   <vpn-binding>
+      <global-route-target/>
+   </vpn-binding>
+</rest:payload>"""	
+		  
+	  String queryVpnBindingAAIResponse =
+	   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <vpn-binding xmlns="http://org.openecomp.aai.inventory/v6">
+         <vpn-id>9a7b327d9-287aa00-82c4b0-105757</vpn-id>
+         <vpn-name>GN_EVPN_Test</vpn-name>
+         <global-route-target>13979:105757</global-route-target>
+         <relationship-list>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/689ec39e-c5fc-4462-8db2-4f760763ad28/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>689ec39e-c5fc-4462-8db2-4f760763ad28</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/1a49396b-19b3-40a4-8792-aa2fbd0f0704/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>1a49396b-19b3-40a4-8792-aa2fbd0f0704</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/774f3329-3c83-4771-86c7-9e6207cd50fd/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>774f3329-3c83-4771-86c7-9e6207cd50fd</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </vpn-binding>
+   </rest:payload>
+</rest:RESTResponse>"""
+  
+	   String updateDBRequest_Active =
+	   """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+                  xmlns:ns="http://org.openecomp.mso/requestsdb">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <ns:updateInfraRequest>
+         <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+         <lastModifiedBy>BPMN</lastModifiedBy>
+         <statusMessage>Network MNS-25180-L-01-dmz_direct_net_1 already exists. Silent success.</statusMessage>
+         <responseBody/>
+         <requestStatus>COMPLETED</requestStatus>
+         <progress>100</progress>
+         <vnfOutputs>&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;network-name&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/network-names&gt;</vnfOutputs>
+         <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
+      </ns:updateInfraRequest>
+   </soapenv:Body>
+</soapenv:Envelope>"""
+  
+	  String updateDBRequest =
+	   """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+                  xmlns:ns="http://org.openecomp.mso/requestsdb">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <ns:updateInfraRequest>
+         <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+         <lastModifiedBy>BPMN</lastModifiedBy>
+         <statusMessage>Network successfully updated.</statusMessage>
+         <responseBody/>
+         <requestStatus>COMPLETED</requestStatus>
+         <progress>100</progress>
+         <vnfOutputs>&lt;network-id&gt;&lt;/network-id&gt;&lt;network-name&gt;&lt;/network-names&gt;</vnfOutputs>
+         <networkId/>
+      </ns:updateInfraRequest>
+   </soapenv:Body>
+</soapenv:Envelope>"""	
+  
+	  String updateDBRequestError =
+	  """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+						<soapenv:Header/>
+						<soapenv:Body>
+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">
+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+								<lastModifiedBy>BPMN</lastModifiedBy>
+								<statusMessage>Received error from SDN-C: No availability zone available</statusMessage>
+								<responseBody></responseBody>
+								<requestStatus>FAILED</requestStatus>
+								<vnfOutputs>&lt;network-id&gt;&lt;/network-id&gt;&lt;network-name&gt;&lt;/network-names&gt;</vnfOutputs>
+							</ns:updateInfraRequest>
+					   	</soapenv:Body>
+					   </soapenv:Envelope>"""
+  
+		 String updateDBRequestError01 =
+	  """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+						<soapenv:Header/>
+						<soapenv:Body>
+							<ns:updateInfraRequest xmlns:ns="http://org.openecomp.mso/requestsdb">
+								<requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+								<lastModifiedBy>BPMN</lastModifiedBy>
+								<statusMessage>Received error unexpectedly from SDN-C.</statusMessage>
+								<responseBody></responseBody>
+								<requestStatus>FAILED</requestStatus>
+								<vnfOutputs>&lt;network-id&gt;&lt;/network-id&gt;&lt;network-name&gt;&lt;/network-names&gt;</vnfOutputs>
+							</ns:updateInfraRequest>
+					   	</soapenv:Body>
+					   </soapenv:Envelope>"""
+						 
+	  String updateDBRequest_Outputs =
+  """<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+                  xmlns:ns="http://org.openecomp.mso/requestsdb">
+   <soapenv:Header/>
+   <soapenv:Body>
+      <ns:updateInfraRequest>
+         <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+         <lastModifiedBy>BPMN</lastModifiedBy>
+         <statusMessage>Network successfully updated.</statusMessage>
+         <responseBody/>
+         <requestStatus>COMPLETED</requestStatus>
+         <progress>100</progress>
+         <vnfOutputs>&lt;network-id&gt;49c86598-f766-46f8-84f8-8d1c1b10f9b4&lt;/network-id&gt;&lt;network-name&gt;MNS-25180-L-01-dmz_direct_net_1&lt;/network-names&gt;</vnfOutputs>
+         <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
+      </ns:updateInfraRequest>
+   </soapenv:Body>
+</soapenv:Envelope>"""	
+  
+	  String updateNetworkRequest =
+	  """<updateNetworkRequest>
+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
+   <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>
+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>
+   <networkType>CONTRAIL_EXTERNAL</networkType>
+   <networkTypeVersion/>
+   <networkTechnology>CONTRAIL</networkTechnology>
+   <providerVlanNetwork>
+      <physicalNetworkName>networkName</physicalNetworkName>
+      <vlans>414,415</vlans>
+   </providerVlanNetwork>
+   <contrailNetwork>
+      <shared>true</shared>
+      <external>false</external>
+      <routeTargets>13979:105757</routeTargets>
+      <routeTargets>13979:105757</routeTargets>
+      <policyFqdns>GN_EVPN_Test</policyFqdns>
+      <routeTableFqdns>refFQDN1</routeTableFqdns>
+      <routeTableFqdns>refFQDN2</routeTableFqdns>
+   </contrailNetwork>
+   <subnets>
+      <allocationPools>
+         <start/>
+         <end/>
+      </allocationPools>
+      <cidr>107.239.52.0/24</cidr>
+      <enableDHCP>true</enableDHCP>
+      <gatewayIp>107.239.52.1</gatewayIp>
+      <ipVersion>4</ipVersion>
+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
+      <subnetName>subnetName</subnetName>
+   </subnets>
+   <subnets>
+      <allocationPools>
+         <start/>
+         <end/>
+      </allocationPools>
+      <cidr>107.239.52.0/24</cidr>
+      <enableDHCP>true</enableDHCP>
+      <gatewayIp>107.239.52.1</gatewayIp>
+      <ipVersion>4</ipVersion>
+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
+      <subnetName>subnetName</subnetName>
+   </subnets>
+   <skipAAI>true</skipAAI>
+   <backout>true</backout>
+   <failIfExists>false</failIfExists>
+   <networkParams>
+      <dhcp-enabled>true</dhcp-enabled>
+      <serviceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceId>
+      <cidr-mask>true</cidr-mask>
+      <backoutOnFailure>true</backoutOnFailure>
+      <gateway-address>10.10.125.1</gateway-address>
+   </networkParams>
+   <msoRequest>
+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+      <serviceInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</serviceInstanceId>
+   </msoRequest>
+   <messageId>messageId_generated</messageId>
+   <notificationUrl/>
+</updateNetworkRequest>"""
+	  
+   
+  String updateNetworkRequest_noPhysicalName =
+  """<updateNetworkRequest>
+   <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+   <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+   <networkId>49c86598-f766-46f8-84f8-8d1c1b10f9b4</networkId>
+   <networkStackId>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</networkStackId>
+   <networkName>MNS-25180-L-01-dmz_direct_net_1</networkName>
+   <networkType>CONTRAIL_EXTERNAL</networkType>
+   <networkTypeVersion/>
+   <networkTechnology>CONTRAIL</networkTechnology>
+   <providerVlanNetwork>
+      <physicalNetworkName>networkName</physicalNetworkName>
+      <vlans>414,415</vlans>
+   </providerVlanNetwork>
+   <contrailNetwork>
+      <shared>true</shared>
+      <external>false</external>
+      <routeTargets>13979:105757</routeTargets>
+      <routeTargets>13979:105757</routeTargets>
+      <policyFqdns>GN_EVPN_Test</policyFqdns>
+   </contrailNetwork>
+   <subnets>
+      <allocationPools>
+         <start/>
+         <end/>
+      </allocationPools>
+      <cidr>107.239.52.0/24</cidr>
+      <enableDHCP>true</enableDHCP>
+      <gatewayIp>107.239.52.1</gatewayIp>
+      <ipVersion>4</ipVersion>
+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
+      <subnetName>subnetName</subnetName>
+   </subnets>
+   <subnets>
+      <allocationPools>
+         <start/>
+         <end/>
+      </allocationPools>
+      <cidr>107.239.52.0/24</cidr>
+      <enableDHCP>true</enableDHCP>
+      <gatewayIp>107.239.52.1</gatewayIp>
+      <ipVersion>4</ipVersion>
+      <subnetId>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnetId>
+      <subnetName>subnetName</subnetName>
+   </subnets>
+   <skipAAI>true</skipAAI>
+   <backout>true</backout>
+   <failIfExists>false</failIfExists>
+   <networkParams>
+      <dhcp-enabled>true</dhcp-enabled>
+      <serviceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceId>
+      <cidr-mask>true</cidr-mask>
+      <backoutOnFailure>true</backoutOnFailure>
+      <gateway-address>10.10.125.1</gateway-address>
+   </networkParams>
+   <msoRequest>
+      <requestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</requestId>
+      <serviceInstanceId>null</serviceInstanceId>
+   </msoRequest>
+   <messageId>messageId_generated</messageId>
+   <notificationUrl/>
+</updateNetworkRequest>"""
+  
+	  String updateNetworkResponseREST =
+  """<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.openecomp.mso/network">
+	<networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+	<neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+    <networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>
+	<networkStackId></networkStackId>
+	<subnetMap>
+		<entry>
+			<key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
+			<value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
+		</entry>
+		<entry>
+			<key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
+			<value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
+		</entry>
+	</subnetMap>
+	<rollback>
+		<networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+		<neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+		<networkStackId></networkStackId>
+		<networkType>CONTRAIL_EXTERNAL</networkType>
+		<networkUpdated>true</networkUpdated>
+		<tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+		<cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+		<msoRequest>
+			<requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
+			<serviceInstanceId></serviceInstanceId>
+		</msoRequest>
+	</rollback>
+	<messageId>messageId_generated</messageId>
+</ns2:updateNetworkContrailResponse>"""
+  
+	  String updateRollbackNetworkRequest =
+	  """<NetworkAdapter:rollbackNetwork xmlns:NetworkAdapter="http://org.openecomp.mso/network">
+   <rollback>
+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+      <networkStackId/>
+      <networkType>CONTRAIL_EXTERNAL</networkType>
+      <networkUpdated>true</networkUpdated>
+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+      <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+      <msoRequest>
+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
+         <serviceInstanceId/>
+      </msoRequest>
+   </rollback>
+</NetworkAdapter:rollbackNetwork>"""	
+	  
+	  String updateNetworkResponse =
+	  """<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.openecomp.mso/network"
+                                    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+   <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+   <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+   <networkStackId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkStackId>
+	<networkFqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</networkFqdn>
+   <subnetIdMap>
+      <entry>
+         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
+         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
+      </entry>
+   </subnetIdMap>
+   <rollback>
+      <cloudId>RDM2WAGPLCP</cloudId>
+      <msoRequest>
+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
+         <serviceInstanceId/>
+      </msoRequest>
+      <networkUpdated>true</networkUpdated>
+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+      <networkType>CONTRAIL_EXTERNAL</networkType>
+      <networkUpdated>false</networkUpdated>
+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+   </rollback>
+</ns2:updateNetworkContrailResponse>"""
+  
+	  String updateContrailAAIPayloadRequest =
+  """<l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+   <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+   <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+   <network-type>CONTRAIL_EXTERNAL</network-type>
+   <network-role>dmz_direct</network-role>
+   <network-technology>contrail</network-technology>
+   <neutron-network-id>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutron-network-id>
+   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+   <network-role-instance>0</network-role-instance>
+   <resource-version>l3-version</resource-version>
+   <orchestration-status>active</orchestration-status>
+   <heat-stack-id>ST_2Bindings_6006/55288ef0-595c-47d3-819e-cf93aaac6326</heat-stack-id>
+   <contrail-network-fqdn>default-domain:MSOTest:GN_EVPN_direct_net_0_ST1</contrail-network-fqdn>
+   <physical-network-name>networkName</physical-network-name>
+   <is-provider-network>false</is-provider-network>
+   <is-shared-network>true</is-shared-network>
+   <is-external-network>false</is-external-network>
+   <subnets>
+      <subnet>
+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>
+         <gateway-address>107.239.52.1</gateway-address>
+         <network-start-address>107.239.52.0</network-start-address>
+         <cidr-mask>24</cidr-mask>
+         <ip-version>4</ip-version>
+         <orchestration-status>active</orchestration-status>
+         <dhcp-enabled>true</dhcp-enabled>
+         <subnet-name>subnetName</subnet-name>
+      </subnet>
+      <subnet>
+         <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+         <neutron-subnet-id>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</neutron-subnet-id>
+         <gateway-address>107.239.52.1</gateway-address>
+         <network-start-address>107.239.52.0</network-start-address>
+         <cidr-mask>24</cidr-mask>
+         <ip-version>4</ip-version>
+         <orchestration-status>active</orchestration-status>
+         <dhcp-enabled>true</dhcp-enabled>
+         <subnet-name>subnetName</subnet-name>
+      </subnet>
+   </subnets>
+   <segmentation-assignments>
+      <segmentation-id>414</segmentation-id>
+   </segmentation-assignments>
+   <segmentation-assignments>
+      <segmentation-id>415</segmentation-id>
+   </segmentation-assignments>
+   <ctag-assignments>
+      <ctag-assignment>
+         <vlan-id-inner>inner</vlan-id-inner>
+         <resource-version>ctag-version</resource-version>
+         <relationship-list>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>
+               </relationship-data>
+               <related-to-property>
+                  <property-key>tenant.tenant-name</property-key>
+                  <property-value>MSOTest1</property-value>
+               </related-to-property>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/a290b841-f672-44dd-b9cd-6f8c20d7d8c8/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>a290b841-f672-44dd-b9cd-6f8c20d7d8c8</relationship-value>
+               </relationship-data>
+               <related-to-property>
+                  <property-key>vpn-binding.vpn-name</property-key>
+                  <property-value>oam_protected_net_6_MTN5_msotest2</property-value>
+               </related-to-property>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-ext1.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/24a4b507-853a-4a38-99aa-05fcc54be24d/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>24a4b507-853a-4a38-99aa-05fcc54be24d</relationship-value>
+               </relationship-data>
+               <related-to-property>
+                  <property-key>vpn-binding.vpn-name</property-key>
+                  <property-value>oam_protected_net_6_MTN5_msotest1</property-value>
+               </related-to-property>
+            </relationship>
+         </relationship-list>
+      </ctag-assignment>
+   </ctag-assignments>
+   <relationship-list>
+      <relationship>
+         <related-to>vpn-binding</related-to>
+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+         <relationship-data>
+            <relationship-key>vpn-binding.vpn-id</relationship-key>
+            <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+         </relationship-data>
+      </relationship>
+      <relationship>
+         <related-to>vpn-binding</related-to>
+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+         <relationship-data>
+            <relationship-key>vpn-binding.vpn-id</relationship-key>
+            <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+         </relationship-data>
+      </relationship>
+      <relationship>
+         <related-to>tenant</related-to>
+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+         <relationship-data>
+            <relationship-key>tenant.tenant-id</relationship-key>
+            <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+         </relationship-data>
+      </relationship>
+      <relationship>
+         <related-to>network-policy</related-to>
+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>
+         <relationship-data>
+            <relationship-key>network-policy.network-policy-id</relationship-key>
+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>
+         </relationship-data>
+      </relationship>
+      <relationship>
+         <related-to>route-table-reference</related-to>
+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>
+         <relationship-data>
+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+         </relationship-data>
+      </relationship>
+      <relationship>
+         <related-to>route-table-reference</related-to>
+         <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>
+         <relationship-data>
+            <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+            <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+         </relationship-data>
+      </relationship>
+   </relationship-list>
+</l3-network>"""
+  
+	  String updateContrailAAIResponse =
+  """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Content-Length" value="0"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:551-132672"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+</rest:RESTResponse>"""
+	  
+	  String updateNetworkErrorResponse =
+	  """<updateNetworkError>
+		 <messageId>680bd458-5ec1-4a16-b77c-509022e53450</messageId><category>INTERNAL</category>
+		 <message>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</message>
+		 <rolledBack>true</rolledBack>
+	   </updateNetworkError>"""
+  
+			
+  String networkException500 =
+  """<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:VersionMismatch</faultcode><faultstring>"http://org.openecomp.mso/network", the namespace on the "updateNetworkContrail" element, is not a valid SOAP version.</faultstring></soap:Fault></soap:Body></soap:Envelope>"""
+				  
+	String aaiResponse = 
+   """<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+					 statusCode="200">
+	 <rest:headers>
+		<rest:header name="Transfer-Encoding" value="chunked"/>
+		<rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>
+		<rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+		<rest:header name="X-AAI-TXID"
+					 value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>
+		<rest:header name="Content-Type" value="application/xml"/>
+		<rest:header name="Server" value="Apache-Coyote/1.1"/>
+		<rest:header name="Cache-Control" value="private"/>
+	 </rest:headers>
+	 <rest:payload contentType="text/xml">
+		<l3-network xmlns="http://org.openecomp.aai.inventory/v3">
+		   <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>
+		   <network-name>HSL_direct_net_2</network-name>
+		   <network-type>CONTRAIL_BASIC</network-type>
+		   <network-role>HSL_direct</network-role>
+		   <network-technology>contrail</network-technology>
+		   <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>
+		   <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		   <orchestration-status>active</orchestration-status>
+		   <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>
+		   <subnets>
+			  <subnet>
+				 <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>
+				 <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>
+				 <gateway-address>172.16.34.1</gateway-address>
+				 <network-start-address>172.16.34.0</network-start-address>
+				 <cidr-mask>28</cidr-mask>
+				 <ip-version>4</ip-version>
+				 <orchestration-status>active</orchestration-status>
+				 <dhcp-enabled>true</dhcp-enabled>
+				 <relationship-list/>
+			  </subnet>
+		   </subnets>
+		   <relationship-list>
+			  <relationship>
+				 <related-to>tenant</related-to>
+				 <related-link>https://aai-app-e2e.test.com:8443/aai/v3/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>
+				 <relationship-data>
+					<relationship-key>tenant.tenant-id</relationship-key>
+					<relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>
+				 </relationship-data>
+			  </relationship>
+		   </relationship-list>
+		</l3-network>
+	 </rest:payload>
+  </rest:RESTResponse>"""
+
+	String changeAssignSDNCRequest = 
+    """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://openecomp.com/mso/workflow/schema/v1"
+                                  xmlns:ns5="http://openecomp.com/mso/request/types/v1"
+                                  xmlns:sdncadapter="http://domain2.openecomp.com/workflow/sdnc/adapter/schema/v1">
+   <sdncadapter:RequestHeader>
+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
+      <sdncadapter:SvcAction>changeassign</sdncadapter:SvcAction>
+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
+   </sdncadapter:RequestHeader>
+   <aetgt:SDNCRequestData>
+      <request-information>
+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
+         <request-action>NetworkActivateRequest</request-action>
+         <source>VID</source>
+         <notification-url/>
+         <order-number/>
+         <order-version/>
+      </request-information>
+      <service-information>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <service-type>MSO-dev-service-type</service-type>
+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
+         <subscriber-name>MSO_1610_dev</subscriber-name>
+      </service-information>
+      <network-request-information>
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <tenant>7dd5365547234ee8937416c65507d266</tenant>
+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
+      </network-request-information>
+   </aetgt:SDNCRequestData>
+</aetgt:SDNCAdapterWorkflowRequest>"""
+
+String assignResponse =
+"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1" xmlns:tag0="http://org.openecomp/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="org:openecomp: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>"""
+			  
+  String sdncRollbackRequest =
+			  """<aetgt:SDNCAdapterWorkflowRequest xmlns:aetgt="http://openecomp.com/mso/workflow/schema/v1"
+                                  xmlns:ns5="http://openecomp.com/mso/request/types/v1"
+                                  xmlns:sdncadapter="http://domain2.openecomp.com/workflow/sdnc/adapter/schema/v1">
+   <sdncadapter:RequestHeader>
+      <sdncadapter:RequestId>88f65519-9a38-4c4b-8445-9eb4a5a5af56</sdncadapter:RequestId>
+      <sdncadapter:SvcInstanceId>f70e927b-6087-4974-9ef8-c5e4d5847ca4</sdncadapter:SvcInstanceId>
+      <sdncadapter:SvcAction>rollback</sdncadapter:SvcAction>
+      <sdncadapter:SvcOperation>network-topology-operation</sdncadapter:SvcOperation>
+      <sdncadapter:CallbackUrl>sdncCallback</sdncadapter:CallbackUrl>
+   </sdncadapter:RequestHeader>
+   <aetgt:SDNCRequestData>
+      <request-information>
+         <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
+         <request-action>NetworkActivateRequest</request-action>
+         <source>VID</source>
+         <notification-url/>
+         <order-number/>
+         <order-version/>
+      </request-information>
+      <service-information>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <service-type>MSO-dev-service-type</service-type>
+         <service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
+         <subscriber-name>MSO_1610_dev</subscriber-name>
+      </service-information>
+      <network-request-information>
+         <network-id>8abc633a-810b-4ca5-8b3a-09511d13a2ce</network-id>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <tenant>7dd5365547234ee8937416c65507d266</tenant>
+         <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>
+      </network-request-information>
+   </aetgt:SDNCRequestData>
+</aetgt:SDNCAdapterWorkflowRequest>"""
+						 
+	   String sdncAdapterWorkflowResponse =
+	  """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                                   xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">
+   <sdncadapterworkflow:response-data>
+<tag0:CallbackHeader xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
+   <tag0:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</tag0:RequestId>
+   <tag0:ResponseCode>200</tag0:ResponseCode>
+   <tag0:ResponseMessage>OK</tag0:ResponseMessage>
+</tag0:CallbackHeader>
+   <tag0:RequestData xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1"
+                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                  xsi:type="xs:string">&lt;output xmlns="org:openecomp: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>
+   </sdncadapterworkflow:response-data>
+</aetgt:SDNCAdapterWorkflowResponse>"""
+					  
+  
+	  String sdncAdapterWorkflowResponse_Error =
+	  """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
+                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1"
+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+                                                 xmlns="org:openecomp:sdnctl:vnf">
+   <sdncadapterworkflow:response-data>
+      <tag0:RequestData xsi:type="xs:string">
+         <output>
+            <response-code>400</response-code>
+            <response-message>Error writing to l3-netework</response-message>
+            <ack-final-indicator>Y</ack-final-indicator>
+            <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>
+         </output>
+      </tag0:RequestData>
+   </sdncadapterworkflow:response-data>
+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
+  
+	  String expected_sdncAdapterWorkflowResponse_Error =
+  """<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns="org:openecomp:sdnctl:vnf"
+                                                 xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
+                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1"
+                                                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+   <sdncadapterworkflow:response-data>
+      <tag0:RequestData xsi:type="xs:string">
+         <output>
+            <response-code>400</response-code>
+            <response-message>Error writing to l3-netework</response-message>
+            <ack-final-indicator>Y</ack-final-indicator>
+            <svc-request-id>c79240d8-34b5-4853-af69-2021928dba00</svc-request-id>
+         </output>
+      </tag0:RequestData>
+   </sdncadapterworkflow:response-data>
+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
+  
+	  String sdncAdapterWorkflowFormattedResponse =
+	  """<aetgt:SDNCAdapterWorkflowResponse xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                                   xmlns="org:openecomp:sdnctl:vnf">
+   <aetgt:response-data>
+      <output>
+         <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>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
+            <subscriber-name>notsurewecare</subscriber-name>
+         </service-information>
+      </output>
+   </aetgt:response-data>
+</aetgt:SDNCAdapterWorkflowResponse>"""   
+  
+	  String falloutHandlerRequest =
+	  """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>
+					      <action>UPDATE</action>
+					      <source>PORTAL</source>
+					   </request-info>
+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
+							<aetgt:ErrorMessage>Received error from SDN-C: No availability zone available.</aetgt:ErrorMessage>
+							<aetgt:ErrorCode>5300</aetgt:ErrorCode>
+						</aetgt:WorkflowException>
+					</aetgt:FalloutHandlerRequest>"""
+  
+	  String falloutHandlerRequestObject =
+	  """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>
+					      <action>UPDATE</action>
+					      <source>VID</source>
+					   </request-info>
+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
+							<aetgt:ErrorMessage>Received error from SDN-C: No availability zone available</aetgt:ErrorMessage>
+							<aetgt:ErrorCode>7000</aetgt:ErrorCode>
+						</aetgt:WorkflowException>
+					</aetgt:FalloutHandlerRequest>"""
+					  
+					  
+	  String falloutHandlerRequest_Scenario01 =
+  """<aetgt:FalloutHandlerRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+					                             xmlns:ns="http://org.openecomp/mso/request/types/v1"
+					                             xmlns:wfsch="http://org.openecomp/mso/workflow/schema/v1">
+					   <request-info xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+					      <request-id>b69c9054-da09-4a2c-adf5-51042b62bfac</request-id>
+					      <action>UPDATE</action>
+					      <source>VID</source>
+					   </request-info>
+						<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
+							<aetgt:ErrorMessage>Unexpected Response from AAI - 400</aetgt:ErrorMessage>
+							<aetgt:ErrorCode>7020</aetgt:ErrorCode>
+						</aetgt:WorkflowException>
+					</aetgt:FalloutHandlerRequest>"""
+  
+	  String completeMsoProcessRequest =
+	  """<aetgt:MsoCompletionRequest xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1"
+                            xmlns:ns="http://org.openecomp/mso/request/types/v1"
+                            xmlns="http://org.openecomp/mso/infra/vnf-request/v1">
+   <request-info>
+      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>
+      <action>UPDATE</action>
+      <source>PORTAL</source>
+   </request-info>
+   <aetgt:mso-bpel-name>BPMN Network action: UPDATE</aetgt:mso-bpel-name>
+</aetgt:MsoCompletionRequest>"""
+
+// - - - - - - - -
+
+
+	    @Before
+		public void init()
+		{
+			MockitoAnnotations.initMocks(this)
+			
+		}
+		
+		public void initializeVariables (Execution mockExecution) {
+			
+			verify(mockExecution).setVariable("UPDNETI_messageId", "")
+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "")
+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "")
+			verify(mockExecution).setVariable("UPDNETI_UpdateNetworkInstanceInfraJsonRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_networkRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_networkInputs", "")
+			verify(mockExecution).setVariable("UPDNETI_networkOutputs", "")
+			verify(mockExecution).setVariable("UPDNETI_requestId", "")
+			verify(mockExecution).setVariable("UPDNETI_source", "")
+			verify(mockExecution).setVariable("UPDNETI_networkId", "")
+			
+			verify(mockExecution).setVariable("UPDNETI_CompleteMsoProcessRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_FalloutHandlerRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_isSilentSuccess", false)
+			verify(mockExecution).setVariable("UPDNETI_isPONR", false)
+			
+			// AAI query Cloud Region
+			verify(mockExecution).setVariable("UPDNETI_queryCloudRegionRequest","")
+			verify(mockExecution).setVariable("UPDNETI_queryCloudRegionReturnCode","")
+			verify(mockExecution).setVariable("UPDNETI_queryCloudRegionResponse","")
+			verify(mockExecution).setVariable("UPDNETI_cloudRegionPo","")
+			verify(mockExecution).setVariable("UPDNETI_cloudRegionSdnc","")
+			verify(mockExecution).setVariable("UPDNETI_isCloudRegionGood", false)
+			
+			// AAI query Id
+			verify(mockExecution).setVariable("UPDNETI_queryIdAAIRequest","")
+			verify(mockExecution).setVariable("UPDNETI_queryIdAAIResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_aaiIdReturnCode", "")
+
+			// AAI query vpn binding
+			verify(mockExecution).setVariable("UPDNETI_queryVpnBindingAAIRequest","")
+			verify(mockExecution).setVariable("UPDNETI_queryVpnBindingAAIResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_aaiQqueryVpnBindingReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_vpnBindings", null)
+			verify(mockExecution).setVariable("UPDNETI_vpnCount", 0)
+			verify(mockExecution).setVariable("UPDNETI_routeCollection", "")
+			
+			// AAI query network policy
+			verify(mockExecution).setVariable("UPDNETI_queryNetworkPolicyAAIRequest","")
+			verify(mockExecution).setVariable("UPDNETI_queryNetworkPolicyAAIResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_aaiQqueryNetworkPolicyReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_networkPolicyUriList", null)
+			verify(mockExecution).setVariable("UPDNETI_networkPolicyCount", 0)
+			verify(mockExecution).setVariable("UPDNETI_networkCollection", "")
+			
+			// AAI query route table reference
+			verify(mockExecution).setVariable("UPDNETI_queryNetworkTableRefAAIRequest","")
+			verify(mockExecution).setVariable("UPDNETI_queryNetworkTableRefAAIResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_aaiQqueryNetworkTableRefReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_networkTableRefUriList", null)
+			verify(mockExecution).setVariable("UPDNETI_networkTableRefCount", 0)
+			verify(mockExecution).setVariable("UPDNETI_tableRefCollection", "")
+			
+			
+			// AAI requery Id
+			verify(mockExecution).setVariable("UPDNETI_requeryIdAAIRequest","")
+			verify(mockExecution).setVariable("UPDNETI_requeryIdAAIResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_aaiRequeryIdReturnCode", "")
+
+			// AAI update contrail
+			verify(mockExecution).setVariable("UPDNETI_updateContrailAAIUrlRequest","")
+			verify(mockExecution).setVariable("UPDNETI_updateContrailAAIPayloadRequest","")
+			verify(mockExecution).setVariable("UPDNETI_updateContrailAAIResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_aaiUpdateContrailReturnCode", "")
+				
+			verify(mockExecution).setVariable("UPDNETI_updateNetworkRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_updateNetworkResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_rollbackNetworkRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_rollbackNetworkResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_networkReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_rollbackNetworkReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_isNetworkRollbackNeeded", false)
+			
+			verify(mockExecution).setVariable("UPDNETI_changeAssignSDNCRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_changeAssignSDNCResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_rollbackSDNCRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_rollbackSDNCResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_sdncReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_rollbackSDNCReturnCode", "")
+			verify(mockExecution).setVariable("UPDNETI_isSdncRollbackNeeded", false)
+			verify(mockExecution).setVariable("UPDNETI_sdncResponseSuccess", false)
+
+			verify(mockExecution).setVariable("UPDNETI_updateDBRequest", "")
+			verify(mockExecution).setVariable("UPDNETI_updateDBResponse", "")
+			verify(mockExecution).setVariable("UPDNETI_dbReturnCode", "")
+			
+			verify(mockExecution).setVariable("UPDNETI_isVnfBindingPresent", false)
+			verify(mockExecution).setVariable("UPDNETI_Success", false)
+			verify(mockExecution).setVariable("UPDNETI_serviceInstanceId", "")
+			verify(mockExecution).setVariable("GENGS_type", "service-instance") // Setting for Generic Sub Flow use
+			
+			
+		}
+		
+		@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("UPDNETI_messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")
+									
+			// preProcessRequest(Execution execution)						
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.preProcessRequest(mockExecution)
+			
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).getVariable("isDebugLogEnabled")
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			
+			//verify variable initialization
+			initializeVariables(mockExecution)
+
+			// Authentications
+            verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")
+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")
+
+			verify(mockExecution).setVariable("UPDNETI_UpdateNetworkInstanceInfraJsonRequest", jsonIncomingRequest)
+			//verify(mockExecution).setVariable("UPDNETI_networkRequest", expectedNetworkRequest)
+			//verify(mockExecution).setVariable("UPDNETI_networkInputs", expectedNetworkInputs)
+			//verify(mockExecution, atLeast(3)).setVariable("UPDNETI_networkOutputs", "")
+			
+			//verify(mockExecution).setVariable("UPDNETI_requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			//verify(mockExecution).setVariable("UPDNETI_source", "VID")
+			//verify(mockExecution).setVariable("UPDNETI_messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			//verify(mockExecution, atLeast(1)).setVariable("GENGS_type", "service-instance")
+							
+		}
+
+		
+		@Test
+		//@Ignore
+		public void preProcessRequest_MissingNetworkId() {
+
+			println "************ preProcessRequest_MissingName() ************* "
+			
+			WorkflowException missingNameWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 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("UPDNETI_messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			try {
+				UpdateNetworkInstanceInfra.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", "UPDNETI_")
+			
+			//verify variable initialization
+			initializeVariables(mockExecution)
+
+			// Authentications
+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")
+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")
+
+			verify(mockExecution).setVariable("UPDNETI_UpdateNetworkInstanceInfraJsonRequest", jsonIncomingRequest)
+			//verify(mockExecution, atLeast(1)).setVariable("UPDNETI_networkOutputs", networkOutputs)
+			//verify(mockExecution).setVariable("UPDNETI_networkRequest", expectedNetworkRequestMissingNetworkId)
+			//verify(mockExecution).setVariable("UPDNETI_networkInputs", expectedNetworkInputs)
+			
+			//verify(mockExecution).setVariable("UPDNETI_requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			//verify(mockExecution).setVariable("UPDNETI_source", "VID")
+			//verify(mockExecution).setVariable("UPDNETI_messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			
+			verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingNameWorkflowException))
+						
+		}
+		
+		@Test
+		//@Ignore
+		public void preProcessRequest_MissingCloudRegion() {
+			
+			println "************ preProcessRequest_MissingCloudRegion() ************* "
+			
+			WorkflowException missingCloudRegionWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 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("UPDNETI_messageId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
+			when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("URN_mso_rollback")).thenReturn("true")
+
+									
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			try {
+				UpdateNetworkInstanceInfra.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", "UPDNETI_")
+			
+			//verify variable initialization
+			initializeVariables(mockExecution)
+
+			verify(mockExecution).setVariable("UPDNETI_messageId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			// Authentications
+			verify(mockExecution).setVariable("BasicAuthHeaderValuePO", "Basic cGFzc3dvcmQ=")
+			verify(mockExecution).setVariable("BasicAuthHeaderValueSDNC", "Basic cGFzc3dvcmQ=")
+
+			verify(mockExecution).setVariable("UPDNETI_UpdateNetworkInstanceInfraJsonRequest", jsonIncomingRequest_MissingCloudRegion)
+			//verify(mockExecution).setVariable("UPDNETI_networkRequest", "")
+			//verify(mockExecution).setVariable("UPDNETI_networkInputs", "")
+			//verify(mockExecution, atLeast(1)).setVariable("UPDNETI_networkOutputs", "")
+			
+			//verify(mockExecution).setVariable("UPDNETI_requestId", "88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			//verify(mockExecution).setVariable("UPDNETI_source", "VID")
+			
+			verify(mockExecution).setVariable(eq("WorkflowException"), refEq(missingCloudRegionWorkflowException))
+							
+		}
+				
+		@Test
+		//@Ignore
+		public void sendSyncResponse() {
+			
+			println "************ sendSyncResponse ************* "
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)
+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			//when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.sendSyncResponse(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UpdateNetworkInstanceInfraResponseCode", "202")
+
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void sendSyncError() {
+			
+			println "************ sendSyncError ************* "
+			
+			ExecutionEntity mockExecution = setupMock()									
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("isAsyncProcess")).thenReturn(true)
+			when(mockExecution.getVariable("mso-request-id")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			//when(mockExecution.getVariable("serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
+
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.sendSyncError(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UpdateNetworkInstanceInfraResponseCode", "500")
+			
+		}
+		
+		
+		@Test
+		//@Ignore
+		public void prepareDBRequest() {
+			
+			println "************ prepareDBRequest ************* "
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkOutputs")).thenReturn("")
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("UPDNETI_orchestrationStatus")).thenReturn("")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareDBRequest(mockExecution)
+			
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_updateDBRequest", updateDBRequest)
+		
+		}
+		
+		@Test
+		//@Ignore
+		public void prepareDBRequestErro_ExceptionObject() {
+			
+			println "************ prepareDBRequest ************* "
+			
+			WorkflowException sndcWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 500, "Received error from SDN-C: No availability zone available")
+			
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkOutputs")).thenReturn("")
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("UPDNETI_networkOutputs")).thenReturn("")
+			when(mockExecution.getVariable("UPDNETI_orchestrationStatus")).thenReturn("")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareDBRequestError(mockExecution)
+			
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_updateDBRequest", updateDBRequestError)
+		
+		}
+		
+		@Test
+		//@Ignore
+		public void prepareDBRequest_Outputs() {
+			
+			println "************ prepareDBRequest ************* "
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkOutputs")).thenReturn(networkOutputs)
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("UPDNETI_orchestrationStatus")).thenReturn("")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareDBRequest(mockExecution)
+			
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_updateDBRequest", updateDBRequest_Outputs)
+		
+		}
+			
+		@Test
+		//@Ignore
+		public void prepareUpdateNetworkRequest() {
+			
+			println "************ prepareNetworkRequest ************* "
+						ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkRequest")).thenReturn(expectedNetworkRequest)
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)
+			when(mockExecution.getVariable("UPDNETI_cloudRegionPo")).thenReturn("RDM2WAGPLCP")
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("messageId_generated")
+			when(mockExecution.getVariable("UPDNETI_source")).thenReturn("VID")
+			//when(mockExecution.getVariable("UPDNETI_queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)
+			when(mockExecution.getVariable("UPDNETI_routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")
+			when(mockExecution.getVariable("UPDNETI_networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")
+			when(mockExecution.getVariable("UPDNETI_tableRefCollection")).thenReturn("<routeTableFqdns>refFQDN1</routeTableFqdns><routeTableFqdns>refFQDN2</routeTableFqdns>")
+			when(mockExecution.getVariable("UPDNETI_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("UPDNETI_rollbackEnabled")).thenReturn("true")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareUpdateNetworkRequest(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			
+			verify(mockExecution).setVariable("UPDNETI_updateNetworkRequest", updateNetworkRequest)
+			
+		}
+		
+
+		@Test
+		//@Ignore
+		public void prepareUpdateNetworkRequest_NoPhysicalname() {
+			
+			println "************ prepareNetworkRequest ************* "
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkRequest")).thenReturn(NetworkRequest_noPhysicalName)
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)
+			when(mockExecution.getVariable("UPDNETI_cloudRegionPo")).thenReturn("RDM2WAGPLCP")
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("messageId_generated")
+			when(mockExecution.getVariable("UPDNETI_source")).thenReturn("VID")
+			//when(mockExecution.getVariable("UPDNETI_queryVpnBindingAAIResponse")).thenReturn(queryVpnBindingAAIResponse)
+			when(mockExecution.getVariable("UPDNETI_routeCollection")).thenReturn("<routeTargets>13979:105757</routeTargets><routeTargets>13979:105757</routeTargets>")
+			when(mockExecution.getVariable("UPDNETI_networkCollection")).thenReturn("<policyFqdns>GN_EVPN_Test</policyFqdns>")
+			when(mockExecution.getVariable("UPDNETI_tableRefCollection")).thenReturn("")
+			when(mockExecution.getVariable("UPDNETI_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("UPDNETI_rollbackEnabled")).thenReturn("true")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareUpdateNetworkRequest(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			
+			verify(mockExecution).setVariable("UPDNETI_updateNetworkRequest", updateNetworkRequest_noPhysicalName)
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void prepareSDNCRequest() {
+			
+			println "************ prepareSDNCRequest ************* "
+			
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkRequest")).thenReturn(expectedNetworkRequest)
+			when(mockExecution.getVariable("UPDNETI_cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")
+			when(mockExecution.getVariable("UPDNETI_serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
+			when(mockExecution.getVariable("openecomp-mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:28090/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)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareSDNCRequest(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_changeAssignSDNCRequest", changeAssignSDNCRequest)
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void prepareSDNCRollbackRequest() {
+			
+			println "************ prepareSDNCRollbackRequest ************* "
+			
+
+			
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("UPDNETI_networkRequest")).thenReturn(expectedNetworkRequest)
+			when(mockExecution.getVariable("UPDNETI_cloudRegionSdnc")).thenReturn("RDM2WAGPLCP")
+			when(mockExecution.getVariable("UPDNETI_serviceInstanceId")).thenReturn("f70e927b-6087-4974-9ef8-c5e4d5847ca4")
+			when(mockExecution.getVariable("UPDNETI_changeAssignSDNCResponse")).thenReturn(assignResponse)
+			when(mockExecution.getVariable("openecomp-mso-request-id")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://localhost:28090/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)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.prepareSDNCRollbackRequest(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_rollbackSDNCRequest", sdncRollbackRequest)
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkId_200() {
+
+			println "************ callRESTQueryAAINetworkId ************* "
+			
+			WireMock.reset();
+			
+			MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_networkRequest")).thenReturn(expectedNetworkRequest)
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkId(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_queryIdAAIRequest", "http://localhost:28090/aai/v8/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4")
+			verify(mockExecution).setVariable("UPDNETI_aaiIdReturnCode", "200")
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAICloudRegion30_200() {
+
+			println "************ callRESTQueryAAICloudRegion30_200 ************* "
+			
+			WireMock.reset();
+			MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml")
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+			when(mockExecution.getVariable("UPDNETI_networkInputs")).thenReturn(expectedNetworkRequest)
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAICloudRegion(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_queryCloudRegionRequest", "http://localhost:28090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")
+			verify(mockExecution, atLeast(2)).setVariable("UPDNETI_queryCloudRegionReturnCode", "200")
+			verify(mockExecution).setVariable("UPDNETI_isCloudRegionGood", true)
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAICloudRegion25_200() {
+
+			println "************ callRESTQueryAAICloudRegion25_200 ************* "
+			
+			WireMock.reset();
+			MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml")
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+			when(mockExecution.getVariable("UPDNETI_networkInputs")).thenReturn(expectedNetworkRequest)
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAICloudRegion(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_queryCloudRegionRequest", "http://localhost:28090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP")
+			verify(mockExecution, atLeast(2)).setVariable("UPDNETI_queryCloudRegionReturnCode", "200")
+			verify(mockExecution).setVariable("UPDNETI_isCloudRegionGood", true)
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAICloudRegion_NotFound() {
+
+			println "************ callRESTQueryAAICloudRegionFake ************* "
+			
+			WireMock.reset();
+			MockGetCloudRegion("MDTWNJ21", 404, "")
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+			when(mockExecution.getVariable("UPDNETI_networkInputs")).thenReturn(vnfRequestFakeRegion)
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAICloudRegion(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_queryCloudRegionRequest", "http://localhost:28090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/MDTWNJ21")
+			verify(mockExecution, atLeast(1)).setVariable("UPDNETI_queryCloudRegionReturnCode", "404")
+			verify(mockExecution).setVariable("UPDNETI_cloudRegionPo", "MDTWNJ21")
+			verify(mockExecution).setVariable("UPDNETI_cloudRegionSdnc", "AAIAIC25")
+			verify(mockExecution).setVariable("UPDNETI_isCloudRegionGood", true)
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkVpnBinding_200() {
+
+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
+			
+			WireMock.reset();
+			MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200)
+			MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) // v6
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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("URN_mso_workflow_UpdateNetworkInstanceInfra_aai_network_vpn-binding_uri")).thenReturn("")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true") 
+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkVpnBinding(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_vpnCount", 2)
+			verify(mockExecution).setVariable("UPDNETI_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("UPDNETI_queryVpnBindingAAIRequest", "http://localhost:28090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017")
+			verify(mockExecution, atLeast(2)).setVariable("UPDNETI_aaiQqueryVpnBindingReturnCode", "200")
+			
+		}
+
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkVpnBinding_TestScenario01_200() {
+
+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
+			
+			WireMock.reset();
+			MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200)
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponseTestScenario01) 
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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("URN_mso_workflow_UpdateNetworkInstanceInfra_aai_network_vpn-binding_uri")).thenReturn("")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkVpnBinding(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_vpnCount", 1)
+			verify(mockExecution).setVariable("UPDNETI_vpnBindings", ['/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/'])
+			// the last vpnBinding value is saved.
+			verify(mockExecution).setVariable("UPDNETI_queryVpnBindingAAIRequest", "http://localhost:28090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017")
+			verify(mockExecution).setVariable("UPDNETI_aaiQqueryVpnBindingReturnCode", "200")
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkVpnBinding_200_URN_Uri() {
+
+			println "************ callRESTQueryAAINetworkVpnBinding_200 ************* "
+			
+			WireMock.reset();
+			MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200)
+			MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) 
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkVpnBinding(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_vpnCount", 2)
+			verify(mockExecution).setVariable("UPDNETI_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("UPDNETI_queryVpnBindingAAIRequest", "http://localhost:28090/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017")
+			verify(mockExecution, atLeast(2)).setVariable("UPDNETI_aaiQqueryVpnBindingReturnCode", "200")
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkVpnBinding_NotPresent() {
+
+			println "************ callRESTQueryAAINetworkVpnBinding_NotPresent ************* "
+			
+			WireMock.reset();
+			MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200)
+			
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponseVpnNotPresent)  
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkVpnBinding(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_aaiQqueryVpnBindingReturnCode", "200")
+			verify(mockExecution).setVariable("UPDNETI_vpnCount", 0)
+			verify(mockExecution).setVariable("UPDNETI_queryVpnBindingAAIResponse", aaiVpnResponseStub)
+						
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkTableRef_200() {
+
+			println "************ callRESTQueryAAINetworkTableRef_200 ************* "
+			
+			WireMock.reset();
+			MockGetNetworkRouteTable("refFQDN1", "CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200)
+			MockGetNetworkRouteTable("refFQDN2", "CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200)
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn("8")
+			when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_route_table_reference_uri")).thenReturn("/aai/v8/network/route-table-references/route-table-reference")
+//			when(mockExecution.getVariable("URN_mso_workflow_CreateNetworkInstanceInfra_aai_network_table_reference_uri")).thenReturn("")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkTableRef(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_networkTableRefCount", 2)
+			verify(mockExecution).setVariable("UPDNETI_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("UPDNETI_queryNetworkTableRefAAIRequest", "http://localhost:28090/aai/v8/network/route-table-references/route-table-reference/refFQDN1")
+			verify(mockExecution, atLeast(2)).setVariable("UPDNETI_aaiQqueryNetworkTableRefReturnCode", "200")
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void callRESTQueryAAINetworkPolicy_200() {
+
+			println "************ callRESTQueryAAINetworkPolicy_200 ************* "
+			
+			WireMock.reset();
+			MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200)
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse) 
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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("URN_mso_workflow_UpdateNetworkInstanceInfra_aai_network_policy_uri")).thenReturn("")
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("URN_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTQueryAAINetworkPolicy(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_networkPolicyCount", 1)
+			verify(mockExecution).setVariable("UPDNETI_networkPolicyUriList", ['/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg'])
+			// the last vpnBinding value is saved.
+			verify(mockExecution).setVariable("UPDNETI_queryNetworkPolicyAAIRequest", "http://localhost:28090/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg")
+			verify(mockExecution).setVariable("UPDNETI_aaiQqueryNetworkPolicyReturnCode", "200")
+			
+		}
+		
+		
+		@Test
+		//@Ignore
+		public void callRESTReQueryAAINetworkId_200() {
+
+			println "************ callRESTReQueryAAINetworkId ************* "
+			
+			WireMock.reset();
+			MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200)
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse)
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTReQueryAAINetworkId(mockExecution)
+			
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_requeryIdAAIRequest", "http://localhost:28090/aai/v8/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4")
+			verify(mockExecution).setVariable("UPDNETI_aaiRequeryIdReturnCode", "200")
+			
+		}
+		
+
+		@Test
+		//@Ignore
+		public void callRESTUpdateContrailAAINetworkREST_200() {
+
+			println "************ callRESTUpdateContrailAAINetwork ************* "
+			
+			WireMock.reset();
+			MockPutNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", 200, "UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml")
+			
+			ExecutionEntity mockExecution = setupMock()
+			when(mockExecution.getVariable("UPDNETI_changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowFormattedResponse)
+			when(mockExecution.getVariable("UPDNETI_requeryIdAAIResponse")).thenReturn(queryIdAIIResponse)
+			when(mockExecution.getVariable("UPDNETI_updateNetworkResponse")).thenReturn(updateNetworkResponseREST)
+			when(mockExecution.getVariable("UPDNETI_messageId")).thenReturn("e8ebf6a0-f8ea-4dc0-8b99-fe98a87722d6")
+			when(mockExecution.getVariable("URN_aai_endpoint")).thenReturn("http://localhost:28090")
+			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_aai_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC")
+			when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
+			
+			// preProcessRequest(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.callRESTUpdateContrailAAINetwork(mockExecution)
+
+			// Capture the arguments to setVariable
+			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
+			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
+			
+			verify(mockExecution, times(6)).setVariable(captor1.capture(), captor2.capture())
+			List<String> arg2List = captor2.getAllValues()
+			String payloadResponseActual = arg2List.get(4)
+			
+			assertEquals(updateContrailAAIResponse.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))
+			
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_updateContrailAAIUrlRequest", "http://localhost:28090/aai/v8/network/l3-networks/l3-network/49c86598-f766-46f8-84f8-8d1c1b10f9b4")
+			verify(mockExecution).setVariable("UPDNETI_updateContrailAAIPayloadRequest", updateContrailAAIPayloadRequest)
+			verify(mockExecution).setVariable("UPDNETI_aaiUpdateContrailReturnCode", "200")
+			verify(mockExecution).setVariable("UPDNETI_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("UPDNETI_updateNetworkResponse")).thenReturn(updateNetworkResponseREST)
+			when(mockExecution.getVariable("UPDNETI_networkReturnCode")).thenReturn('200')
+			
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.validateUpdateNetworkResponse(mockExecution)
+
+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
+			//debugger.printInvocations(mockExecution)
+						
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_updateNetworkResponse", updateNetworkResponseREST)
+			verify(mockExecution).setVariable("UPDNETI_isNetworkRollbackNeeded", true)
+			verify(mockExecution).setVariable("UPDNETI_rollbackNetworkRequest", updateRollbackNetworkRequest)
+
+		}
+		
+		@Test
+		//@Ignore
+		public void validateUpdateNetworkResponseREST_Error() {
+			
+			println "************ validateNetworkResponse ************* "
+			
+			WorkflowException workflowException = new WorkflowException("UpdateNetworkInstanceInfra", 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("UPDNETI_updateNetworkResponse")).thenReturn(networkException500)
+			when(mockExecution.getVariable("UPDNETI_networkReturnCode")).thenReturn('500')
+			
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			try {
+				UpdateNetworkInstanceInfra.validateUpdateNetworkResponse(mockExecution)
+			} catch (Exception ex) {
+				println " Test End - Handle catch-throw BpmnError()! "
+			}
+						
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			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("UPDNETI_changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse)
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_sdncReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_isResponseGood")).thenReturn(true)
+			
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			try {
+			  UpdateNetworkInstanceInfra.validateSDNCResponse(mockExecution)
+			  verify(mockExecution).setVariable("UPDNETI_isSdncRollbackNeeded", true)
+			  verify(mockExecution).setVariable("UPDNETI_rollbackSDNCRequest", "")
+			  
+			} catch (Exception ex) {
+				println " Graceful Exit - " + ex.getMessage()
+			}
+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
+			//debugger.printInvocations(mockExecution)
+			
+			//verify(mockExecution).setVariable("UPDNETI_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("UPDNETI_changeAssignSDNCResponse")).thenReturn(sdncAdapterWorkflowResponse_Error)
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+			when(mockExecution.getVariable("SDNCA_SuccessIndicator")).thenReturn(false)
+			when(mockExecution.getVariable("UPDNETI_sdncReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_isResponseGood")).thenReturn(true)
+			
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			try {
+				UpdateNetworkInstanceInfra.validateSDNCResponse(mockExecution)
+			} catch (Exception ex) {
+				println " Graceful Exit! - " + ex.getMessage() 
+			}
+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
+			//debugger.printInvocations(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			//verify(mockExecution).setVariable("UPDNETI_sdncResponseSuccess", false)
+				
+		}
+
+		
+		
+		@Test
+		//@Ignore
+		public void postProcessResponse() {
+			
+			println "************ postProcessResponse ************* "
+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("UPDNETI_source")).thenReturn("PORTAL")
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("88f65519-9a38-4c4b-8445-9eb4a5a5af56")
+			when(mockExecution.getVariable("UPDNETI_dbReturnCode")).thenReturn("200")
+			
+			// postProcessResponse(Execution execution)						
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.postProcessResponse(mockExecution)
+
+			// check the sequence of variable invocation
+			//MockitoDebuggerImpl preDebugger = new MockitoDebuggerImpl()
+			//preDebugger.printInvocations(mockExecution)
+
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_Success", true)
+			verify(mockExecution).setVariable("UPDNETI_CompleteMsoProcessRequest", completeMsoProcessRequest)
+		
+		}
+
+		@Test
+		//@Ignore
+		public void validateRollbackResponses_Good() {
+			
+			WorkflowException workflowException = new WorkflowException("UpdateNetworkInstanceInfra", 2500, "AAI Update Contrail Failed.  Error 404.")
+			WorkflowException expectedWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 2500, "AAI Update Contrail Failed.  Error 404. + PO Network rollback is not supported for Update. Submit another Update to restore/rollback. + SNDC rollback completed.")
+				  
+			println "************ validateRollbackResponses_Good() ************* "
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+
+			when(mockExecution.getVariable("UPDNETI_isNetworkRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkResponse")).thenReturn("GoodResponse")
+			when(mockExecution.getVariable("UPDNETI_isSdncRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCResponse")).thenReturn("GoodResponse")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
+									
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.validateRollbackResponses(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("WorkflowException", refEq(expectedWorkflowException, any(WorkflowException.class)))
+			
+		}
+		
+		@Test
+		//@Ignore
+		public void validateRollbackResponses_Failed() {
+			
+			WorkflowException workflowException = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "AAI Update Contrail Failed.  Error 404.")
+			WorkflowException expectedWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "AAI Update Contrail Failed.  Error 404. + PO Network rollback is not supported for Update. Submit another Update to restore/rollback. + SDNC rollback failed. ")
+				  
+			println "************ validateRollbackResponses_Failed() ************* "
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+
+			when(mockExecution.getVariable("UPDNETI_isNetworkRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkReturnCode")).thenReturn("404")
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkResponse")).thenReturn("BadResponse")
+			when(mockExecution.getVariable("UPDNETI_isSdncRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCReturnCode")).thenReturn("500")
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCResponse")).thenReturn("BadResponse")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
+									
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.validateRollbackResponses(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution, atLeast(1)).setVariable("WorkflowException", refEq(expectedWorkflowException, any(WorkflowException.class)))
+
+		}
+		
+		@Test
+		//@Ignore
+		public void validateRollbackResponses_NetworkFailed() {
+			
+			WorkflowException workflowException = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "AAI Update Contrail Failed.  Error 404.")
+			WorkflowException expectedWorkflowExceptionFailed = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "AAI Update Contrail Failed.  Error 404. + PO Network rollback is not supported for Update. Submit another Update to restore/rollback. + SNDC rollback completed.")
+				  
+			println "************ validateRollbackResponses_NetworkFailed() ************* "
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+
+			when(mockExecution.getVariable("UPDNETI_isNetworkRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkReturnCode")).thenReturn("404")
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkResponse")).thenReturn("BadResponse")
+			when(mockExecution.getVariable("UPDNETI_isSdncRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCResponse")).thenReturn("GoodResponse")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
+									
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.validateRollbackResponses(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution, atLeast(1)).setVariable("WorkflowException", refEq(expectedWorkflowExceptionFailed , any(WorkflowException.class)))
+
+		}
+		
+		@Test
+		//@Ignore
+		public void validateRollbackResponses_SdncFailed() {
+			
+			WorkflowException workflowException = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "AAI Update Contrail Failed.  Error 404.")
+			WorkflowException expectedWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "AAI Update Contrail Failed.  Error 404. + PO Network rollback is not supported for Update. Submit another Update to restore/rollback. + SDNC rollback failed. ")
+				  
+			println "************ validateRollbackResponses_SdncFailed() ************* "
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+
+			when(mockExecution.getVariable("UPDNETI_isNetworkRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkResponse")).thenReturn("GoodResponse")
+			when(mockExecution.getVariable("UPDNETI_isSdncRollbackNeeded")).thenReturn(true)
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCResponse")).thenReturn("<response-code>400</response-code>")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
+									
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.validateRollbackResponses(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("WorkflowException", refEq(expectedWorkflowException , any(WorkflowException.class)))
+
+		}
+		
+		@Test
+		//@Ignore
+		public void validateRollbackResponses_NoRollbacks() {
+			
+			WorkflowException workflowException = new WorkflowException("UpdateNetworkInstanceInfra", 2500, " AAI Update Contrail Failed.  Error 404")
+			WorkflowException expectedWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 2500, " AAI Update Contrail Failed.  Error 404")
+				  
+			println "************ validateRollbackResponses_NoRollbacks() ************* "
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("prefix")).thenReturn("UPDNETI_")
+
+			when(mockExecution.getVariable("UPDNETI_isNetworkRollbackNeeded")).thenReturn(false)
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackNetworkResponse")).thenReturn("GoodResponse")
+			when(mockExecution.getVariable("UPDNETI_isSdncRollbackNeeded")).thenReturn(false)
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_rollbackSDNCResponse")).thenReturn("GoodResponse")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(workflowException)
+									
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.validateRollbackResponses(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			//verify(mockExecution, atLeast(1)).setVariable("WorkflowException", any(expectedWorkflowException))
+			verify(mockExecution, atLeast(1)).setVariable("WorkflowException", refEq(expectedWorkflowException, any(WorkflowException.class)))
+
+		}
+		
+	
+		@Test
+		//@Ignore 
+		public void buildErrorResponse() {
+			
+			println "************ buildErrorResponse ************* "
+			
+			
+			WorkflowException sndcWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 5300, "Received error from SDN-C: No availability zone available.")
+			
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("b69c9054-da09-4a2c-adf5-51042b62bfac")
+			when(mockExecution.getVariable("UPDNETI_source")).thenReturn("PORTAL")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)
+			
+			// buildErrorResponse(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.buildErrorResponse(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_Success", false)
+			verify(mockExecution).setVariable("UPDNETI_FalloutHandlerRequest", falloutHandlerRequest)
+			
+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
+			//debugger.printInvocations(mockExecution)
+
+		}
+		
+		@Test
+		//@Ignore
+		public void buildErrorResponse_WorkflowExceptionObject() {
+			
+			println "************ buildErrorResponse ************* "
+			
+			WorkflowException sndcWorkflowException = new WorkflowException("UpdateNetworkInstanceInfra", 7000, "Received error from SDN-C: No availability zone available") 
+			
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("b69c9054-da09-4a2c-adf5-51042b62bfac")
+			when(mockExecution.getVariable("UPDNETI_source")).thenReturn("VID")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(sndcWorkflowException)
+			
+			// buildErrorResponse(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.buildErrorResponse(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_Success", false)
+			verify(mockExecution).setVariable("UPDNETI_FalloutHandlerRequest", falloutHandlerRequestObject)
+			
+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
+			//debugger.printInvocations(mockExecution)
+
+		}
+		
+		@Test
+		//@Ignore
+		public void buildErrorResponse_Scenario01() {
+			
+			WorkflowException aaiWorkflowException_Secnario01 = new WorkflowException("UpdateNetworkInstanceInfra", 7020, "Unexpected Response from AAI - 400")
+			
+			println "************ buildErrorResponse ************* "
+			ExecutionEntity mockExecution = setupMock()
+			// Initialize prerequisite variables
+			when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+			when(mockExecution.getVariable("UPDNETI_requestId")).thenReturn("b69c9054-da09-4a2c-adf5-51042b62bfac")
+			when(mockExecution.getVariable("UPDNETI_source")).thenReturn("VID")
+			when(mockExecution.getVariable("WorkflowException")).thenReturn(aaiWorkflowException_Secnario01)
+			when(mockExecution.getVariable("UPDNETI_dbReturnCode")).thenReturn("200")
+			when(mockExecution.getVariable("UPDNETI_updateDBResponse")).thenReturn("<GoodResponse>")
+			
+			when(mockExecution.getVariable("UPDNETI_aaiRequeryIdReturnCode")).thenReturn("400")
+			
+			// buildErrorResponse(Execution execution)
+			UpdateNetworkInstanceInfra UpdateNetworkInstanceInfra = new UpdateNetworkInstanceInfra()
+			UpdateNetworkInstanceInfra.buildErrorResponse(mockExecution)
+			
+			// verify set prefix = "UPDNETI_"
+			verify(mockExecution, atLeast(1)).setVariable("prefix", "UPDNETI_")
+			verify(mockExecution).setVariable("UPDNETI_Success", false)
+			verify(mockExecution).setVariable("UPDNETI_FalloutHandlerRequest", falloutHandlerRequest_Scenario01)
+			
+			//MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
+			//debugger.printInvocations(mockExecution)
+
+		}
+	
+
+		private ExecutionEntity setupMock() {
+			
+			ProcessDefinition mockProcessDefinition = mock(ProcessDefinition.class)
+			when(mockProcessDefinition.getKey()).thenReturn("UpdateNetworkInstanceInfra")
+			RepositoryService mockRepositoryService = mock(RepositoryService.class)
+			when(mockRepositoryService.getProcessDefinition()).thenReturn(mockProcessDefinition)
+			when(mockRepositoryService.getProcessDefinition().getKey()).thenReturn("UpdateNetworkInstanceInfra")
+			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("UpdateNetworkInstanceInfra")
+			when(mockExecution.getProcessInstanceId()).thenReturn("UpdateNetworkInstanceInfra")
+			when(mockExecution.getProcessEngineServices()).thenReturn(mockProcessEngineServices)
+			when(mockExecution.getProcessEngineServices().getRepositoryService().getProcessDefinition(mockExecution.getProcessDefinitionId())).thenReturn(mockProcessDefinition)
+			
+			return mockExecution
+		}
+		
+		
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1Test.groovy b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1Test.groovy
new file mode 100644
index 0000000..2e9efad
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/groovy/org/openecomp/mso/bpmn/infrastructure/scripts/UpdateVfModuleVolumeInfraV1Test.groovy
@@ -0,0 +1,93 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure.scripts;
+
+import static org.junit.Assert.*
+import static org.mockito.Mockito.*
+
+import org.junit.Before
+import org.junit.Ignore
+import org.junit.Rule
+import org.junit.runner.RunWith
+import org.mockito.MockitoAnnotations
+import org.mockito.runners.MockitoJUnitRunner
+
+import com.github.tomakehurst.wiremock.junit.WireMockRule
+
+@RunWith(MockitoJUnitRunner.class)
+@Ignore // No Junits exists in this class to run
+class UpdateVfModuleVolumeInfraV1Test {
+	
+	String xml = """
+	<relationship-list>
+		<relationship>
+			<related-to>tenant</related-to>
+			<related-link>https://aai-ext1.test.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>
+			<relationship-data>
+				<relationship-key>tenant.tenant-id</relationship-key>
+				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>mdt1</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>tenant.tenant-name</property-key>
+				<property-value>ECOMP_MDT1</property-value>
+			</related-to-property>
+		</relationship>
+		<relationship>
+			<related-to>vf-module</related-to>
+			<related-link>https://aai-ext1.test.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>
+			<relationship-data>
+				<relationship-key>vf-module.vf-module-ids</relationship-key>
+				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>mdt1</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>vf-module.vf-module-name</property-key>
+				<property-value>ECOMP_MDT1</property-value>
+			</related-to-property>
+		</relationship>		
+	</relationship-list>
+"""
+	
+	@Rule
+	public WireMockRule wireMockRule = new WireMockRule(28090);
+	
+	@Before
+	public void init()
+	{
+		MockitoAnnotations.initMocks(this)
+		
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java
new file mode 100644
index 0000000..7a9864c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleInfraTest.java
@@ -0,0 +1,243 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicyfqdn;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit test cases for CreateVfModuleInfra.bpmn
+ */
+public class CreateVfModuleInfraTest extends WorkflowTest {
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public CreateVfModuleInfraTest() throws IOException {
+		callbacks.put("assign", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyAssignCallback.xml"));
+		callbacks.put("query", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml"));
+		callbacks.put("activate", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyActivateCallback.xml"));
+		callbacks.put("vnfCreate", FileUtil.readResourceFile(
+			"__files/VfModularity/VNFAdapterRestCreateCallback.xml"));
+	}
+	
+	
+	/**
+	 * Sunny day VID scenario.
+	 * 
+	 * @throws Exception
+	 */
+	@Test	
+	@Deployment(resources = {
+			"process/CreateVfModuleInfra.bpmn",
+			"subprocess/DoCreateVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn",
+			"subprocess/ConfirmVolumeGroupTenant.bpmn",
+			"subprocess/ConfirmVolumeGroupName.bpmn",
+			"subprocess/CreateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/CompleteMsoProcess.bpmn",
+			"subprocess/FalloutHandler.bpmn"
+		})
+	public void sunnyDayVID() throws Exception {
+				
+		logStart();
+		
+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
+		MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
+		MockGetGenericVnfById("skask", "VfModularity/GenericVnf.xml", 200);
+		MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
+		MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockPutGenericVnf("skask");
+		mockVNFPost("", 202, "skask");
+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleRequest =
+			FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json");
+		
+		Map<String, Object> variables = setupVariablesSunnyDayVID();
+		
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
+			"v1", businessKey, createVfModuleRequest, variables);
+				
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+		
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectSDNCCallbacks(callbacks, "assign, query");
+		injectVNFRestCallbacks(callbacks, "vnfCreate");
+		injectSDNCCallbacks(callbacks, "activate");
+		
+		// TODO add appropriate assertions
+
+		waitForProcessEnd(businessKey, 10000);
+		checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
+		
+		logEnd();
+	}
+	
+	// Active Scenario
+		private Map<String, Object> setupVariablesSunnyDayVID() {
+			Map<String, Object> variables = new HashMap<String, Object>();
+			//try {
+			//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
+			//}
+			//catch (Exception e) {
+				
+			//}
+			//variables.put("mso-request-id", "testRequestId");
+			variables.put("requestId", "testRequestId");		
+			variables.put("isBaseVfModule", false);
+			variables.put("isDebugLogEnabled", "true");
+			variables.put("recipeTimeout", "0");		
+			variables.put("requestAction", "CREATE_VF_MODULE");
+			variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+			variables.put("vnfId", "skask");
+			variables.put("vnfType", "vSAMP12");
+			variables.put("vfModuleId", "");
+			variables.put("volumeGroupId", "");			
+			variables.put("serviceType", "MOG");	
+			variables.put("vfModuleType", "");			
+			return variables;
+			
+		}
+		
+		/**
+		 * Sunny day VID with volume attach scenario.
+		 * 
+		 * @throws Exception
+		 */
+		@Test
+		@Deployment(resources = {
+				"process/CreateVfModuleInfra.bpmn",
+				"subprocess/DoCreateVfModule.bpmn",
+				"subprocess/SDNCAdapterV1.bpmn",
+				"subprocess/VnfAdapterRestV1.bpmn",
+				"subprocess/ConfirmVolumeGroupTenant.bpmn",
+				"subprocess/ConfirmVolumeGroupName.bpmn",
+				"subprocess/CreateAAIVfModule.bpmn",
+				"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",
+				"subprocess/UpdateAAIVfModule.bpmn",
+				"subprocess/UpdateAAIGenericVnf.bpmn",
+				"subprocess/CompleteMsoProcess.bpmn",
+				"subprocess/FalloutHandler.bpmn"
+			})
+		public void sunnyDayVIDWithVolumeGroupAttach() throws Exception {
+					
+			logStart();
+			
+			MockGetVolumeGroupById("AAIAIC25", "78987", "VfModularity/VolumeGroup.xml");
+			MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
+			MockGetCloudRegion("MDTWNJ21", 200, "CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml");
+			MockGetVolumeGroupById("RDM2WAGPLCP", "78987", "DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");
+			MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
+			mockVNFPost("", 202, "skask");
+			MockGetNetworkPolicyfqdn(".*", "VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml", 200);
+			MockPutGenericVnf("skask");
+			MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
+			mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+			mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+			mockVNFPost("", 202, "skask");
+			mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+			
+			String businessKey = UUID.randomUUID().toString();
+			String createVfModuleRequest =
+				FileUtil.readResourceFile("__files/CreateVfModuleVolumeGroup_VID_request.json");
+			
+			Map<String, Object> variables = setupVariablesSunnyDayVIDWVolumeAttach();
+			
+			TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleInfra",
+				"v1", businessKey, createVfModuleRequest, variables);
+					
+			WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+			
+			String responseBody = response.getResponse();
+			System.out.println("Workflow (Synch) Response:\n" + responseBody);
+			
+			injectSDNCCallbacks(callbacks, "assign, query");
+			injectVNFRestCallbacks(callbacks, "vnfCreate");
+			injectSDNCCallbacks(callbacks, "activate");
+			
+			// TODO add appropriate assertions
+
+			waitForProcessEnd(businessKey, 10000);
+			checkVariable(businessKey, "CreateVfModuleSuccessIndicator", true);
+			
+			logEnd();
+		}
+		
+		// Active Scenario
+			private Map<String, Object> setupVariablesSunnyDayVIDWVolumeAttach() {
+				Map<String, Object> variables = new HashMap<String, Object>();
+				//try {
+				//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
+				//}
+				//catch (Exception e) {
+					
+				//}
+				//variables.put("mso-request-id", "testRequestId");
+				variables.put("requestId", "testRequestId");		
+				variables.put("isBaseVfModule", false);
+				variables.put("isDebugLogEnabled", "true");
+				variables.put("recipeTimeout", "0");		
+				variables.put("requestAction", "CREATE_VF_MODULE");
+				variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+				variables.put("vnfId", "skask");
+				variables.put("vnfType", "vSAMP12");
+				variables.put("vfModuleId", "");
+				variables.put("volumeGroupId", "78987");			
+				variables.put("serviceType", "MOG");	
+				variables.put("vfModuleType", "");			
+				return variables;
+				
+			}
+		
+	
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java
new file mode 100644
index 0000000..e70f48d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVfModuleVolumeInfraV1Test.java
@@ -0,0 +1,306 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVolumeGroupById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupByName;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVolumeGroupById;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPostVNFVolumeGroup;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+public class CreateVfModuleVolumeInfraV1Test extends WorkflowTest {
+
+	public static final String _prefix = "CVFMODVOL2_";
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public CreateVfModuleVolumeInfraV1Test() throws IOException {
+		callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
+				"__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml"));
+		callbacks.put("volumeGroupException", FileUtil.readResourceFile(
+				"__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml"));
+		callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
+				"__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml"));
+	}
+	
+	/**
+	 * Happy path scenario for VID
+	 *****************************/
+	@Test
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestSuccess() throws Exception {
+
+		logStart();
+		
+		MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
+		MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
+		MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
+		MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
+		MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
+		mockPostVNFVolumeGroup(202);
+
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", true);
+		
+		logEnd();
+	}
+	
+	/**
+	 * Happy path scenario for VID
+	 *****************************/
+	@Test
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestVolumeGroupAlreadyExists() throws Exception {
+
+		logStart();
+		
+		MockGetVolumeGroupByName("AAIAIC25", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
+		MockGetGenericVnfById("TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
+		MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+	/**
+	 *Vnf Create fail
+	 *****************************/
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestVNfCreateFail() throws Exception {
+
+		logStart();
+		
+		MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
+		MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
+		MockPutVolumeGroupById("AAIAIC25", "TEST-VOLUME-GROUP-ID-0123", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml", 201);
+		MockGetVolumeGroupByName("AAIAIC25", "MSOTESTVOL101a-vSAMP12_base_vol_module-0", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml", 200);
+		MockPutVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml", 200);
+		mockPostVNFVolumeGroup(202);
+		MockDeleteVolumeGroupById("AAIAIC25", "8424bb3c-c3e7-4553-9662-469649ed9379", "1460134360", 204);
+
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupException");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+
+	/**
+	 * Error scenario - vnf not found
+	 ********************************/
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestFailVnfNotFound() throws Exception {
+
+		logStart();
+		
+		MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+
+	/**
+	 * Error scenario - error in validation
+	 **************************************/
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestFailNoVnfPassed() throws Exception {
+
+		logStart();
+		
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		//testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+	/**
+	 * Error scenario - service instance not found
+	 *********************************************/
+	@Test
+	//@Ignore
+	@Deployment(resources = {"process/CreateVfModuleVolumeInfraV1.bpmn",
+			"subprocess/GenericGetService.bpmn",
+			"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestFailServiceInstanceNotFound() throws Exception {
+
+		logStart();
+		
+		MockNodeQueryServiceInstanceById("test-service-instance-id", "CreateVfModuleVolumeInfraV1/getSIUrlById.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		//testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+				
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVfModuleVolumeInfraV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 1000000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "CVMVINFRAV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java
new file mode 100644
index 0000000..80c1e8c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/CreateVnfInfraTest.java
@@ -0,0 +1,220 @@
+/*
+ * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.
+ */
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByName_404;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById_404;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit Test for the CreateVnfInfra Flow
+ */
+public class CreateVnfInfraTest extends WorkflowTest {
+
+	private String createVnfInfraRequest;
+	private final CallbackSet callbacks = new CallbackSet();
+
+
+	public CreateVnfInfraTest() throws IOException {
+		createVnfInfraRequest = FileUtil.readResourceFile("__files/InfrastructureFlows/CreateVnfInfraRequest.json");
+		callbacks.put("assign", FileUtil.readResourceFile(
+				"__files/VfModularity/SDNCTopologyAssignCallback.xml"));
+		callbacks.put("activate", FileUtil.readResourceFile(
+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVnf.bpmn", 
+							"subprocess/GenericGetService.bpmn", 
+							"subprocess/GenericGetVnf.bpmn", 
+							"subprocess/GenericPutVnf.bpmn", 
+							"subprocess/SDNCAdapterV1.bpmn", 
+							"process/CreateVnfInfra.bpmn", 
+							"subprocess/FalloutHandler.bpmn", 
+							"subprocess/CompleteMsoProcess.bpmn"})
+	public void testCreateVnfInfra_success() throws Exception{
+
+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");
+		MockGetGenericVnfByName_404();
+		MockPutGenericVnf();
+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		setVariablesSuccess(variables, createVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("CreateVnfInfra",
+				"v1", businessKey, createVnfInfraRequest, variables);
+
+			WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+
+			String responseBody = response.getResponse();
+			System.out.println("Workflow (Synch) Response:\n" + responseBody);
+
+			//injectSDNCCallbacks(callbacks, "assign, query");
+			//injectSDNCCallbacks(callbacks, "activate");
+
+			// TODO add appropriate assertions
+
+			waitForProcessEnd(businessKey, 10000);
+			String status = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "CreateVnfInfraStatus");
+			assertEquals("Success", status);
+
+			logEnd();
+
+			//WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CreateVnfInfra", variables);
+	//	injectSDNCCallbacks(callbacks, "assign");
+	//	injectSDNCCallbacks(callbacks, "activate");
+		//waitForProcessEnd(businessKey, 10000);
+		//waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		//assertVariables("true", "true", "false", "true", "Success", null);
+
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetService.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericPutVnf.bpmn", "process/CreateVnfInfra.bpmn", "subprocess/FalloutHandler.bpmn", "subprocess/CompleteMsoProcess.bpmn"})
+	public void testCreateVnfInfra_error_badRequest() throws Exception{
+
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, null, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CreateVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		assertVariables(null, null, null, null, null, "WorkflowException[processKey=CreateVnfInfra,errorCode=2500,errorMessage=Internal Error - WorkflowException Object and/or RequestInfo is null! CreateVnfInfra]");
+
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVnf.bpmn", "subprocess/GenericGetService.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericPutVnf.bpmn", "process/CreateVnfInfra.bpmn", "subprocess/FalloutHandler.bpmn", "subprocess/CompleteMsoProcess.bpmn"})
+	public void testCreateVnfInfra_error_siNotFound() throws Exception{
+
+		MockNodeQueryServiceInstanceById_404("MIS%2F1604%2F0026%2FSW_INTERNET");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, createVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CreateVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		assertVariables(null, null, null, null, null, "WorkflowException[processKey=DoCreateVnf,errorCode=404,errorMessage=Service Instance Not Found]");
+
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVnf.bpmn", 
+							"subprocess/GenericGetService.bpmn", 
+							"subprocess/GenericGetVnf.bpmn", 
+							"subprocess/GenericPutVnf.bpmn", 
+							"process/CreateVnfInfra.bpmn", 
+							"subprocess/FalloutHandler.bpmn", 
+							"subprocess/CompleteMsoProcess.bpmn"})
+	public void testCreateVnfInfra_error_vnfExist() throws Exception{
+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");
+		
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf[?]vnf-name=testVnfName123&depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("GenericFlows/getGenericVnfResponse.xml")));
+		
+		MockPutGenericVnf();
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, createVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CreateVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		assertVariables(null, null, null, null, null, "WorkflowException[processKey=DoCreateVnf,errorCode=5000,errorMessage=Generic Vnf Already Exist.]");
+
+	}
+
+	private void assertVariables(String exSIFound, String exSISucc, String exVnfFound, String exVnfSucc, String exResponse, String exWorkflowException) {
+
+		String siFound = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "GENGS_FoundIndicator");
+		String siSucc = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "GENGS_SuccessIndicator");
+		String vnfFound = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "GENGV_FoundIndicator");
+		String vnfSucc = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "GENGV_SuccessIndicator");
+		String response = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "WorkflowResponse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "CreateVnfInfra", "SavedWorkflowException1");
+
+		assertEquals(exSIFound, siFound);
+		assertEquals(exSISucc, siSucc);
+		assertEquals(exVnfFound, vnfFound);
+		assertEquals(exVnfSucc, vnfSucc);
+		assertEquals(exResponse, response);
+		assertEquals(exWorkflowException, workflowException);
+	}
+
+	private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {
+		variables.put("isDebugLogEnabled", "true");
+		variables.put("bpmnRequest", request);
+		variables.put("mso-request-id", requestId);
+		variables.put("serviceInstanceId",siId);
+		variables.put("testVnfId","testVnfId123");
+		variables.put("vnfType", "STMTN");
+	}
+
+	private void setVariablesSuccess(Map<String, Object> variables, String request, String requestId, String siId) {
+		variables.put("isDebugLogEnabled", "true");
+		//variables.put("bpmnRequest", request);
+		//variables.put("mso-request-id", requestId);
+		variables.put("serviceInstanceId",siId);
+		variables.put("requestId", requestId);
+		variables.put("testVnfId","testVnfId123");
+		variables.put("vnfType", "STMTN");
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVfModuleInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVfModuleInfraTest.java
new file mode 100644
index 0000000..a6ae368
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVfModuleInfraTest.java
@@ -0,0 +1,579 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFDelete;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.core.WorkflowException;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+import com.github.tomakehurst.wiremock.client.WireMock;
+/**
+ * Unit test for DoDeleteVfModule.bpmn.
+ */
+public class DeleteVfModuleInfraTest extends WorkflowTest {
+	private final CallbackSet callbacks = new CallbackSet();
+	
+	private static final String EOL = "\n";
+
+	private final String vnfAdapterDeleteCallback = 
+			"<deleteVfModuleResponse>" + EOL +
+			"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +
+			"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +
+			"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +
+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +
+			" 	<vfModuleOutputs>" + EOL +  
+			" 	 <entry>" + EOL +
+			"	 <key>policyKey1_contrail_network_policy_fqdn</key>" + EOL +
+			" <value>MSOTest:DefaultPolicyFQDN1</value>" + EOL +
+			"</entry>" + EOL +
+			"<entry>" + EOL +
+			"<key>policyKey2_contrail_network_policy_fqdn</key>" + EOL +
+			"<value>MSOTest:DefaultPolicyFQDN2</value>" + EOL +
+			"</entry>" + EOL +
+			" 	 <entry>" + EOL +
+			"	 <key>oam_management_v4_address</key>" + EOL +
+			" <value>1234</value>" + EOL +
+			"</entry>" + EOL +
+			" 	 <entry>" + EOL +
+			"	 <key>oam_management_v6_address</key>" + EOL +
+			" <value>1234</value>" + EOL +
+			"</entry>" + EOL +
+			"</vfModuleOutputs>" + EOL +
+			"</deleteVfModuleResponse>" + EOL;
+				
+	private final String vnfAdapterDeleteCallbackFail = 
+			"<vfModuleException>" + EOL +
+			"    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +
+			"    <category>INTERNAL</category>" + EOL +
+			"    <rolledBack>false</rolledBack>" + EOL +
+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +
+			"</vfModuleException>" + EOL;
+					
+	private final String sdncAdapterDeleteCallback =
+		"<output xmlns=\"org:openecomp:sdnctl:l3api\">" + EOL +
+		"  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +
+		"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +
+		"</output>" + EOL;
+	
+	public DeleteVfModuleInfraTest() throws IOException {
+		callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);
+		callbacks.put("sdncDelete", sdncAdapterDeleteCallback);
+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);
+		callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);
+	}
+
+	@Test
+	@Deployment(resources = {
+			"process/Infrastructure/DeleteVfModuleInfra.bpmn",
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn",
+			"subprocess/CompleteMsoProcess.bpmn",
+			"subprocess/FalloutHandler.bpmn"
+		})
+	@Ignore
+	public void  TestDeleteVfModuleSuccess() throws Exception {
+		// delete the Base Module
+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
+		String request =
+			"<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\">" + EOL +
+			"  <request-info>" + EOL +
+			"    <request-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</request-id>" + EOL +
+			"    <action>DELETE_VF_MODULE</action>" + EOL +
+			"    <source>PORTAL</source>" + EOL +
+			"  </request-info>" + EOL +
+			"  <vnf-inputs>" + EOL +
+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +
+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +
+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +
+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +
+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +
+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +
+			"  </vnf-inputs>" + EOL +
+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
+			"</vnf-request>" + EOL;
+		logStart();
+		WireMock.reset();
+		
+		stubFor(post(urlEqualTo("/SDNCAdapter"))
+				  .withRequestBody(containing("SvcAction>changedelete"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));
+		stubFor(post(urlEqualTo("/SDNCAdapter"))
+				  .withRequestBody(containing("SvcAction>delete"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));
+		
+		mockVNFDelete(".*", "/.*", 202);
+//		MockAAIGenericVnfSearch();
+//		MockAAIVfModulePUT(false);
+//		MockAAIDeleteGenericVnf();
+//		MockAAIDeleteVfModule();
+		mockUpdateRequestDB(200, "VfModularity/DBUpdateResponse.xml");
+		
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721/vf-modules/vf-module/973ed047-d251-4fb9-bf1a-65b8949e0a73/[?]resource-version=0000073"))
+				.willReturn(aResponse()
+						.withStatus(200)));
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c720/vf-modules/vf-module/973ed047-d251-4fb9-bf1a-65b8949e0a75/[?]resource-version=0000075"))
+				.willReturn(aResponse()
+						.withStatus(200)));
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c718/vf-modules/vf-module/973ed047-d251-4fb9-bf1a-65b8949e0a78/[?]resource-version=0000078"))
+				.willReturn(aResponse()
+						.withStatus(200)));
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c719/vf-modules/vf-module/973ed047-d251-4fb9-bf1a-65b8949e0a77/[?]resource-version=0000077"))
+				.willReturn(aResponse()
+						.withStatus(500)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("aaiFault.xml")));
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy\\?network-policy-fqdn=.*"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml")));
+
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/network-policies/network-policy/.*"))
+				.willReturn(aResponse()
+						.withStatus(200)));
+		
+		
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721/[?]resource-version=0000021"))
+				.willReturn(aResponse()
+						.withStatus(200)));
+		stubFor(delete(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c718/[?]resource-version=0000018"))
+				.willReturn(aResponse()
+						.withStatus(500)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("aaiFault.xml")));
+		
+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*/vf-modules/vf-module/.*"))
+				.withRequestBody(containing("MMSC"))
+				.willReturn(aResponse()
+						.withStatus(200)));
+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*/vf-modules/vf-module/.*"))
+				.withRequestBody(containing("PCRF"))
+				.willReturn(aResponse()
+						.withStatus(500)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("aaiFault.xml")));
+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721"))				
+				.willReturn(aResponse()
+					.withStatus(200)));
+		
+		String body;
+		
+		// The following stubs are for CreateAAIVfModule and UpdateAAIVfModule
+	
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/[?]vnf-name=STMTN5MMSC23&depth=1"))
+				.willReturn(aResponse()
+						.withStatus(500)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("aaiFault.xml")));
+	
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/[?]vnf-name=STMTN5MMSC22&depth=1"))
+				.willReturn(aResponse()
+						.withStatus(404)
+						.withHeader("Content-Type", "text/xml")
+						.withBody("Generic VNF Not Found")));
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/768073c7-f41f-4822-9323-b75962763d74[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(404)
+						.withHeader("Content-Type", "text/xml")
+						.withBody("Generic VNF Not Found")));
+	
+		body =
+			"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+			"  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"  <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+			"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+			"  <equipment-role>vMMSC</equipment-role>" + EOL +
+			"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"  <in-maint>false</in-maint>" + EOL +
+			"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+			"  <resource-version>1508691</resource-version>" + EOL +
+			"  <vf-modules>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>1508692</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"  </vf-modules>" + EOL +
+			"  <relationship-list/>" + EOL +
+			"  <l-interfaces/>" + EOL +
+			"  <lag-interfaces/>" + EOL +
+			"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/[?]vnf-name=STMTN5MMSC21&depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+	
+		body =
+			"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+			"  <vnf-id>2f6aee38-1e2a-11e6-82d1-ffc7d9ee8aa4</vnf-id>" + EOL +
+			"  <vnf-name>STMTN5MMSC20</vnf-name>" + EOL +
+			"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+			"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+			"  <equipment-role>vMMSC</equipment-role>" + EOL +
+			"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"  <in-maint>false</in-maint>" + EOL +
+			"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+			"  <resource-version>1508691</resource-version>" + EOL +
+			"  <vf-modules>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC20-MMSC::module-0-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>1508692</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a74</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC20-MMSC::module-1-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a74</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>false</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>1508692</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"  </vf-modules>" + EOL +
+			"  <relationship-list/>" + EOL +
+			"  <l-interfaces/>" + EOL +
+			"  <lag-interfaces/>" + EOL +
+			"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/[?]vnf-name=STMTN5MMSC20&depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/2f6aee38-1e2a-11e6-82d1-ffc7d9ee8aa4[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+	
+		// The following stubs are for DeleteAAIVfModule
+	
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c723[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(500)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("aaiFault.xml")));
+	
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c722[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(404)
+						.withHeader("Content-Type", "text/xml")
+						.withBody("Generic VNF Not Found")));
+	
+		body =
+				"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+				"  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+				"  <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+				"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+				"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+				"  <equipment-role>vMMSC</equipment-role>" + EOL +
+				"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+				"  <in-maint>false</in-maint>" + EOL +
+				"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+				"  <resource-version>0000021</resource-version>" + EOL +
+				"  <vf-modules>" + EOL +
+				"    <vf-module>" + EOL +
+				"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+				"      <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+				"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>" + EOL +
+				"      <persona-model-version>1.0</persona-model-version>" + EOL +
+				"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+				"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+				"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+				"      <resource-version>0000073</resource-version>" + EOL +
+				"    </vf-module>" + EOL +
+				"  </vf-modules>" + EOL +
+				"  <relationship-list/>" + EOL +
+				"  <l-interfaces/>" + EOL +
+				"  <lag-interfaces/>" + EOL +
+				"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+	
+		body =
+			"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+			"  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c720</vnf-id>" + EOL +
+			"  <vnf-name>STMTN5MMSC20</vnf-name>" + EOL +
+			"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+			"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+			"  <equipment-role>vMMSC</equipment-role>" + EOL +
+			"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"  <in-maint>false</in-maint>" + EOL +
+			"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+			"  <resource-version>0000020</resource-version>" + EOL +
+			"  <vf-modules>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a74</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC20-MMSC::module-0-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a74</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>0000074</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a75</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC20-MMSC::module-1-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a75</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>false</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>0000075</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"  </vf-modules>" + EOL +
+			"  <relationship-list/>" + EOL +
+			"  <l-interfaces/>" + EOL +
+			"  <lag-interfaces/>" + EOL +
+			"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c720[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+	
+		body =
+			"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+			"  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c719</vnf-id>" + EOL +
+			"  <vnf-name>STMTN5MMSC19</vnf-name>" + EOL +
+			"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+			"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+			"  <equipment-role>vMMSC</equipment-role>" + EOL +
+			"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"  <in-maint>false</in-maint>" + EOL +
+			"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+			"  <resource-version>0000019</resource-version>" + EOL +
+			"  <vf-modules>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a76</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC19-MMSC::module-0-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a76</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>0000076</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a77</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC19-MMSC::module-1-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a77</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>false</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>0000077</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"  </vf-modules>" + EOL +
+			"  <relationship-list/>" + EOL +
+			"  <l-interfaces/>" + EOL +
+			"  <lag-interfaces/>" + EOL +
+			"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c719[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+	
+		body =
+			"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+			"  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c718</vnf-id>" + EOL +
+			"  <vnf-name>STMTN5MMSC18</vnf-name>" + EOL +
+			"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+			"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+			"  <equipment-role>vMMSC</equipment-role>" + EOL +
+			"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"  <in-maint>false</in-maint>" + EOL +
+			"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+			"  <resource-version>0000018</resource-version>" + EOL +
+			"  <vf-modules>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a78</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC18-MMSC::module-0-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a78</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>0000078</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"  </vf-modules>" + EOL +
+			"  <relationship-list/>" + EOL +
+			"  <l-interfaces/>" + EOL +
+			"  <lag-interfaces/>" + EOL +
+			"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c718[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+	
+		body =
+			"<generic-vnf xmlns=\"http://org.openecomp.aai.inventory/v7\">" + EOL +
+			"  <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"  <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"  <vnf-type>mmsc-capacity</vnf-type>" + EOL +
+			"  <service-id>SDN-MOBILITY</service-id>" + EOL +
+			"  <equipment-role>vMMSC</equipment-role>" + EOL +
+			"  <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"  <in-maint>false</in-maint>" + EOL +
+			"  <is-closed-loop-disabled>false</is-closed-loop-disabled>" + EOL +
+			"  <resource-version>0000021</resource-version>" + EOL +
+			"  <vf-modules>" + EOL +
+			"    <vf-module>" + EOL +
+			"      <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"      <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"      <persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>" + EOL +
+			"      <persona-model-version>1.0</persona-model-version>" + EOL +
+			"      <is-base-vf-module>true</is-base-vf-module>" + EOL +
+			"      <heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>" + EOL +
+			"      <orchestration-status>pending-create</orchestration-status>" + EOL +
+			"      <resource-version>0000073</resource-version>" + EOL +
+			"    </vf-module>" + EOL +
+			"  </vf-modules>" + EOL +
+			"  <relationship-list/>" + EOL +
+			"  <l-interfaces/>" + EOL +
+			"  <lag-interfaces/>" + EOL +
+			"</generic-vnf>" + EOL;
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721/vf-modules/vf-module/973ed047-d251-4fb9-bf1a-65b8949e0a73"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBody(body)));
+
+		String businessKey = UUID.randomUUID().toString();
+		String deleteVfModuleRequest =
+				FileUtil.readResourceFile("__files/DeleteVfModule_VID_request.json");
+		//Map<String, Object> variables = new HashMap<String, Object>();	
+		
+		//variables.put("isDebugLogEnabled","true");
+//		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+//		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		
+		Map<String, Object> variables = setupVariablesSunnyDayVID();
+
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DeleteVfModuleInfra",
+				"v1", businessKey, deleteVfModuleRequest, variables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		injectVNFRestCallbacks(callbacks, "vnfDelete");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
+		checkVariable(businessKey, "DeleteVfModuleInfraSuccessIndicator", true);
+		checkVariable(businessKey, "WorkflowException", null);
+		if (wfe != null) {
+			System.out.println("TestDeleteVfModuleInfraSuccess: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+		}
+		logEnd();
+	}
+	
+	// Active Scenario
+			private Map<String, Object> setupVariablesSunnyDayVID() {
+				Map<String, Object> variables = new HashMap<String, Object>();
+				//try {
+				//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
+				//}
+				//catch (Exception e) {
+					
+				//}
+				//variables.put("mso-request-id", "testRequestId");
+				variables.put("requestId", "testRequestId");		
+				variables.put("isBaseVfModule", "true");
+				variables.put("isDebugLogEnabled", "true");
+				variables.put("recipeTimeout", "0");		
+				variables.put("requestAction", "DELETE_VF_MODULE");
+				variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+				variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+				variables.put("vfModuleId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
+				variables.put("volumeGroupId", "");			
+				variables.put("serviceType", "MOG");	
+				variables.put("vfModuleType", "");			
+				return variables;
+				
+			}
+
+	
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVfModuleVolumeInfraV1Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVfModuleVolumeInfraV1Test.java
new file mode 100644
index 0000000..73acde3
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVfModuleVolumeInfraV1Test.java
@@ -0,0 +1,166 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit test cases for UpdateVfModuleVolume.bpmn
+ */
+public class DeleteVfModuleVolumeInfraV1Test extends WorkflowTest {
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public DeleteVfModuleVolumeInfraV1Test() throws IOException {
+		callbacks.put("volumeGroupDelete", FileUtil.readResourceFile(
+				"__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml"));
+	}
+
+	/**
+	 * Happy path scenario.
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	@Ignore // BROKEN TEST
+	@Deployment(resources = {"process/DeleteVfModuleVolumeInfraV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void happyPath() throws Exception {
+
+		logStart();
+		
+//		DeleteVfModuleVolumeInfraV1_success();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String deleteVfModuleVolRequest =
+			FileUtil.readResourceFile("__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("volumeGroupId", "78987");
+		testVariables.put("serviceInstanceId", "test-service-instance-id-0123");
+		
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DeleteVfModuleVolumeInfraV1",
+			"v1", businessKey, deleteVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 100000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupDelete");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DELVfModVol_TransactionSuccessIndicator", true);
+		
+		logEnd();
+	}
+
+	/**
+	 * Test fails - vf module in use
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	@Deployment(resources = {"process/DeleteVfModuleVolumeInfraV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestVfModuleInUseError() throws Exception {
+
+		logStart();
+		
+//		DeleteVfModuleVolumeInfraV1_inUseError(); // no assertions to check
+		
+		String businessKey = UUID.randomUUID().toString();
+		String deleteVfModuleVolRequest =
+			FileUtil.readResourceFile("__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("volumeGroupId", "78987");
+		
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DeleteVfModuleVolumeInfraV1",
+			"v1", businessKey, deleteVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 100000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		//injectVNFRestCallbacks(callbacks, "volumeGroupDelete");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DELVfModVol_TransactionSuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+	/**
+	 * Test fails on vnf adapter call
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	@Ignore // BROKEN TEST
+	@Deployment(resources = {"process/DeleteVfModuleVolumeInfraV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestVnfAdapterCallfail() throws Exception {
+
+		logStart();
+		
+//		DeleteVfModuleVolumeInfraV1_fail();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String deleteVfModuleVolRequest =
+			FileUtil.readResourceFile("__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("volumeGroupId", "78987");
+		
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("DeleteVfModuleVolumeInfraV1",
+			"v1", businessKey, deleteVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 100000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		//injectVNFRestCallbacks(callbacks, "volumeGroupDelete");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DELVfModVol_TransactionSuccessIndicator", false);
+		
+		logEnd();
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVnfInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVnfInfraTest.java
new file mode 100644
index 0000000..00c5a24
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DeleteVnfInfraTest.java
@@ -0,0 +1,200 @@
+/*
+ * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.
+ */
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf_404;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Please describe the DeleteVnfInfra.java class
+ *
+ */
+public class DeleteVnfInfraTest extends WorkflowTest {
+
+	private String deleteVnfInfraRequest;
+	private String deleteVnfInfraRequestCascadeDelete;
+
+	public DeleteVnfInfraTest () throws IOException {
+		deleteVnfInfraRequest = FileUtil.readResourceFile("__files/InfrastructureFlows/CreateVnfInfraRequest.json");
+		deleteVnfInfraRequestCascadeDelete = FileUtil.readResourceFile("__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json");
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn",  
+							"subprocess/GenericDeleteVnf.bpmn", 
+							"subprocess/DoDeleteVnf.bpmn", 
+							"process/DeleteVnfInfra.bpmn", 
+							"subprocess/FalloutHandler.bpmn", 
+							"subprocess/CompleteMsoProcess.bpmn"})
+	public void testDeleteVnfInfra_success() throws Exception{
+		
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("GenericFlows/getGenericVnfByNameResponse.xml")));
+		
+		MockDeleteGenericVnf();
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+		Object cascadeDelete = BPMNUtil.getRawVariable(processEngineRule, "DeleteVnfInfra", "DELVI_cascadeDelete");
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "DELVI_vnfInUse");
+		String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowException");
+
+		assertEquals(false, cascadeDelete);
+		assertEquals("true", found);
+		assertEquals("false", inUse);
+		assertEquals("Success", response);
+		assertEquals(null, workflowException);
+	}
+	
+	@Test
+	@Ignore // DoDeleteVnfAndModules not complete yet
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn", 
+							"subprocess/GenericDeleteVnf.bpmn", 
+							"subprocess/DoDeleteVnfAndModules.bpmn", 
+							"process/DeleteVnfInfra.bpmn", 
+							"subprocess/FalloutHandler.bpmn", 
+							"subprocess/CompleteMsoProcess.bpmn"})
+	public void testDeleteVnfInfra_cascadeDelete() throws Exception{
+		MockGetGenericVnfById();
+		MockDeleteGenericVnf();
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, deleteVnfInfraRequestCascadeDelete, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
+		String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowException");
+		Object cascadeDelete = BPMNUtil.getRawVariable(processEngineRule, "DeleteVnfInfra", "DELVI_cascadeDelete");
+
+		assertEquals(true, cascadeDelete);
+		assertEquals("true", found);
+		assertEquals("false", inUse);
+		assertEquals("Success", response);
+		assertEquals(null, workflowException);
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn", 
+							"subprocess/GenericDeleteVnf.bpmn", 
+							"subprocess/DoDeleteVnf.bpmn", 
+							"process/DeleteVnfInfra.bpmn", 
+							"subprocess/FalloutHandler.bpmn", 
+							"subprocess/CompleteMsoProcess.bpmn"})
+	public void testDeleteVnfInfra_success_vnfNotFound() throws Exception{
+
+		MockDeleteGenericVnf_404();
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
+		String response = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "WorkflowResponse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "WorkflowException");
+
+		assertEquals("false", found);
+		assertEquals("false", inUse);
+		assertEquals("Success", response);
+		assertEquals(null, workflowException);
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn",  
+							"subprocess/GenericDeleteVnf.bpmn", 
+							"subprocess/DoDeleteVnf.bpmn", 
+							"process/DeleteVnfInfra.bpmn", 
+							"subprocess/FalloutHandler.bpmn", 
+							"subprocess/CompleteMsoProcess.bpmn"})
+	public void testDeleteVnfInfra_error_vnfInUse() throws Exception{
+
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/testVnfId123[?]depth=1"))
+				.willReturn(aResponse()
+						.withStatus(200)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("GenericFlows/getGenericVnfResponse_hasRelationships.xml")));
+		MockDeleteGenericVnf();
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		Map<String, String> variables = new HashMap<String, String>();
+		setVariables(variables, deleteVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+
+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "DeleteVnfInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DeleteVnfInfra", "SavedWorkflowException1");
+
+		String exWfex = "WorkflowException[processKey=DoDeleteVnf,errorCode=5000,errorMessage=Can't Delete Generic Vnf. Generic Vnf is still in use.]";
+
+		assertEquals("true", found);
+		assertEquals("true", inUse);
+		assertEquals(exWfex, workflowException);
+	}
+
+	private void setVariables(Map<String, String> variables, String request, String requestId, String siId) {
+		variables.put("isDebugLogEnabled", "true");
+		variables.put("bpmnRequest", request);
+		variables.put("mso-request-id", requestId);
+		variables.put("serviceInstanceId",siId);
+		variables.put("vnfId","testVnfId123");
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java
new file mode 100644
index 0000000..7a9345f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleRollbackTest.java
@@ -0,0 +1,157 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteVfModuleId;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVfModuleId;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFDelete;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
+import org.openecomp.mso.bpmn.core.RollbackData;
+import org.openecomp.mso.bpmn.core.WorkflowException;
+
+/**
+ * Unit test for DoDeleteVfModule.bpmn.
+ */
+public class DoCreateVfModuleRollbackTest extends WorkflowTest {
+	private final CallbackSet callbacks = new CallbackSet();
+	
+	private static final String EOL = "\n";
+
+	private final String vnfAdapterDeleteCallback = 
+		"<deleteVfModuleResponse>" + EOL +
+		"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +
+		"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +
+		"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +
+		"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +
+		"</deleteVfModuleResponse>" + EOL;
+			
+	private final String vnfAdapterDeleteCallbackFail = 
+			"<vfModuleException>" + EOL +
+			"    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +
+			"    <category>INTERNAL</category>" + EOL +
+			"    <rolledBack>false</rolledBack>" + EOL +
+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +
+			"</vfModuleException>" + EOL;
+				
+	private final String sdncAdapterDeleteCallback =
+		"<output xmlns=\"org:openecomp:sdnctl:l3api\">" + EOL +
+		"  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +
+		"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +
+		"</output>" + EOL;
+	
+	public DoCreateVfModuleRollbackTest() throws IOException {
+		callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);
+		callbacks.put("sdncDelete", sdncAdapterDeleteCallback);
+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);
+		callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);
+	}
+
+	@Test
+	
+	@Deployment(resources = {
+			"subprocess/DoCreateVfModuleRollback.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestCreateVfModuleRollbackSuccess() {
+		logStart();
+
+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>delete", 200, "DeleteGenericVNFV1/sdncAdapterResponse.xml");
+		mockVNFDelete("a27ce5a9-29c4-4c22-a017-6615ac73c721", "/973ed047-d251-4fb9-bf1a-65b8949e0a73", 202);
+		MockDeleteGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721", "0000021", 200);
+		MockDeleteVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "0000073", 200);
+		MockPutVfModuleIdNoResponse("a27ce5a9-29c4-4c22-a017-6615ac73c721", "MMSC", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
+		MockPutGenericVnf("a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		MockGetGenericVnfByIdWithDepth("a27ce5a9-29c4-4c22-a017-6615ac73c721", 1, "DoCreateVfModuleRollback/GenericVnf.xml");
+		MockGetVfModuleId("a27ce5a9-29c4-4c22-a017-6615ac73c721", "973ed047-d251-4fb9-bf1a-65b8949e0a73", "DoCreateVfModuleRollback/GenericVnfVfModule.xml", 200);
+		
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		RollbackData rollbackData = new RollbackData();
+		rollbackData.put("VFMODULE", "source", "PORTAL");
+		rollbackData.put("VFMODULE", "vnfid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		rollbackData.put("VFMODULE", "vnfname", "STMTN5MMSC21");
+		rollbackData.put("VFMODULE", "vnftype", "asc_heat-int");
+		rollbackData.put("VFMODULE", "vfmoduleid", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
+		rollbackData.put("VFMODULE", "vfmodulename", "STMTN5MMSC21-MMSC::module-0-0");
+		rollbackData.put("VFMODULE", "tenantid", "fba1bd1e195a404cacb9ce17a9b2b421");
+		rollbackData.put("VFMODULE", "aiccloudregion", "RDM2WAGPLCP");
+		rollbackData.put("VFMODULE", "heatstackid", "thisisaheatstack");
+		rollbackData.put("VFMODULE", "contrailNetworkPolicyFqdn0", "MSOTest:DefaultPolicyFQDN1");
+		rollbackData.put("VFMODULE", "contrailNetworkPolicyFqdn1", "MSOTest:DefaultPolicyFQDN2");
+		rollbackData.put("VFMODULE", "oamManagementV6Address", "2000:abc:bce:1111");
+		rollbackData.put("VFMODULE", "oamManagementV4Address", "127.0.0.1");
+		
+		rollbackData.put("VFMODULE", "rollbackPrepareUpdateVfModule", "true");
+		rollbackData.put("VFMODULE", "rollbackVnfAdapterCreate", "true");
+		rollbackData.put("VFMODULE", "rollbackUpdateAAIVfModule", "true");
+		rollbackData.put("VFMODULE", "rollbackSDNCRequestActivate", "true");
+		rollbackData.put("VFMODULE", "rollbackCreateAAIVfModule", "true");
+		rollbackData.put("VFMODULE", "rollbackCreateNetworkPoliciesAAI", "true");
+		rollbackData.put("VFMODULE", "rollbackUpdateVnfAAI", "true");
+		
+	
+		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		rollbackData.put("VFMODULE", "msorequestid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		rollbackData.put("VFMODULE", "serviceinstanceid", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("RollbackData", rollbackData);
+		invokeSubProcess("DoCreateVfModuleRollback", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		injectVNFRestCallbacks(callbacks, "vnfDelete");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
+		checkVariable(businessKey, "WorkflowException", null);
+		if (wfe != null) {
+			System.out.println("TestCreateVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+		}
+		logEnd();
+	}
+
+	
+}
+
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java
new file mode 100644
index 0000000..235deb8
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleTest.java
@@ -0,0 +1,149 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+
+import static org.openecomp.mso.bpmn.common.BPMNUtil.getRawVariable;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPost;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit tests for DoCreateVfModuleTest.bpmn.
+ */
+public class DoCreateVfModuleTest extends WorkflowTest {
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public DoCreateVfModuleTest() throws IOException {
+		callbacks.put("assign", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyAssignCallback.xml"));
+		callbacks.put("query", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyQueryCallback.xml"));
+		callbacks.put("activate", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyActivateCallback.xml"));
+		callbacks.put("vnfCreate", FileUtil.readResourceFile(
+			"__files/VfModularity/VNFAdapterRestCreateCallback.xml"));
+	}
+
+	/**
+	 * Test the sunny day scenario.
+	 */
+	@Test	
+	
+	@Deployment(resources = {
+			"subprocess/DoCreateVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn",
+			"subprocess/ConfirmVolumeGroupTenant.bpmn",
+			"subprocess/ConfirmVolumeGroupName.bpmn",
+			"subprocess/CreateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/CreateAAIVfModuleVolumeGroup.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn"
+		})
+	public void sunnyDay() throws IOException {
+		
+		logStart();
+		
+		MockGetGenericVnfByIdWithPriority("skask", ".*", 200, "VfModularity/VfModule-new.xml", 5);
+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
+		MockPutVfModuleIdNoResponse("skask", "PCRF", ".*");
+		MockPutNetwork(".*", "VfModularity/AddNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockPutGenericVnf("skask");
+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockVNFPost("", 202, "skask");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		//RuntimeService runtimeService = processEngineRule.getRuntimeService();				
+		
+		Map<String, Object> variables = setupVariablesSunnyDayBuildingBlocks();
+		//runtimeService.startProcessInstanceByKey("DoCreateVfModule", variables);
+		invokeSubProcess("DoCreateVfModule", businessKey, variables);
+		
+		injectSDNCCallbacks(callbacks, "assign, query");
+		injectVNFRestCallbacks(callbacks, "vnfCreate");
+		injectSDNCCallbacks(callbacks, "activate");
+
+		waitForProcessEnd(businessKey, 10000);
+		
+		Assert.assertTrue(isProcessEnded(businessKey));
+		Assert.assertTrue((boolean) getRawVariable(processEngineRule, "DoCreateVfModule", "DCVFM_SuccessIndicator"));
+		
+		logEnd();
+	}
+	
+	private Map<String, Object> setupVariablesSunnyDayBuildingBlocks() {
+		Map<String, Object> variables = new HashMap<String, Object>();
+		
+		variables.put("mso-request-id", "testRequestId");
+		variables.put("requestId", "testRequestId");		
+		variables.put("isBaseVfModule", false);
+		variables.put("isDebugLogEnabled", "true");
+		variables.put("disableRollback", "true");
+		//variables.put("recipeTimeout", "0");		
+		//variables.put("requestAction", "CREATE_VF_MODULE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "skask");
+		variables.put("vfModuleName", "PCRF::module-0-2");
+		variables.put("vnfType", "vSAMP12");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");			
+		variables.put("serviceType", "MOG");	
+		variables.put("vfModuleType", "");
+		variables.put("isVidRequest", "true");
+		variables.put("asdcServiceModelVersion", "1.0");
+					
+		String vfModuleModelInfo = "{" + "\"modelInfo\": { "+ "\"modelType\": \"vfModule\"," +
+			"\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + 
+			"\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +
+			"\"modelName\": \"STMTN5MMSC21-MMSC::model-1-0\"," +
+			"\"modelVersion\": \"1\"," + 
+			"\"modelCustomizationId\": \"MODEL-123\"" + "}}";
+		variables.put("vfModuleModelInfo", vfModuleModelInfo);
+		
+		String cloudConfiguration = "{" + "\"cloudConfiguration\": { " + 
+				"\"lcpCloudRegionId\": \"MDTWNJ21\"," +		
+				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}}";
+		variables.put("cloudConfiguration", cloudConfiguration);
+		return variables;
+		
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV1Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV1Test.java
new file mode 100644
index 0000000..c7a112d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVfModuleVolumeV1Test.java
@@ -0,0 +1,351 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.get;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+public class DoCreateVfModuleVolumeV1Test extends WorkflowTest {
+	
+	public static final String _prefix = "CVFMODVOL2_";
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public DoCreateVfModuleVolumeV1Test() throws IOException {
+		callbacks.put("volumeGroupCreate", FileUtil.readResourceFile(
+				"__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml"));
+		callbacks.put("volumeGroupRollback", FileUtil.readResourceFile(
+				"__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml"));
+	}
+
+	/**
+	 * Happy Path
+	 * @throws Exception
+	 */
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestHappyPath() throws Exception {
+
+		logStart();
+		
+		DoCreateVfModuleVolume_Success();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		//testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
+		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", true);
+		
+		logEnd();
+	}
+	
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestVolumeGroupExistError() throws Exception {
+
+		logStart();
+		
+		DoCreateVfModuleVolume_VolumeGroupExistsFail();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
+		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		
+		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+	/**
+	 * Will trigger AAI create rollback
+	 * @throws Exception
+	 */
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestVnfVolumeGroupCreateError() throws Exception {
+
+		logStart();
+		
+		DoCreateVfModuleVolume_VnfCreateVolumeGroupFail();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
+		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		
+		//injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+	
+	/**
+	 * Will trigger AAI create rollback
+	 * @throws Exception
+	 */
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestUpdateAaiVolumeGroupError() throws Exception {
+
+		logStart();
+		
+		DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
+		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupCreate,volumeGroupRollback");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
+		
+		logEnd();
+	}		
+
+	/**
+	 * Will trigger not trigger rollback
+	 * @throws Exception
+	 */
+	@Test
+	@Deployment(resources = {"subprocess/DoCreateVfModuleVolumeV1.bpmn",
+            "subprocess/FalloutHandler.bpmn",
+            "subprocess/CompleteMsoProcess.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn",
+            "subprocess/VnfAdapterRestV1.bpmn"})
+	public void TestUpdateAaiVolumeGroupErrorNoRollback() throws Exception {
+
+		logStart();
+		
+		DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail();
+		
+		String businessKey = UUID.randomUUID().toString();
+		String createVfModuleVolRequest = FileUtil.readResourceFile("__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("DCVFMODVOLV1_volumeGroupId", "TEST-VOLUME-VOLUME-GROUP-ID-0123");
+		testVariables.put("vnf-id", "TEST-VNF-ID-0123");
+		testVariables.put("volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("test-volume-group-name", "TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0");
+		testVariables.put("test-volume-group-id", "TEST-VOLUME-GROUP-ID-0123");
+		testVariables.put("DoCreateVfModuleVolumeV1Request", createVfModuleVolRequest);
+		invokeAsyncProcess("DoCreateVfModuleVolumeV1", "v1", businessKey, createVfModuleVolRequest, testVariables);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupCreate");
+		
+		waitForProcessEnd(businessKey, 100000);
+		checkVariable(businessKey, "DCVFMODVOLV1_SuccessIndicator", false);
+		
+		logEnd();
+	}
+
+	public static void DoCreateVfModuleVolume_Success() {
+		// Notes:
+		// 1. initial aai volume group by name - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group?volume-group-name=TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0
+		// 2. Create volume group - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group
+		// 3. Requery Volume Group - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group?volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0
+		// 4. Update volume group (id from requery response - /aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379
+
+		//generic vnf
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
+		//create volume group
+		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/TEST-VOLUME-GROUP-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(201)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml")));
+		//requery volume group
+		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups[?]volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
+		//update volume group
+		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml")));
+		// VNF rest Adapter
+ 		stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
+ 				.willReturn(aResponse()
+ 					.withStatus(202)
+ 					.withHeader("Content-Type", "application/xml")));
+	}
+
+	public static void DoCreateVfModuleVolume_VolumeGroupExistsFail() {
+		//generic vnf
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
+		//initial volume group query
+		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group[?]volume-group-name=TEST-MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
+	}
+
+	public static void DoCreateVfModuleVolume_VnfCreateVolumeGroupFail() {
+		//generic vnf
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
+		//create volume group
+		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/TEST-VOLUME-GROUP-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(201)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml")));
+		//Query AAI volume group by name -- needed before delete
+		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups[?]volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
+		//delete volume group in aai
+		stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379[?]resource-version=1460134360"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml")));
+ 		stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
+ 				.willReturn(aResponse()
+ 					.withStatus(404)
+ 					.withHeader("Content-Type", "application/xml")));
+	}
+
+	public static void DoCreateVfModuleVolume_AaiVolumeGroupUpdateFail() {
+		//generic vnf
+		stubFor(get(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/TEST-VNF-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/GenericVnf.xml")));
+		//create volume group
+		stubFor(put(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups/volume-group/TEST-VOLUME-GROUP-ID-0123"))
+				  .willReturn(aResponse()
+				  .withStatus(201)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml")));
+		//requery volume group
+		stubFor(get(urlMatching("/aai/v[0-9]+/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/volume-groups[?]volume-group-name=MSOTESTVOL101a-vSAMP12_base_vol_module-0"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml")));
+		//delete volume group in aai
+		stubFor(delete(urlMatching("/aai/v[0-9]+/cloud-infrastructure/volume-groups/volume-group/8424bb3c-c3e7-4553-9662-469649ed9379[?]resource-version=1460134360"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml")));
+		// VNF rest Adapter
+ 		stubFor(post(urlEqualTo("/vnfs/v1/volume-groups"))
+ 				.willReturn(aResponse()
+ 					.withStatus(202)
+ 					.withHeader("Content-Type", "application/xml")));
+ 		// VNF Rest Adapter rollback - vnfs/v1/volume-groups/STUB-TEST-8424bb3c-c3e7-4553-9662-469649ed9379/rollback
+ 		stubFor(delete(urlEqualTo("/vnfs/v1/volume-groups/TEST-VOLUME-GROUP-ID-0123/rollback"))
+ 				.willReturn(aResponse()
+ 				.withStatus(202)
+ 				.withHeader("Content-Type", "application/xml")));
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java
new file mode 100644
index 0000000..b161d05
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoCreateVnfTest.java
@@ -0,0 +1,119 @@
+/*
+ * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.
+ */
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByName_404;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetServiceInstance;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit Test for the DoCreateVnf Flow
+ *
+ */
+public class DoCreateVnfTest extends WorkflowTest {
+
+	private String createVnfInfraRequest;
+	private final CallbackSet callbacks = new CallbackSet();
+
+
+	public DoCreateVnfTest() throws IOException {
+		createVnfInfraRequest = FileUtil.readResourceFile("__files/InfrastructureFlows/CreateVnfInfraRequest.json");
+		callbacks.put("assign", FileUtil.readResourceFile(
+				"__files/VfModularity/SDNCTopologyAssignCallback.xml"));
+		callbacks.put("activate", FileUtil.readResourceFile(
+				"__files/VfModularity/SDNCTopologyActivateCallback.xml"));
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetService.bpmn", "subprocess/GenericGetVnf.bpmn", "subprocess/GenericPutVnf.bpmn", "subprocess/SDNCAdapterV1.bpmn", "subprocess/DoCreateVnf.bpmn"})
+	public void testDoCreateVnfInfra_success() throws Exception{
+
+		MockNodeQueryServiceInstanceById("MIS%2F1604%2F0026%2FSW_INTERNET", "GenericFlows/getSIUrlById.xml");
+		MockGetServiceInstance("SDN-ETHERNET-INTERNET", "123456789", "MIS%252F1604%252F0026%252FSW_INTERNET", "GenericFlows/getServiceInstance.xml");
+		MockGetGenericVnfByName_404("testVnfName123");
+		MockPutGenericVnf("testVnfId123");
+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		setVariablesSuccess(variables, createVnfInfraRequest, "testRequestId123", "MIS%2F1604%2F0026%2FSW_INTERNET");
+		invokeSubProcess("DoCreateVnf", businessKey, variables);
+
+		waitForProcessEnd(businessKey, 10000);
+
+		Assert.assertTrue(isProcessEnded(businessKey));
+		assertVariables("true", "true", "false", "true", "Success", null);
+	}
+
+	private void assertVariables(String exSIFound, String exSISucc, String exVnfFound, String exVnfSucc, String exResponse, String exWorkflowException) {
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoCreateVnf", "SavedWorkflowException1");
+
+		assertEquals(exWorkflowException, workflowException);
+	}
+
+	private void setVariablesSuccess(Map<String, Object> variables, String request, String requestId, String siId) {
+		variables.put("isDebugLogEnabled", "true");
+		//variables.put("bpmnRequest", request);
+		variables.put("mso-request-id", requestId);
+		variables.put("serviceInstanceId",siId);
+		variables.put("vnfName", "testVnfName123");
+		variables.put("disableRollback", "true");
+		variables.put("requestId", requestId);
+		variables.put("testVnfId","testVnfId123");
+		variables.put("vnfType", "STMTN");
+		variables.put("productFamilyId", "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb");
+		String vnfModelInfo = "{ "+ "\"modelType\": \"vnf\"," +
+				"\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," +
+				"\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +
+				"\"modelName\": \"vSAMP12\"," +
+				"\"modelVersion\": \"1.0\"," +
+				"\"modelCustomizationId\": \"MODEL-ID-1234\"," +
+				"}";
+		variables.put("vnfModelInfo", vnfModelInfo);
+
+		String cloudConfiguration = "{ " +
+				"\"lcpCloudRegionId\": \"mdt1\"," +
+				"\"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\"" + "}";
+		variables.put("cloudConfiguration", cloudConfiguration);
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java
new file mode 100644
index 0000000..a04ed17
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVfModuleTest.java
@@ -0,0 +1,549 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.delete;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIDeleteGenericVnf;
+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIDeleteVfModule;
+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
+import org.openecomp.mso.bpmn.core.WorkflowException;
+
+/**
+ * Unit test for DoDeleteVfModule.bpmn.
+ */
+public class DoDeleteVfModuleTest extends WorkflowTest {
+	private final CallbackSet callbacks = new CallbackSet();
+	
+	private static final String EOL = "\n";
+
+	private final String vnfAdapterDeleteCallback = 
+		"<deleteVfModuleResponse>" + EOL +
+		"    <vnfId>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnfId>" + EOL +
+		"    <vfModuleId>973ed047-d251-4fb9-bf1a-65b8949e0a73</vfModuleId>" + EOL +
+		"    <vfModuleDeleted>true</vfModuleDeleted>" + EOL +
+		"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +
+		"</deleteVfModuleResponse>" + EOL;
+			
+	private final String vnfAdapterDeleteCallbackFail = 
+			"<vfModuleException>" + EOL +
+			"    <message>Error processing request to VNF-Async. Not Found.</message>" + EOL +
+			"    <category>INTERNAL</category>" + EOL +
+			"    <rolledBack>false</rolledBack>" + EOL +
+			"    <messageId>{{MESSAGE-ID}}</messageId>" + EOL +
+			"</vfModuleException>" + EOL;
+				
+	private final String sdncAdapterDeleteCallback =
+		"<output xmlns=\"org:openecomp:sdnctl:l3api\">" + EOL +
+		"  <svc-request-id>{{REQUEST-ID}}</svc-request-id>" + EOL +
+		"  <ack-final-indicator>Y</ack-final-indicator>" + EOL +
+		"</output>" + EOL;
+	
+	public DoDeleteVfModuleTest() throws IOException {
+		callbacks.put("sdncChangeDelete", sdncAdapterDeleteCallback);
+		callbacks.put("sdncDelete", sdncAdapterDeleteCallback);
+		callbacks.put("vnfDelete", vnfAdapterDeleteCallback);
+		callbacks.put("vnfDeleteFail", vnfAdapterDeleteCallbackFail);
+	}
+	
+	private final String wfeString = "WorkflowException";
+
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestDoDeleteVfModuleSuccess() {
+		// delete the Base Module and Generic Vnf
+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
+		String request =
+			"<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\">" + EOL +
+			"  <request-info>" + EOL +
+			"    <action>DELETE_VF_MODULE</action>" + EOL +
+			"    <source>PORTAL</source>" + EOL +
+			"  </request-info>" + EOL +
+			"  <vnf-inputs>" + EOL +
+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +
+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +
+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +
+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +
+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +
+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +
+			"  </vnf-inputs>" + EOL +
+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
+			"</vnf-request>" + EOL;
+		logStart();
+		MockDoDeleteVfModule_SDNCSuccess();
+		MockDoDeleteVfModule_DeleteVNFSuccess();
+		MockAAIGenericVnfSearch();
+		MockAAIVfModulePUT(false);
+		MockAAIDeleteGenericVnf();
+		MockAAIDeleteVfModule();
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("DoDeleteVfModuleRequest",request);
+		variables.put("isVidRequest", "true");
+		invokeSubProcess("DoDeleteVfModule", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		injectVNFRestCallbacks(callbacks, "vnfDelete");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);
+		checkVariable(businessKey, wfeString, null);
+		if (wfe != null) {
+			System.out.println("TestDoDeleteVfModuleSuccess: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+		}
+		logEnd();
+	}
+
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestDoDeleteVfModule_Building_Block_Success() {
+		logStart();
+		MockDoDeleteVfModule_SDNCSuccess();
+		MockDoDeleteVfModule_DeleteVNFSuccess();
+		MockAAIGenericVnfSearch();
+		MockAAIVfModulePUT(false);
+		MockAAIDeleteGenericVnf();
+		MockAAIDeleteVfModule();
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();		
+		
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");	
+		variables.put("requestId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("vfModuleId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
+		variables.put("serviceInstanceId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-0-0");
+		variables.put("sdncVersion", "1610");
+		variables.put("isVidRequest", "true");
+		String vfModuleModelInfo = "{" + "\"modelType\": \"vnf\"," +
+				"\"modelInvariantId\": \"ff5256d2-5a33-55df-13ab-12abad84e7ff\"," + 
+				"\"modelNameVersionId\": \"fe6478e5-ea33-3346-ac12-ab121484a3fe\"," +
+				"\"modelName\": \"vSAMP12\"," +
+				"\"modelVersion\": \"1.0\"," + 
+				"\"modelCustomizationId\": \"MODEL-ID-1234\"," + 
+				"}";
+		variables.put("vfModuleModelInfo", vfModuleModelInfo);
+			
+		String cloudConfiguration = "{" + 
+				"\"lcpCloudRegionId\": \"RDM2WAGPLCP\"," +		
+				"\"tenantId\": \"fba1bd1e195a404cacb9ce17a9b2b421\"" + "}";
+		variables.put("cloudConfiguration", cloudConfiguration);
+	
+		
+		invokeSubProcess("DoDeleteVfModule", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		injectVNFRestCallbacks(callbacks, "vnfDelete");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);
+		checkVariable(businessKey, wfeString, null);
+		if (wfe != null) {
+			System.out.println("TestDoDeleteVfModule_Building_Block_Success: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+		}
+		logEnd();
+	}
+
+	
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestDoDeleteVfModuleSDNCFailure() {
+		// delete the Base Module and Generic Vnf - SDNCAdapter failure
+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
+		String request =
+			"<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\">" + EOL +
+			"  <request-info>" + EOL +
+			"    <action>DELETE_VF_MODULE</action>" + EOL +
+			"    <source>PORTAL</source>" + EOL +
+			"  </request-info>" + EOL +
+			"  <vnf-inputs>" + EOL +
+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +
+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +
+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +
+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +
+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +
+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +
+			"  </vnf-inputs>" + EOL +
+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
+			"</vnf-request>" + EOL;
+
+		logStart();
+		MockDoDeleteVfModule_SDNCFailure();
+		MockDoDeleteVfModule_DeleteVNFSuccess();
+		MockAAIGenericVnfSearch();
+		MockAAIVfModulePUT(false);
+		MockAAIDeleteGenericVnf();
+		MockAAIDeleteVfModule();
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("DoDeleteVfModuleRequest", request);
+		variables.put("isVidRequest", "true");
+		invokeSubProcess("DoDeleteVfModule", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		injectVNFRestCallbacks(callbacks, "vnfDelete");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+		// cause a failure by not injecting a callback
+//		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);
+		Assert.assertNotNull(wfe);
+		if (wfe != null) {
+			System.out.println("TestDoDeleteVfModuleSDNCFailure: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+			Assert.assertTrue(wfe.getErrorCode() == 7000);
+			Assert.assertTrue(wfe.getErrorMessage().startsWith("Could not communicate"));
+		}
+		logEnd();
+	}
+
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestDoDeleteVfModuleSDNCCallbackFailure() {
+		// delete the Base Module and Generic Vnf - SDNCAdapter Callback failure
+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
+		String request =
+			"<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\">" + EOL +
+			"  <request-info>" + EOL +
+			"    <action>DELETE_VF_MODULE</action>" + EOL +
+			"    <source>PORTAL</source>" + EOL +
+			"  </request-info>" + EOL +
+			"  <vnf-inputs>" + EOL +
+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +
+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +
+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +
+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +
+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +
+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +
+			"  </vnf-inputs>" + EOL +
+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
+			"</vnf-request>" + EOL;
+
+		logStart();
+		MockDoDeleteVfModule_SDNCSuccess();
+		MockDoDeleteVfModule_DeleteVNFSuccess();
+		MockAAIGenericVnfSearch();
+		MockAAIVfModulePUT(false);
+		MockAAIDeleteGenericVnf();
+		MockAAIDeleteVfModule();
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("DoDeleteVfModuleRequest",request);
+		variables.put("isVidRequest", "true");
+		invokeSubProcess("DoDeleteVfModule", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete:ERR");
+		injectVNFRestCallbacks(callbacks, "vnfDelete");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+		// return a failure in the callback
+		injectSDNCCallbacks(callbacks, "sdncDelete:ERR");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);
+		Assert.assertNotNull(wfe);
+		if (wfe != null) {
+			System.out.println("TestDoDeleteVfModuleSDNCCallbackFailure: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+			Assert.assertTrue(wfe.getErrorCode() == 5310);
+			Assert.assertTrue(wfe.getErrorMessage().startsWith("Received error from SDN-C"));
+		}
+		logEnd();
+	}
+
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestDoDeleteVfModuleVNFFailure() {
+		// delete the Base Module and Generic Vnf - VNFAdapter failure
+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
+		String request =
+			"<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\">" + EOL +
+			"  <request-info>" + EOL +
+			"    <action>DELETE_VF_MODULE</action>" + EOL +
+			"    <source>PORTAL</source>" + EOL +
+			"  </request-info>" + EOL +
+			"  <vnf-inputs>" + EOL +
+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +
+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +
+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +
+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +
+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +
+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +
+			"  </vnf-inputs>" + EOL +
+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
+			"</vnf-request>" + EOL;
+
+		logStart();
+		MockDoDeleteVfModule_SDNCSuccess();
+		MockDoDeleteVfModule_DeleteVNFFailure();
+		MockAAIGenericVnfSearch();
+		MockAAIVfModulePUT(false);
+		MockAAIDeleteGenericVnf();
+		MockAAIDeleteVfModule();
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("DoDeleteVfModuleRequest",request);
+		invokeSubProcess("DoDeleteVfModule", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		// cause a failure by not injecting a callback
+//		injectVNFRestCallbacks(callbacks, "vnfDelete");
+//		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+//		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);
+		Assert.assertNotNull(wfe);
+		if (wfe != null) {
+			System.out.println("TestDoDeleteVfModuleVNFFailure: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+			Assert.assertTrue(wfe.getErrorCode() == 7020);
+			Assert.assertTrue(wfe.getErrorMessage().startsWith("Received error from VnfAdapter"));
+		}
+		logEnd();
+	}
+
+	@Test
+	@Deployment(resources = {
+			"subprocess/DoDeleteVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/DeleteAAIVfModule.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn"
+		})
+	public void  TestDoDeleteVfModuleVNFCallbackFailure() {
+		// delete the Base Module and Generic Vnf - VNFAdapter Callback failure
+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
+		String request =
+			"<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\">" + EOL +
+			"  <request-info>" + EOL +
+			"    <action>DELETE_VF_MODULE</action>" + EOL +
+			"    <source>PORTAL</source>" + EOL +
+			"  </request-info>" + EOL +
+			"  <vnf-inputs>" + EOL +
+			"    <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>" + EOL +
+			"    <vnf-name>STMTN5MMSC21</vnf-name>" + EOL +
+			"    <vnf-type>asc_heat-int</vnf-type>" + EOL +
+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>" + EOL +
+			"    <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>" + EOL +
+			"    <service-id>00000000-0000-0000-0000-000000000000</service-id>" + EOL +
+			"    <service-type>SDN-ETHERNET-INTERNET</service-type>" + EOL +
+			"    <tenant-id>fba1bd1e195a404cacb9ce17a9b2b421</tenant-id>" + EOL +
+			"    <orchestration-status>pending-delete</orchestration-status>" + EOL +
+			"    <aic-cloud-region>RDM2WAGPLCP</aic-cloud-region>" + EOL +
+			"  </vnf-inputs>" + EOL +
+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
+			"</vnf-request>" + EOL;
+
+		logStart();
+		MockDoDeleteVfModule_SDNCSuccess();
+		MockDoDeleteVfModule_DeleteVNFSuccess();
+		MockAAIGenericVnfSearch();
+		MockAAIVfModulePUT(false);
+		MockAAIDeleteGenericVnf();
+		MockAAIDeleteVfModule();
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();		
+		variables.put("isDebugLogEnabled","true");
+		variables.put("mso-request-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("mso-service-instance-id", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
+		variables.put("DoDeleteVfModuleRequest",request);
+		invokeSubProcess("DoDeleteVfModule", businessKey, variables);
+
+		// "changedelete" operation not required for deleting a Vf Module
+//		injectSDNCCallbacks(callbacks, "sdncChangeDelete");
+		injectVNFRestCallbacks(callbacks, "vnfDeleteFail");
+		waitForRunningProcessCount("vnfAdapterDeleteV1", 0, 120000);
+//		injectSDNCCallbacks(callbacks, "sdncDelete");
+
+		waitForProcessEnd(businessKey, 10000);
+		WorkflowException wfe = (WorkflowException) getVariableFromHistory(businessKey, wfeString);
+		Assert.assertNotNull(wfe);
+		if (wfe != null) {
+			System.out.println("TestDoDeleteVfModuleVNFCallbackFailure: ErrorCode=" + wfe.getErrorCode() +
+					", ErrorMessage=" + wfe.getErrorMessage());
+			Assert.assertTrue(wfe.getErrorCode() == 7020);
+			Assert.assertTrue(wfe.getErrorMessage().startsWith("Received vfModuleException from VnfAdapter"));
+		}
+		logEnd();
+	}
+
+	// start of mocks used locally and by other VF Module unit tests
+	public static void MockAAIVfModulePUT(boolean isCreate){
+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*/vf-modules/vf-module/.*"))
+				.withRequestBody(containing("MMSC"))
+				.willReturn(aResponse()
+						.withStatus(isCreate ? 201 : 200)));
+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*/vf-modules/vf-module/.*"))
+				.withRequestBody(containing("PCRF"))
+				.willReturn(aResponse()
+						.withStatus(500)
+						.withHeader("Content-Type", "text/xml")
+						.withBodyFile("aaiFault.xml")));
+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/a27ce5a9-29c4-4c22-a017-6615ac73c721"))				
+				.willReturn(aResponse()
+					.withStatus(200)));
+	}
+
+	public static void MockDoDeleteVfModule_SDNCSuccess() {
+		stubFor(post(urlEqualTo("/SDNCAdapter"))
+				  .withRequestBody(containing("SvcAction>changedelete"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));
+		stubFor(post(urlEqualTo("/SDNCAdapter"))
+				  .withRequestBody(containing("SvcAction>delete"))
+				  .willReturn(aResponse()
+				  .withStatus(200)
+				  .withHeader("Content-Type", "text/xml")
+				  .withBodyFile("DeleteGenericVNFV1/sdncAdapterResponse.xml")));
+	}
+
+	public static void MockDoDeleteVfModule_SDNCFailure() {
+		stubFor(post(urlEqualTo("/SDNCAdapter"))
+				  .withRequestBody(containing("SvcAction>changedelete"))
+				  .willReturn(aResponse()
+				  .withStatus(500)));
+		stubFor(post(urlEqualTo("/SDNCAdapter"))
+				  .withRequestBody(containing("SvcAction>delete"))
+				  .willReturn(aResponse()
+				  .withStatus(500)));
+	}
+
+	public static void MockDoDeleteVfModule_DeleteVNFSuccess() {
+		stubFor(delete(urlMatching("/vnfs/v1/vnfs/.*/vf-modules/.*"))
+				.willReturn(aResponse()
+				.withStatus(202)
+				.withHeader("Content-Type", "application/xml")));
+		stubFor(delete(urlMatching("/vnfs/v1/volume-groups/78987"))
+				.willReturn(aResponse()
+				.withStatus(202)
+				.withHeader("Content-Type", "application/xml")));
+	}
+
+	public static void MockDoDeleteVfModule_DeleteVNFFailure() {
+		stubFor(delete(urlMatching("/vnfs/v1/vnfs/.*/vf-modules/.*"))
+				.willReturn(aResponse()
+				.withStatus(500)
+				.withHeader("Content-Type", "application/xml")));
+	}
+}
+
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVnfTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVnfTest.java
new file mode 100644
index 0000000..9c98c01
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoDeleteVnfTest.java
@@ -0,0 +1,140 @@
+/*
+ * © 2014 AT&T Intellectual Property. All rights reserved. Used under license from AT&T Intellectual Property.
+ */
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockDeleteGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+
+/**
+ * Please describe the DeleteVnfInfra.java class
+ *
+ */
+public class DoDeleteVnfTest extends WorkflowTest {
+
+	
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn"})
+	public void testDoDeleteVnf_success() throws Exception{
+		
+		MockGetGenericVnfByIdWithDepth("testVnfId123", 1, "GenericFlows/getGenericVnfByNameResponse.xml");
+		MockDeleteGenericVnf("testVnfId123", "testReVer123");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		setVariables(variables);
+		invokeSubProcess("DoDeleteVnf", businessKey, variables);
+		// Disabled until SDNC support is there
+//		injectSDNCCallbacks(callbacks, "assign");		
+//		injectSDNCCallbacks(callbacks, "activate");
+
+		waitForProcessEnd(businessKey, 10000);
+				
+		Assert.assertTrue(isProcessEnded(businessKey));
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "WorkflowException");
+
+		assertEquals("true", found);
+		assertEquals("false", inUse);
+		assertEquals(null, workflowException);
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn"})
+	public void testDeleteVnfInfra_success_vnfNotFound() throws Exception{
+
+		MockDeleteGenericVnf("testVnfId123", "testReVer123", 404);
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		setVariables(variables);
+
+		invokeSubProcess("DoDeleteVnf", businessKey, variables);
+		// Disabled until SDNC support is there
+//		injectSDNCCallbacks(callbacks, "assign");		
+//		injectSDNCCallbacks(callbacks, "activate");
+
+		waitForProcessEnd(businessKey, 10000);
+		
+		Assert.assertTrue(isProcessEnded(businessKey));
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "WorkflowException");
+
+		assertEquals("false", found);
+		assertEquals("false", inUse);
+		assertEquals(null, workflowException);
+	}
+
+	@Test
+	@Deployment(resources = {"subprocess/GenericGetVnf.bpmn", "subprocess/GenericDeleteVnf.bpmn", "subprocess/DoDeleteVnf.bpmn"})
+	public void testDeleteVnfInfra_error_vnfInUse() throws Exception{
+
+		MockGetGenericVnfByIdWithDepth("testVnfId123", 1, "GenericFlows/getGenericVnfResponse_hasRelationships.xml");
+		MockDeleteGenericVnf("testVnfId123", "testReVer123");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		setVariables(variables);
+
+		invokeSubProcess("DoDeleteVnf", businessKey, variables);
+//		Disabled until SDNC support is there
+//		injectSDNCCallbacks(callbacks, "assign");		
+//		injectSDNCCallbacks(callbacks, "activate");
+
+		waitForProcessEnd(businessKey, 10000);
+		
+		Assert.assertTrue(isProcessEnded(businessKey));
+
+		String found = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "GENGV_FoundIndicator") ;
+		String inUse = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "DoDVNF_vnfInUse");
+		String workflowException = BPMNUtil.getVariable(processEngineRule, "DoDeleteVnf", "WorkflowException");
+		String exWfex = "WorkflowException[processKey=DoDeleteVnf,errorCode=5000,errorMessage=Can't Delete Generic Vnf. Generic Vnf is still in use.]";
+
+		assertEquals("true", found);
+		assertEquals("true", inUse);
+		assertEquals(exWfex, workflowException);
+	}
+
+	private void setVariables(Map<String, Object> variables) {
+		variables.put("mso-request-id", "123");
+		variables.put("isDebugLogEnabled", "true");		
+		variables.put("vnfId","testVnfId123");
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java
new file mode 100644
index 0000000..e202b03
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/DoUpdateVfModuleTest.java
@@ -0,0 +1,115 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVfModuleIdNoResponse;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTest.CallbackSet;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit tests for DoUpdateVfModule.bpmn.
+ */
+public class DoUpdateVfModuleTest extends WorkflowTest {
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public DoUpdateVfModuleTest() throws IOException {
+		callbacks.put("changeassign", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));
+		callbacks.put("query", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyQueryCallback.xml"));
+		callbacks.put("activate", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyActivateCallback.xml"));
+		callbacks.put("vnfUpdate", FileUtil.readResourceFile(
+			"__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));
+	}
+
+	/**
+	 * Test the happy path through the flow.
+	 */
+	@Test	
+	
+	@Deployment(resources = {
+			"subprocess/DoUpdateVfModule.bpmn",
+			"subprocess/PrepareUpdateAAIVfModule.bpmn",
+			"subprocess/ConfirmVolumeGroupTenant.bpmn",
+			"subprocess/SDNCAdapterV1.bpmn",
+			"subprocess/VnfAdapterRestV1.bpmn",
+			"subprocess/UpdateAAIGenericVnf.bpmn",
+			"subprocess/UpdateAAIVfModule.bpmn"
+		})
+	public void happyPath() throws IOException {
+		
+		logStart();
+		
+		String doUpdateVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/DoUpdateVfModuleRequest.xml");
+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
+		MockGetVfModuleIdNoResponse("skask", "PCRF", "supercool");
+		MockPutVfModuleIdNoResponse("skask", "PCRF", "supercool");
+		MockGetVolumeGroupById("MDTWNJ21", "78987", "VfModularity/VolumeGroup.xml");
+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockSDNCAdapter("/SDNCAdapter", "SvcInstanceId><", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockVNFPut("skask", "/supercool", 202);
+		MockPutGenericVnf("skask");
+		MockGetGenericVnfByIdWithPriority("skask", "supercool", 200, "VfModularity/VfModule-supercool.xml", 1);
+		
+		String businessKey = UUID.randomUUID().toString();
+		Map<String, Object> variables = new HashMap<String, Object>();
+		variables.put("mso-request-id", "DEV-VF-0011");
+		variables.put("isDebugLogEnabled","true");
+		variables.put("DoUpdateVfModuleRequest", doUpdateVfModuleRequest);
+		invokeSubProcess("DoUpdateVfModule", businessKey, variables);
+		
+		injectSDNCCallbacks(callbacks, "changeassign, query");
+		injectVNFRestCallbacks(callbacks, "vnfUpdate");
+		injectSDNCCallbacks(callbacks, "activate");
+
+		waitForProcessEnd(businessKey, 10000);
+		
+		Assert.assertTrue(isProcessEnded(businessKey));
+		checkVariable(businessKey, "DoUpdateVfModuleSuccessIndicator", true);
+		
+		String heatStackId = (String) getVariableFromHistory(businessKey, "DOUPVfMod_heatStackId");
+		System.out.println("Heat stack Id from AAI: " + heatStackId);
+		
+		logEnd();
+	}
+}
+
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateNetworkInstanceInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateNetworkInstanceInfraTest.java
new file mode 100644
index 0000000..9ef4c94
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateNetworkInstanceInfraTest.java
@@ -0,0 +1,840 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.junit.Assert.assertEquals;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeAsyncWorkflow;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.getVariable;
+import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetCloudRegion;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetwork;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkPolicy;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkRouteTable;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetNetworkVpnBinding;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockNodeQueryServiceInstanceById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutNetwork;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseNetworkAdapter.MockPutNetworkAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapterTopology;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.BPMNUtil;
+import org.openecomp.mso.bpmn.common.SDNCAdapterCallbackRule;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.WorkflowTestTransformer;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.SDNCAdapterNetworkTopologyMockTransformer;
+
+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+
+/**
+ * Unit test cases for UpdateNetworkInstanceInfra.bpmn
+ *
+ */
+public class UpdateNetworkInstanceInfraTest extends WorkflowTest {
+	@WorkflowTestTransformer
+	public static final ResponseTransformer sdncAdapterMockTransformer =
+		new SDNCAdapterNetworkTopologyMockTransformer();
+
+	@Rule
+	public final SDNCAdapterCallbackRule sdncAdapterCallbackRule =
+		new SDNCAdapterCallbackRule(processEngineRule);
+
+	/**
+	 * End-to-End flow - Unit test for UpdateNetworkInstanceInfra.bpmn
+	 *  - String input & String response
+	 */
+
+	@Test
+	//@Ignore 
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/GenericGetService.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_Success1() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("            Success1 - UpdateNetworkInstanceInfra flow Started!       ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");  //
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		MockPutNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", 200, "UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		System.out.println("----------------------------------------------------------");
+		System.out.println("- got workflow response -");
+		System.out.println("----------------------------------------------------------");
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_CompleteMsoProcessRequest"));
+
+		String workflowResp = BPMNUtil.getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "WorkflowResponse");
+		Assert.assertNotNull(workflowResp);
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("     Success1 - UpdateNetworkInstanceInfra flow Completed      ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+	@Test
+	//@Ignore 
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_Success2() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("            Success2 - UpdateNetworkInstanceInfra flow Started!      ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		MockPutNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", 200, "UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables2();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("true", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_CompleteMsoProcessRequest"));
+
+	    String completeMsoProcessRequest =
+	    		"<aetgt:MsoCompletionRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\""  + '\n'
+	    	  + "                            xmlns:ns=\"http://org.openecomp/mso/request/types/v1\""  + '\n'
+	    	  + "                            xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">"  + '\n'
+	    	  + "   <request-info>"  + '\n'
+	    	  + "      <request-id>testRequestId</request-id>"  + '\n'
+	    	  + "      <action>UPDATE</action>"  + '\n'
+	    	  + "      <source>VID</source>"  + '\n'
+	    	  + "   </request-info>"  + '\n'
+	    	  + "   <aetgt:mso-bpel-name>BPMN Network action: UPDATE</aetgt:mso-bpel-name>" + '\n'
+	    	  + "</aetgt:MsoCompletionRequest>";
+
+	    Assert.assertEquals(completeMsoProcessRequest, getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_CompleteMsoProcessRequest"));
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("     Success2 - UpdateNetworkInstanceInfra flow Completed     ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_MissingNetworkId() throws Exception {
+
+		System.out.println("--------------------------------------------------------------------");
+		System.out.println("     Missing networkId - UpdateNetworkInstanceInfra flow Started!   ");
+		System.out.println("--------------------------------------------------------------------");
+
+		// setup simulators
+
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesMissingNetworkId();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+	    
+	    String falloutHandlerActual = getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest");	
+	    String falloutHandlerExpected = 
+"<aetgt:FalloutHandlerRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + "\n" +
+"					                             xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + "\n" +
+"					                             xmlns:wfsch=\"http://org.openecomp/mso/workflow/schema/v1\">" + "\n" +
+"					   <request-info xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + "\n" +
+"					      <request-id>88f65519-9a38-4c4b-8445-9eb4a5a5af56</request-id>" + "\n" +
+"					      <action>UPDATE</action>" + "\n" +
+"					      <source>VID</source>" + "\n" +
+"					   </request-info>" + "\n" +
+"						<aetgt:WorkflowException xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\">" + "\n" +
+"							<aetgt:ErrorMessage>Variable 'network-id' value/element is missing.</aetgt:ErrorMessage>" + "\n" +
+"							<aetgt:ErrorCode>2500</aetgt:ErrorCode>" + "\n" +
+"						</aetgt:WorkflowException>" + "\n" +
+"					</aetgt:FalloutHandlerRequest>"; 
+	    		
+		assertEquals("Response", falloutHandlerExpected, falloutHandlerActual);
+
+		System.out.println("------------------------------------------------------------------");
+		System.out.println("    Missing networkId - UpdateNetworkInstanceInfra flow Completed ");
+		System.out.println("------------------------------------------------------------------");
+
+	}
+
+	/* NOT NEEDED
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_SDNCRollback1() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("       SDNCRollback1 - UpdateNetworkInstanceInfra flow Started!       ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockAAIResponse_queryId_UpdateNetwork_404V2();            // failure in queryId in AAI
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesSDNCRollback();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("   SDNCRollback1 - UpdateNetworkInstanceInfra flow Completed   ");
+		System.out.println("----------------------------------------------------------");
+
+	} */
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_SDNCRollback_Scenario01() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("       SDNCRollback - UpdateNetworkInstanceInfra flow Started!       ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");          //
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml", 200);    // no 'payload' response from NetworkAdapter, version 2
+		//MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);     // let it fail (404) to see SDNC compensation
+		//MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);	 // let it fail (404) to see SDNC compensation
+		//MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariablesSDNCRollback();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("   SDNCRollback - UpdateNetworkInstanceInfra flow Completed   ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 			     "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_Network_SDNC_Rollback() throws Exception {
+
+		System.out.println("---------------------------------------------------------------");
+		System.out.println("    Network and SDNC Rollback - UpdateNetworkInstanceInfra flow Started!       ");
+		System.out.println("---------------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");          //
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		//MockAAIResponse_updateContrail_CreateNetwork_SuccessV2();  // designed to fail in AAI Update
+		//mockUpdateRequestDB(500, "Database/DBUpdateResponse.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("---------------------------------------------------------------------");
+		System.out.println(" Network and SCNC Rollback - UpdateNetworkInstanceInfra flow Completed   ");
+		System.out.println("---------------------------------------------------------------------");
+
+	}
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_Network_SDNC_Rollback_Failed() throws Exception {
+
+		System.out.println("---------------------------------------------------------------");
+		System.out.println("    Network and SDNC Rollback - UpdateNetworkInstanceInfra flow Started!       ");
+		System.out.println("---------------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");          //
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySim500Response.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		//MockAAIResponse_updateContrail_CreateNetwork_SuccessV2();  // designed to fail in AAI Update
+		//mockUpdateRequestDB(500, "Database/DBUpdateResponse.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("---------------------------------------------------------------------");
+		System.out.println(" Network and SCNC Rollback - UpdateNetworkInstanceInfra flow Completed   ");
+		System.out.println("---------------------------------------------------------------------");
+
+	}
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			                 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_SDNCRollback2() throws Exception {
+
+		System.out.println("----------------------------------------------------");
+		System.out.println("    SDNCRollback2 - UpdateNetworkInstanceInfra flow Started!    ");
+		System.out.println("----------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 500, "UpdateNetworkV2/updateNetworkResponse_500.xml");            // failure 500 in NetworkAdapter
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		//MockPutNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", 200, "UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("------------------------------------------------------------");
+		System.out.println(" SDNCRollback2 - UpdateNetworkInstanceInfra flow Completed      ");
+		System.out.println("------------------------------------------------------------");
+
+	}
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_SDNCRollback3() throws Exception {
+
+		System.out.println("----------------------------------------------------");
+		System.out.println("    SDNCRollback3 - UpdateNetworkInstanceInfra flow Started!    ");
+		System.out.println("----------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 400, "UpdateNetworkV2/updateNetworkResponse_400.xml");            // failure 400 in NetworkAdapter
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		//MockPutNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", 200, "UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("------------------------------------------------------------");
+		System.out.println(" SDNCRollback3 - UpdateNetworkInstanceInfra flow Completed      ");
+		System.out.println("------------------------------------------------------------");
+
+	}
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			 				 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_PONR() throws Exception {
+
+		System.out.println("--------------------------------------------------------------------");
+		System.out.println("    PONR (Point-of-no-Return) - UpdateNetworkInstanceInfra flow Started!       ");
+		System.out.println("--------------------------------------------------------------------");
+
+		// setup simulators
+
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>changeassign");          //
+		mockSDNCAdapterTopology("UpdateNetworkV2mock/sdncUpdateNetworkTopologySimResponse.xml", "SvcAction>rollback");
+		MockPutNetworkAdapter("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "updateNetworkRequest", 200, "UpdateNetworkV2/updateNetworkResponse_Success.xml");
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		MockGetNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", "UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("85f015d0-2e32-4c30-96d2-87a1a27f8017", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkVpnBinding("c980a6ef-3b88-49f0-9751-dbad8608d0a6", "UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml", 200);
+		MockGetNetworkPolicy("cee6d136-e378-4678-a024-2cd15f0ee0cg", "UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN1", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml", 200);
+		MockGetNetworkRouteTable("refFQDN2", "UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml", 200);
+		MockPutNetwork("49c86598-f766-46f8-84f8-8d1c1b10f9b4", 200, "UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml");
+		mockUpdateRequestDB(500, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables1();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_FalloutHandlerRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+	    String falloutHandlerRequest =
+	    		  "<aetgt:FalloutHandlerRequest xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\"" + '\n'
+				+ "					                             xmlns:ns=\"http://org.openecomp/mso/request/types/v1\"" + '\n'
+				+ "					                             xmlns:wfsch=\"http://org.openecomp/mso/workflow/schema/v1\">" + '\n'
+				+ "					   <request-info xmlns=\"http://org.openecomp/mso/infra/vnf-request/v1\">" + '\n'
+				+ "					      <request-id>testRequestId</request-id>" + '\n'
+				+ "					      <action>CREATE</action>" + '\n'
+				+ "					      <source>VID</source>" + '\n'
+				+ "					   </request-info>" + '\n'
+				+ "						<aetgt:WorkflowException xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\">" + '\n'
+				+ "							<aetgt:ErrorMessage> DB Update failed, code: 500</aetgt:ErrorMessage>" + '\n'
+				+ "							<aetgt:ErrorCode>2500</aetgt:ErrorCode>" + '\n'
+				+ "						</aetgt:WorkflowException>" + '\n'
+				+ "					</aetgt:FalloutHandlerRequest>";
+
+	    System.out.println("Display UPDNETI_FalloutHandlerRequest - " + getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+	    //Assert.assertEquals(falloutHandlerRequest, getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_FalloutHandlerRequest"));
+
+		System.out.println("--------------------------------------------------------------------");
+		System.out.println("    PONR (Point-of-no-Return) - UpdateNetworkInstanceInfra flow Completed!     ");
+		System.out.println("--------------------------------------------------------------------");
+
+
+	}
+
+	@Test
+	@Deployment(resources = {"process/UpdateNetworkInstanceInfra.bpmn",
+			                 "subprocess/GenericGetService.bpmn",
+			                 "subprocess/FalloutHandler.bpmn",
+	                         "subprocess/CompleteMsoProcess.bpmn",
+	                         "subprocess/SDNCAdapterV1.bpmn"})
+
+	public void shouldInvokeServiceUpdateNetworkInstanceInfra_sdncFailure() throws Exception {
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("        SNDC Failure - UpdateNetworkInstanceInfra flow Started!      ");
+		System.out.println("----------------------------------------------------------");
+
+		// setup simulators
+
+		//MockSDNCAdapterBadAsynchronousResponse();                // 404
+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 500, "");             // 500
+		MockGetCloudRegion("RDM2WAGPLCP", 200, "CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml");
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		MockNodeQueryServiceInstanceById("f70e927b-6087-4974-9ef8-c5e4d5847ca4", "UpdateNetworkV2/updateNetwork_queryInstance_Success.xml");
+
+		Map<String, String> variables = setupVariables2();
+		WorkflowResponse workflowResponse = executeAsyncWorkflow(processEngineRule, "UpdateNetworkInstanceInfra", variables);
+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
+
+	    assertEquals("false", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_Success"));
+	    Assert.assertNotNull("UPDNETI_CompleteMsoProcessRequest - ", getVariable(processEngineRule, "UpdateNetworkInstanceInfra", "UPDNETI_CompleteMsoProcessRequest"));
+
+		System.out.println("----------------------------------------------------------");
+		System.out.println("     SNDC Failure - UpdateNetworkInstanceInfra flow Completed ");
+		System.out.println("----------------------------------------------------------");
+
+	}
+
+	// *****************
+	// Utility Section
+	// *****************
+
+	// Success Scenario
+	private Map<String, String> setupVariables1() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("bpmnRequest", getCreateNetworkRequest1());
+		variables.put("mso-request-id", "testRequestId");
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "CREATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequest1() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_1\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"backoutOnFailure\": true, " + '\n' +
+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+	}
+
+	// Success Scenario 2
+	private Map<String, String> setupVariables2() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("bpmnRequest", getCreateNetworkRequest2());
+		variables.put("mso-request-id", "testRequestId");
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "UPDATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequest2() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"myOwn_Network\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"backoutOnFailure\": true, " + '\n' +
+				"          \"serviceId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\", " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+
+	}
+
+	/* Active Scenario
+	private Map<String, String> setupVariablesActive() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("mso-request-id", "testRequestId");
+		variables.put("bpmnRequest", getCreateNetworkRequestActive());
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "UPDATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequestActive() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_2\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+		return request;
+
+	} */
+
+	// Missing Name Scenario
+	private Map<String, String> setupVariablesMissingNetworkId() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("mso-request-id", "88f65519-9a38-4c4b-8445-9eb4a5a5af56");
+		variables.put("bpmnRequest", getCreateNetworkRequestNetworkId());
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "UPDATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		//variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4"); // missing, ok
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequestNetworkId() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+			return request;
+
+	}
+
+	// SDNC Rollback Scenario
+	private Map<String, String> setupVariablesSDNCRollback() {
+		Map<String, String> variables = new HashMap<String, String>();
+		variables.put("mso-request-id", "testRequestId");
+		variables.put("bpmnRequest", getCreateNetworkRequestSDNCRollback());
+		variables.put("requestId", "testRequestId");
+		variables.put("isBaseVfModule", "true");
+		variables.put("recipeTimeout", "0");
+		variables.put("requestAction", "UPDATE");
+		variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+		variables.put("vnfId", "");
+		variables.put("vfModuleId", "");
+		variables.put("volumeGroupId", "");
+		variables.put("networkId", "49c86598-f766-46f8-84f8-8d1c1b10f9b4");
+		variables.put("serviceType", "vMOG");
+		variables.put("vfModuleType", "");
+		variables.put("networkType", "modelName");
+		return variables;
+
+	}
+
+	public String getCreateNetworkRequestSDNCRollback() {
+
+		String request =
+				"{ \"requestDetails\": { " + '\n' +
+				"      \"modelInfo\": { " + '\n' +
+				"         \"modelType\": \"modelType\", " + '\n' +
+				"         \"modelId\": \"modelId\", " + '\n' +
+				"         \"modelNameVersionId\": \"modelNameVersionId\", " + '\n' +
+				"         \"modelName\": \"CONTRAIL_EXTERNAL\", " + '\n' +
+				"         \"modelVersion\": \"1\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"cloudConfiguration\": { " + '\n' +
+				"          \"lcpCloudRegionId\": \"RDM2WAGPLCP\", " + '\n' +
+				"          \"tenantId\": \"88a6ca3ee0394ade9403f075db23167e\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestInfo\": { " + '\n' +
+				"          \"instanceName\": \"MNS-25180-L-01-dmz_direct_net_3\", " + '\n' +
+				"          \"source\": \"VID\", " + '\n' +
+				"          \"callbackUrl\": \"\", " + '\n' +
+				"          \"suppressRollback\": \"true\" ," + '\n' +
+				"          \"productFamilyId\": \"a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb\" " + '\n' +
+				"      }, " + '\n' +
+				"      \"requestParameters\": { " + '\n' +
+				"          \"userParams\": [] " + '\n' +
+				"      }	" + '\n' +
+			    " } " + '\n' +
+			    "}";
+
+
+		return request;
+	}
+
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleInfraTest.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleInfraTest.java
new file mode 100644
index 0000000..cadca4c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleInfraTest.java
@@ -0,0 +1,144 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutVfModuleIdNoResponse;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseSDNCAdapter.mockSDNCAdapter;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockVNFPut;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit test cases for UpdateVfModule.bpmn
+ */
+public class UpdateVfModuleInfraTest extends WorkflowTest {
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public UpdateVfModuleInfraTest() throws IOException {
+		callbacks.put("changeassign", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyChangeAssignCallback.xml"));
+		callbacks.put("query", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyQueryCallback.xml"));
+		callbacks.put("activate", FileUtil.readResourceFile(
+			"__files/VfModularity/SDNCTopologyActivateCallback.xml"));
+		callbacks.put("vnfUpdate", FileUtil.readResourceFile(
+			"__files/VfModularity/VNFAdapterRestUpdateCallback.xml"));
+	}
+	
+	/**
+	 * Sunny day scenario.
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	
+	@Deployment(resources = {
+		"process/UpdateVfModuleInfra.bpmn",
+		"subprocess/DoUpdateVfModule.bpmn",
+		"subprocess/PrepareUpdateAAIVfModule.bpmn",
+		"subprocess/ConfirmVolumeGroupTenant.bpmn",
+		"subprocess/SDNCAdapterV1.bpmn",
+		"subprocess/VnfAdapterRestV1.bpmn",
+		"subprocess/UpdateAAIGenericVnf.bpmn",
+		"subprocess/UpdateAAIVfModule.bpmn",
+		"subprocess/CompleteMsoProcess.bpmn",
+		"subprocess/FalloutHandler.bpmn"
+		})
+	public void sunnyDay() throws Exception {
+				
+		logStart();
+		
+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
+		MockPutVfModuleIdNoResponse("skask", "PCRF", "supercool");
+		MockGetGenericVnfByIdWithPriority("skask", "supercool", 200, "VfModularity/VfModule-supercool.xml", 1);
+		mockSDNCAdapter("/SDNCAdapter", "SvcInstanceId><", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockSDNCAdapter("/SDNCAdapter", "vnf-type>STMTN", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockSDNCAdapter("/SDNCAdapter", "SvcAction>query", 200, "VfModularity/StandardSDNCSynchResponse.xml");
+		mockVNFPut("skask", "/supercool", 202);
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		String updaetVfModuleRequest =
+			FileUtil.readResourceFile("__files/InfrastructureFlows/UpdateVfModule_VID_request.json");
+		
+		Map<String, Object> variables = setupVariablesSunnyDayVID();
+		
+		
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVfModuleInfra",
+			"v1", businessKey, updaetVfModuleRequest, variables);
+		
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+		
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectSDNCCallbacks(callbacks, "changeassign, query");
+		injectVNFRestCallbacks(callbacks, "vnfUpdate");
+		injectSDNCCallbacks(callbacks, "activate");
+		
+		// TODO add appropriate assertions
+
+		waitForProcessEnd(businessKey, 10000);
+		checkVariable(businessKey, "UpdateVfModuleInfraSuccessIndicator", true);
+		
+		logEnd();
+	}
+	
+	// Active Scenario
+	private Map<String, Object> setupVariablesSunnyDayVID() {
+				Map<String, Object> variables = new HashMap<String, Object>();
+				//try {
+				//	variables.put("bpmnRequest", FileUtil.readResourceFile("__files/CreateVfModule_VID_request.json"));
+				//}
+				//catch (Exception e) {
+					
+				//}
+				//variables.put("mso-request-id", "testRequestId");
+				variables.put("requestId", "testRequestId");		
+				variables.put("isBaseVfModule", false);
+				variables.put("isDebugLogEnabled", "true");
+				variables.put("recipeTimeout", "0");		
+				variables.put("requestAction", "UPDATE_VF_MODULE");
+				variables.put("serviceInstanceId", "f70e927b-6087-4974-9ef8-c5e4d5847ca4");
+				variables.put("vnfId", "skask");
+				variables.put("vnfType", "vSAMP12");
+				variables.put("vfModuleId", "supercool");
+				variables.put("volumeGroupId", "");			
+				variables.put("serviceType", "MOG");	
+				variables.put("vfModuleType", "");			
+				return variables;
+				
+			}
+	
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleVolumeInfraV1Test.java b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleVolumeInfraV1Test.java
new file mode 100644
index 0000000..34c0af4
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/java/org/openecomp/mso/bpmn/infrastructure/UpdateVfModuleVolumeInfraV1Test.java
@@ -0,0 +1,141 @@
+/*- 
+ * ============LICENSE_START======================================================= 
+ * OPENECOMP - MSO 
+ * ================================================================================ 
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. 
+ * ================================================================================ 
+ * Licensed under the Apache License, Version 2.0 (the "License"); 
+ * you may not use this file except in compliance with the License. 
+ * You may obtain a copy of the License at 
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0 
+ * 
+ * Unless required by applicable law or agreed to in writing, software 
+ * distributed under the License is distributed on an "AS IS" BASIS, 
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
+ * See the License for the specific language governing permissions and 
+ * limitations under the License. 
+ * ============LICENSE_END========================================================= 
+ */ 
+
+package org.openecomp.mso.bpmn.infrastructure;
+
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVfModuleId;
+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetVolumeGroupById;
+import static org.openecomp.mso.bpmn.mock.StubResponseDatabase.mockUpdateRequestDB;
+import static org.openecomp.mso.bpmn.mock.StubResponseVNFAdapter.mockPutVNFVolumeGroup;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.camunda.bpm.engine.test.Deployment;
+import org.junit.Test;
+import org.openecomp.mso.bpmn.common.WorkflowTest;
+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
+import org.openecomp.mso.bpmn.mock.FileUtil;
+
+/**
+ * Unit test cases for UpdateVfModuleVolume.bpmn
+ */
+public class UpdateVfModuleVolumeInfraV1Test extends WorkflowTest {
+	
+	private final CallbackSet callbacks = new CallbackSet();
+
+	public UpdateVfModuleVolumeInfraV1Test() throws IOException {
+		callbacks.put("volumeGroupUpdate", FileUtil.readResourceFile(
+			"__files/VfModularity/VNFAdapterRestVolumeGroupCallback.xml"));
+	}
+
+	/**
+	 * Happy path scenario.
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	@Deployment(resources = {
+		"process/UpdateVfModuleVolumeInfraV1.bpmn",
+		"subprocess/VnfAdapterRestV1.bpmn",
+		"subprocess/CompleteMsoProcess.bpmn",
+		"subprocess/FalloutHandler.bpmn"
+		})
+	public void happyPath() throws Exception {
+
+		logStart();
+		
+		MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
+		MockGetVolumeGroupById("mdt1", "78987", "UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");
+		MockGetVfModuleId("9e48f6ea-f786-46de-800a-d480e5ccc846", "6a1dc898-b590-47b9-bbf0-34424a7a2ec3/", "UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml", 200);
+		mockPutVNFVolumeGroup("78987", 202);
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		String updaetVfModuleVolRequest =
+			FileUtil.readResourceFile("__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("volumeGroupId", "78987");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVfModuleVolumeInfraV1",	"v1", businessKey, updaetVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupUpdate");
+		
+		waitForProcessEnd(businessKey, 10000);
+		checkVariable(businessKey, "UpdateVfModuleVolumeSuccessIndicator", true);
+		
+		logEnd();
+	}
+	
+	/**
+	 * VF Module Personal model id does not match request model invariant id
+	 * @throws Exception
+	 */
+	@Test
+	//@Ignore
+	@Deployment(resources = {
+		"process/UpdateVfModuleVolumeInfraV1.bpmn",
+		"subprocess/VnfAdapterRestV1.bpmn",
+		"subprocess/CompleteMsoProcess.bpmn",
+		"subprocess/FalloutHandler.bpmn"
+		})
+	public void testPersonaModelIdNotMatch() throws Exception {
+
+		logStart();
+		
+		MockGetVolumeGroupById("mdt1", "78987", "UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml");
+		MockGetGenericVnfById("/TEST-VNF-ID-0123", "CreateVfModuleVolumeInfraV1/GenericVnf.xml", 200);
+		MockGetVfModuleId("9e48f6ea-f786-46de-800a-d480e5ccc846", "6a1dc898-b590-47b9-bbf0-34424a7a2ec3/", "UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml", 200);
+		mockPutVNFVolumeGroup("78987", 202);
+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
+		
+		String businessKey = UUID.randomUUID().toString();
+		String updaetVfModuleVolRequest =
+			FileUtil.readResourceFile("__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json");
+		
+		Map<String, Object> testVariables = new HashMap<String, Object>();
+		testVariables.put("requestId", "TEST-REQUEST-ID-0123");
+		testVariables.put("serviceInstanceId", "test-service-instance-id");
+		testVariables.put("volumeGroupId", "78987");
+		testVariables.put("vnfId", "TEST-VNF-ID-0123");
+		TestAsyncResponse asyncResponse = invokeAsyncProcess("UpdateVfModuleVolumeInfraV1",	"v1", businessKey, updaetVfModuleVolRequest, testVariables);
+		WorkflowResponse response = receiveResponse(businessKey, asyncResponse, 10000);
+
+		String responseBody = response.getResponse();
+		System.out.println("Workflow (Synch) Response:\n" + responseBody);
+		
+		injectVNFRestCallbacks(callbacks, "volumeGroupUpdate");
+		
+		waitForProcessEnd(businessKey, 10000);
+		checkVariable(businessKey, "UpdateVfModuleVolumeSuccessIndicator", true);
+		
+		logEnd();
+	}	
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml
new file mode 100644
index 0000000..90c668c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/cloudRegion25_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <cloud-owner>att-aic</cloud-owner>
+         <cloud-region-id>RDM2WAGPLCP</cloud-region-id>
+         <cloud-region-version>2.5</cloud-region-version>
+         <complex-name>RDM2WAGPLCP</complex-name>
+       </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml
new file mode 100644
index 0000000..9b651f2
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/cloudRegion30_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <cloud-owner>att-aic</cloud-owner>
+         <cloud-region-id>RDM2WAGPLCP</cloud-region-id>
+         <cloud-region-version>3.0</cloud-region-version>
+         <complex-name>RDM2WAGPLCP</complex-name>
+       </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_400.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_400.xml
new file mode 100644
index 0000000..a5640b2
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_400.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<createNetworkError>
+<messageId>680bd458-5ec1-4a16-b77c-509022e53450</messageId><category>INTERNAL</category>
+<message>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</message>
+<rolledBack>true</rolledBack>
+</createNetworkError>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_500.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_500.xml
new file mode 100644
index 0000000..c67e980
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_500.xml
@@ -0,0 +1,78 @@
+<html>
+	<head>
+		<title>JBoss Web/7.2.2.Final-redhat-1 - JBWEB000064: Error report
+		</title>
+		<style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
+				H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
+				H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
+				BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}
+				B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
+				P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
+				{color : black;}A.name {color : black;}HR {color : #525D76;} -->
+		</style>
+	</head>
+	<body>
+		<h1>JBWEB000065: HTTP Status 500 - java.lang.NullPointerException</h1>
+		<HR size="1" noshade="noshade">
+			<p>
+				<b>JBWEB000309: type</b>
+				JBWEB000066: Exception report
+			</p>
+			<p>
+				<b>JBWEB000068: message</b>
+				<u>java.lang.NullPointerException</u>
+			</p>
+			<p>
+				<b>JBWEB000069: description</b>
+				<u>JBWEB000145: The server encountered an internal error that
+					prevented it from fulfilling this request.</u>
+			</p>
+			<p>
+				<b>JBWEB000070: exception</b>
+				<pre>org.jboss.resteasy.spi.UnhandledException:
+					java.lang.NullPointerException
+					org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:365)
+					org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:233)
+					org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:209)
+					org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:557)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
+					org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
+					javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
+					org.openecomp.mso.logger.LogFilter.doFilter(LogFilter.java:35)
+				</pre>
+			</p>
+			<p>
+				<b>JBWEB000071: root cause</b>
+				<pre>java.lang.NullPointerException
+					org.openecomp.mso.adapters.network.NetworkAdapterRest$CreateNetworkVolumesTask.run(NetworkAdapterRest.java:128)
+					org.openecomp.mso.adapters.network.NetworkAdapterRest.createNetwork(NetworkAdapterRest.java:64)
+					sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+					sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+					sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+					java.lang.reflect.Method.invoke(Method.java:606)
+					org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
+					org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)
+					org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)
+					org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)
+					org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
+					org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
+					javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
+					org.openecomp.mso.logger.LogFilter.doFilter(LogFilter.java:35)
+				</pre>
+			</p>
+			<p>
+				<b>JBWEB000072: note</b>
+				<u>JBWEB000073: The full stack trace of the root cause is available
+					in the JBoss Web/7.2.2.Final-redhat-1 logs.</u>
+			</p>
+			<HR size="1" noshade="noshade">
+				<h3>JBoss Web/7.2.2.Final-redhat-1</h3>
+	</body>
+</html>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_Success.xml
new file mode 100644
index 0000000..b40bd07
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetworkResponse_Success.xml
@@ -0,0 +1,24 @@
+<ns2:createNetworkResponse xmlns:ns2="http://org.openecomp.mso/network"
+                                    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+   <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+   <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+   <subnetIdMap>
+      <entry>
+         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
+         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
+      </entry>
+   </subnetIdMap>
+   <rollback>
+      <cloudId>RDM2WAGPLCP</cloudId>
+      <msoRequest>
+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
+         <serviceInstanceId/>
+      </msoRequest>
+      <networkCreated>true</networkCreated>
+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+      <networkType>CONTRAIL_EXTERNAL</networkType>
+      <networkUpdated>false</networkUpdated>
+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+   </rollback>
+</ns2:createNetworkResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryInstance_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryInstance_Success.xml
new file mode 100644
index 0000000..ca5145c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryInstance_Success.xml
@@ -0,0 +1,4 @@
+<result-data>
+  <resource-type>service-instance</resource-type>
+  <resource-link>https://aai-conexus-e2e.test.com:8443/aai/v8/business/customers/customer/8310000058863/service-subscriptions/service-subscription/vMOG/service-instances/service-instance/f70e927b-6087-4974-9ef8-c5e4d5847ca4</resource-link>
+</result-data>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName2_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName2_AAIResponse_Success.xml
new file mode 100644
index 0000000..d6f7737
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName2_AAIResponse_Success.xml
@@ -0,0 +1,62 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4_3</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-create</orchestration-status>
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-create</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNameActive_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNameActive_AAIResponse_Success.xml
new file mode 100644
index 0000000..03b3781
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNameActive_AAIResponse_Success.xml
@@ -0,0 +1,74 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_2</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>active</orchestration-status>
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>active</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+  	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+	  	 <segmentation-assignments>
+	  		<segmentation-id>413</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>         
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>            
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName_AAIResponse_404.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName_AAIResponse_404.xml
new file mode 100644
index 0000000..5cda12d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName_AAIResponse_404.xml
@@ -0,0 +1,19 @@
+<rest:RESTFault xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                errorType="transport">
+   <rest:errorCode>404</rest:errorCode>
+   <rest:message>HTTP method: GET Not Found </rest:message>
+   <rest:messageDetails>&lt;Fault&gt;
+    &lt;requestError&gt;
+        &lt;serviceException&gt;
+            &lt;messageId&gt;SVC3001&lt;/messageId&gt;
+            &lt;text&gt;Resource not found for %1 using id %2 (msg=%3) (ec=%4)&lt;/text&gt;
+            &lt;variables&gt;
+                &lt;variable&gt;GETl3Networks&lt;/variable&gt;
+                &lt;variable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/&gt;
+                &lt;variable&gt;Node Not Found:No Node of type l3Network found for properties: (network-id = null)&lt;/variable&gt;
+                &lt;variable&gt;ERR.5.4.6114&lt;/variable&gt;
+            &lt;/variables&gt;
+        &lt;/serviceException&gt;
+    &lt;/requestError&gt;
+&lt;/Fault&gt;</rest:messageDetails>
+</rest:RESTFault>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml
new file mode 100644
index 0000000..4eadb10
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryName_AAIResponse_Success.xml
@@ -0,0 +1,62 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-create</orchestration-status>
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-create</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_404.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_404.xml
new file mode 100644
index 0000000..5cda12d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_404.xml
@@ -0,0 +1,19 @@
+<rest:RESTFault xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                errorType="transport">
+   <rest:errorCode>404</rest:errorCode>
+   <rest:message>HTTP method: GET Not Found </rest:message>
+   <rest:messageDetails>&lt;Fault&gt;
+    &lt;requestError&gt;
+        &lt;serviceException&gt;
+            &lt;messageId&gt;SVC3001&lt;/messageId&gt;
+            &lt;text&gt;Resource not found for %1 using id %2 (msg=%3) (ec=%4)&lt;/text&gt;
+            &lt;variables&gt;
+                &lt;variable&gt;GETl3Networks&lt;/variable&gt;
+                &lt;variable xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/&gt;
+                &lt;variable&gt;Node Not Found:No Node of type l3Network found for properties: (network-id = null)&lt;/variable&gt;
+                &lt;variable&gt;ERR.5.4.6114&lt;/variable&gt;
+            &lt;/variables&gt;
+        &lt;/serviceException&gt;
+    &lt;/requestError&gt;
+&lt;/Fault&gt;</rest:messageDetails>
+</rest:RESTFault>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
new file mode 100644
index 0000000..e06d27e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-create</orchestration-status>
+   		 <physical-network-name>networkName</physical-network-name>
+   		 <is-provider-network>false</is-provider-network>
+   		 <is-shared-network>true</is-shared-network>
+   	 	 <is-external-network>false</is-external-network>         
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-create</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+   	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+	  	 <segmentation-assignments>
+	  		<segmentation-id>413</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>         
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+				<related-to>network-policy</related-to>
+				<related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>
+				<relationship-data>
+					<relationship-key>network-policy.network-policy-id</relationship-key>
+					<relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>
+				</relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>			
+         </relationship-list>
+</l3-network>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml
new file mode 100644
index 0000000..599c34f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkId_AAIResponse_Success.xml
@@ -0,0 +1,95 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-create</orchestration-status>
+   		 <physical-network-name>networkName</physical-network-name>
+   		 <is-provider-network>false</is-provider-network>
+   		 <is-shared-network>true</is-shared-network>
+   		 <is-external-network>false</is-external-network>         
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-create</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+   	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+	  	 <segmentation-assignments>
+	  		<segmentation-id>413</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>         
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+				<related-to>network-policy</related-to>
+				<related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>
+				<relationship-data>
+					<relationship-key>network-policy.network-policy-id</relationship-key>
+					<relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>
+				</relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+	  		   <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>			   
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+	  		   <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>			   
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>									
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml
new file mode 100644
index 0000000..686ac16
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkPolicy_AAIResponse_Success.xml
@@ -0,0 +1,21 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <network-policy xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-policy-id>9a7b327d9-287aa00-82c4b0-105757</network-policy-id>
+         <network-policy-fqdn>GN_EVPN_Test</network-policy-fqdn>
+         <heat-stack-id>13979:105757</heat-stack-id>
+         <resource-version>13979:105757</resource-version>
+      </network-policy>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
new file mode 100644
index 0000000..b01e469
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <route-table-references xmlns="http://org.openecomp.aai.inventory/v8">
+         <route-table-reference-id>5938baec-03ca-2bd5-a3f1-d54x123e253a</route-table-reference-id>
+         <route-table-reference-fqdn>refFQDN1</route-table-reference-fqdn>
+         <resource-version>12345</resource-version>
+      </route-table-references>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
new file mode 100644
index 0000000..a19f941
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <route-table-references xmlns="http://org.openecomp.aai.inventory/v8">
+         <route-table-reference-id>5938baec-03ca-2bd5-a3f1-d54x123e253a</route-table-reference-id>
+         <route-table-reference-fqdn>refFQDN2</route-table-reference-fqdn>
+         <resource-version>12345</resource-version>
+      </route-table-references>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml
new file mode 100644
index 0000000..c35faef
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_queryVpnBinding_AAIResponse_Success.xml
@@ -0,0 +1,46 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <vpn-binding xmlns="http://org.openecomp.aai.inventory/v8">
+         <vpn-id>9a7b327d9-287aa00-82c4b0-105757</vpn-id>
+         <vpn-name>GN_EVPN_Test</vpn-name>
+         <global-route-target>13979:105757</global-route-target>
+         <relationship-list>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/l3-networks/l3-network/689ec39e-c5fc-4462-8db2-4f760763ad28/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>689ec39e-c5fc-4462-8db2-4f760763ad28</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/l3-networks/l3-network/1a49396b-19b3-40a4-8792-aa2fbd0f0704/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>1a49396b-19b3-40a4-8792-aa2fbd0f0704</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/l3-networks/l3-network/774f3329-3c83-4771-86c7-9e6207cd50fd/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>774f3329-3c83-4771-86c7-9e6207cd50fd</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </vpn-binding>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml
new file mode 100644
index 0000000..eedbda9
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateNetworkV2/createNetwork_updateContrail_AAIResponse_Success.xml
@@ -0,0 +1,11 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Content-Length" value="0"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:551-132672"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_createServiceInstance_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_createServiceInstance_AAIResponse_Success.xml
new file mode 100644
index 0000000..eedbda9
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_createServiceInstance_AAIResponse_Success.xml
@@ -0,0 +1,11 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Content-Length" value="0"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:551-132672"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_queryGlobalCustomerId_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_queryGlobalCustomerId_AAIResponse_Success.xml
new file mode 100644
index 0000000..be820b8
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_queryGlobalCustomerId_AAIResponse_Success.xml
@@ -0,0 +1,62 @@
+<rest:RESTResponse
+	xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+	statusCode="200">
+	<rest:headers>
+		<rest:header name="Transfer-Encoding" value="chunked" />
+		<rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT" />
+		<rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC" />
+		<rest:header name="X-AAI-TXID"
+			value="mtcnjv9aaas03-20160310-00:01:18:502-132671" />
+		<rest:header name="Content-Type" value="application/xml" />
+		<rest:header name="Server" value="Apache-Coyote/1.1" />
+		<rest:header name="Cache-Control" value="private" />
+	</rest:headers>
+	<rest:payload contentType="text/xml">
+		<customer xmlns="http://org.openecomp.aai.inventory/v8">
+			<global-customer-id>8310000058863</global-customer-id>
+			<subscriber-name>Mobility</subscriber-name>
+			<subscriber-type>INFRA</subscriber-type>
+			<resource-version>1452288058</resource-version>
+			<service-subscriptions>
+				<service-subscription>
+					<service-type>vMOG</service-type>
+					<resource-version>1452288058</resource-version>
+					<service-instances>
+						<service-instance>
+							<service-instance-id>f70e927b-6087-4974-9ef8-c5e4d5847ca4</service-instance-id>
+							<persona-model-id>gg0e927b-6087-5574-9ef8-c5e4d5847db5</persona-model-id>
+							<persona-model-version>V1.0</persona-model-version>
+							<service-instance-name>vMOG-AKRON-1234</service-instance-name>
+							<resource-version>1462561835</resource-version>
+							<relationship-list />
+							<metadata />
+						</service-instance>
+					</service-instances>
+					<relationship-list>
+						<relationship>
+							<related-to>tenant</related-to>
+							<related-link>https://aai-conexus-e2e.test.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/396d61752cf04c3b8ca2afcb4ee049e9/</related-link>
+							<relationship-data>
+								<relationship-key>tenant.tenant-id</relationship-key>
+								<relationship-value>396d61752cf04c3b8ca2afcb4ee049e9</relationship-value>
+							</relationship-data>
+							<relationship-data>
+								<relationship-key>cloud-region.cloud-owner</relationship-key>
+								<relationship-value>att-aic</relationship-value>
+							</relationship-data>
+							<relationship-data>
+								<relationship-key>cloud-region.cloud-region-id</relationship-key>
+								<relationship-value>AAIAIC25</relationship-value>
+							</relationship-data>
+							<related-to-property>
+								<property-key>tenant.tenant-name</property-key>
+								<property-value>vMOG-AKRON-PROD</property-value>
+							</related-to-property>
+						</relationship>		
+					</relationship-list>					
+				</service-subscription>
+			</service-subscriptions>
+			<relationship-list />
+		</customer>
+	</rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml
new file mode 100644
index 0000000..1ede444
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleCallbackException.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<volumeGroupException>    
+	<messageId>{{MESSAGE-ID}}</messageId>
+	<category>INTERNAL</category>
+	<message>Exception during create VF Create VF Module: Unable to determine specific VF Module Type: Nimbus_LU2_PXMC_Svc/PXMC_09_20_2016_v2 3::Pxmc09202016V2..pxmc_base.yaml..module-2 with version = 3.0</message>    
+	<rolledBack>true</rolledBack>
+</volumeGroupException>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml
new file mode 100644
index 0000000..a421355
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeCallbackResponse.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<createVolumeGroupResponse>
+    <messageId>{{MESSAGE-ID}}</messageId>
+    <volumeGroupCreated>true</volumeGroupCreated>
+    <volumeGroupId>d485ecee-957c-4a0a-8b95-27a22b90103f</volumeGroupId>
+    <volumeGroupOutputs>
+        <entry>
+            <key>mmsc_vol_1</key>
+            <value>a73e0fe9-1ce8-49c2-8fef-e2788605be29</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_2</key>
+            <value>37b6455a-5ea8-463a-89e3-0efeaf7b7c6d</value>
+        </entry>
+        <entry>
+            <key>nemsfe_vol_1</key>
+            <value>b7ff1c21-d138-49a3-bf13-4cfd91efaf48</value>
+        </entry>
+        <entry>
+            <key>nemsbe_vol_1</key>
+            <value>a5988471-cd42-44d8-b078-64f2f13d3d4c</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_5</key>
+            <value>f7b91c1e-ab8c-413a-a850-ba80a246c7e0</value>
+        </entry>
+        <entry>
+            <key>nemsfe_vol_2</key>
+            <value>957ea3f3-2d4a-4707-bfd2-ba66f42037c2</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_3</key>
+            <value>de6fccfe-d61a-48b0-b03b-87bf1bf749b3</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_4</key>
+            <value>76162310-2c38-4c32-981c-5c2880190077</value>
+        </entry>
+    </volumeGroupOutputs>
+    <volumeGroupRollback>
+        <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+        <messageId>e585e4f4-9452-437a-b294-45a2d6d3b7a3</messageId>
+        <msoRequest>
+            <requestId>c30b9453-4b68-4c2e-aacf-58a5ba648bf5</requestId>
+            <serviceInstanceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceInstanceId>
+        </msoRequest>
+        <tenantId>1bbab536a19b4756926e7d0ec1eb543c</tenantId>
+        <volumeGroupCreated>true</volumeGroupCreated>
+        <volumeGroupId>78987</volumeGroupId>
+        <volumeGroupStackId>ZRDM1MMSC01_base_vol/7f74e5e1-5fc1-4593-ac7e-cc9899a106ef</volumeGroupStackId>
+    </volumeGroupRollback>
+    <volumeGroupStackId>ZRDM1MMSC01_base_vol/7f74e5e1-5fc1-4593-ac7e-cc9899a106ef</volumeGroupStackId>
+</createVolumeGroupResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeRequest.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeRequest.xml
new file mode 100644
index 0000000..4584266
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/CreateVfModuleVolumeRequest.xml
@@ -0,0 +1,24 @@
+<volume-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<request-info>
+		<test-data-only>123abc</test-data-only> <!-- don't remove this tag. Its used for junit test -->
+		<request-id>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</request-id>
+		<action>CREATE_VF_MODULE_VOL</action>
+		<source>SoapUI-bns-create-base-vol-1001-1</source>
+	</request-info>
+	<volume-inputs>
+		<vnf-type>Test/vSAMP12</vnf-type>
+		<vf-module-model-name>vSAMP12::base::module-0</vf-module-model-name>
+		<backout-on-failure/>
+		<asdc-service-model-version/>
+		<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		<aic-cloud-region>MDTWNJ21</aic-cloud-region>
+		<tenant-id>897deadc2b954a6bac6d3c197fb3525e</tenant-id>
+		<volume-group-name>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volume-group-name>
+		<volume-group-id/>
+	</volume-inputs>
+	<volume-params>
+		<param name="param1">value1</param>"
+		<param name="param2">value2</param>"
+		<param name="param3">value3</param>"
+	</volume-params>	
+</volume-request>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/GenericVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/GenericVnf.xml
new file mode 100644
index 0000000..aea1a46
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/GenericVnf.xml
@@ -0,0 +1,38 @@
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v8">
+	<vnf-id>TEST-VNF-ID-0123</vnf-id>
+	<vnf-name>STMTN5MMSC20</vnf-name>
+	<vnf-type>pcrf-capacity</vnf-type>
+	<service-id>SDN-MOBILITY</service-id>
+	<equipment-role>vPCRF</equipment-role>
+	<orchestration-status>pending-create</orchestration-status>
+	<in-maint>false</in-maint>
+	<is-closed-loop-disabled>false</is-closed-loop-disabled>
+	<persona-model-id>introvert</persona-model-id>
+	<persona-model-version>2.0</persona-model-version>
+	<resource-version>0000020</resource-version>
+	<vf-modules>
+		<vf-module>
+			<vf-module-id>lukewarm</vf-module-id>
+			<vf-module-name>PCRF::module-0-0</vf-module-name>
+			<persona-model-id>introvert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>true</is-base-vf-module>
+			<heat-stack-id>fastburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000074</resource-version>
+		</vf-module>
+		<vf-module>
+			<vf-module-id>supercool</vf-module-id>
+			<vf-module-name>PCRF::module-1-0</vf-module-name>
+			<persona-model-id>extrovert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>false</is-base-vf-module>
+			<heat-stack-id>slowburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000075</resource-version>
+		</vf-module>
+	</vf-modules>
+	<relationship-list/>
+	<l-interfaces/>
+	<lag-interfaces/>
+</generic-vnf>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml
new file mode 100644
index 0000000..6ab9416
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/RollbackVfModuleVolumeCallbackResponse.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<rollbackVolumeGroupResponse>
+  <messageId>{{MESSAGE-ID}}</messageId>
+  <volumeGroupRolledback>true</volumeGroupRolledback>
+</rollbackVolumeGroupResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json
new file mode 100644
index 0000000..91048ec
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request.json
@@ -0,0 +1,65 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1",
+			"modelCustomizationId": "ee6478e5-ea33-3346-ac12-ab121484a3fe"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mdt1",
+			"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+		},
+		"requestInfo": {
+			"instanceName": "MSOTESTVOL101a-vSAMP12_base_vol_module-0",
+			"source": "VID",
+			"suppressRollback": false
+		},
+		"relatedInstanceList": [
+			{
+				"relatedInstance": {
+					"instanceId": "{service-instance-id}",
+					"modelInfo": {
+						"modelType": "service",
+						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test",
+						"modelVersion": "2.0"
+					}
+				}
+			}, {
+				"relatedInstance": {
+					"instanceId": "{vnf-instance-id}",
+					"modelInfo": {
+						"modelType": "vnf",
+						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "vSAMP12",
+						"modelVersion": "1",
+						"modelCustomizationName": "vSAMP12"
+					}
+				}
+			}
+		],
+		"requestParameters": {
+			"serviceId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+			"userParams": [
+				{"name": "vnfName", "value": "STMTN5MMSC20" },
+				{"name": "vnfName2", "value": "US1117MTSNJVBR0246" },
+				{"name": "vnfNmInformation", "value": "" },
+				{"name": "vnfType", "value": "pcrf-capacity" },
+				{"name": "vnfId", "value": "skask" },
+				{"name": "vnfStackId", "value": "slowburn" },
+				{"name": "vnfStatus", "value": "created" },
+				{"name": "aicCloudRegion", "value": "MDTWNJ21" },
+				{"name": "availabilityZone", "value": "slcp3-esx-az01" },
+				{"name": "oamNetworkName", "value": "VLAN-OAM-1323" },
+				{"name": "vmName", "value": "slcp34246vbc246ceb" },
+				{"name": "ipagNetworkId", "value": "970cd2b9-7f09-4a12-af47-182ea38ba1f0" },
+				{"name": "vpeNetworkId", "value": "545cc2c3-1930-4100-b534-5d82d0e12bb6" }
+			]
+		}
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json
new file mode 100644
index 0000000..72e4183
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_VID_request_noreqparm.json
@@ -0,0 +1,45 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mdt1",
+			"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+		},
+		"requestInfo": {
+			"instanceName": "MSOTESTVOL101a-vSAMP12_base_vol_module-0",
+			"source": "VID",
+			"suppressRollback": false
+		},
+		"relatedInstanceList": [
+			{
+				"relatedInstance": {
+					"instanceId": "{service-instance-id}",
+					"modelInfo": {
+						"modelType": "service",
+						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "{parent service model name}",
+						"modelVersion": "1"
+					}
+				}
+			}, {
+				"relatedInstance": {
+					"instanceId": "{vnf-instance-id}",
+					"modelInfo": {
+						"modelType": "vnf",
+						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test/vSAMP12",
+						"modelVersion": "1"
+					}
+				}
+			}
+		]
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..02b43ff
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,49 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+				   statusCode="200">
+   <rest:headers>
+	  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+	  <rest:header name="X-CSI-MethodName" value="UNKNOWN"/>
+	  <rest:header name="Content-Length" value="968"/>
+	  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211465"/>
+	  <rest:header name="X-CSI-UniqueTransactionId"
+				   value="AjscCsiRestful28795@mtsnjv9aaas237d4a4d21-e60a-495f-935f-cc225dc3c847"/>
+	  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+	  <rest:header name="X-TransactionID" value="3a19f95d-d63e-4a8e-8b9c-6563895628aa"/>
+	  <rest:header name="X-CSI-ServiceName" value="UNKNOWN"/>
+	  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+	  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+	  <rest:header name="X-FromAppId" value="MSO"/>
+	  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+	  <rest:header name="X-CSI-ConversationId"
+				   value="ajscUser~CNG-CSI~c0a2bb44-2167-4e85-ad6a-483a24c0823a"/>
+	  <rest:header name="volume-group-name" value="simpleCinderVolume_201604071"/>
+	  <rest:header name="X-CSI-MessageId" value="f6d6eed4-456e-4033-be04-b17582902dc2"/>
+	  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:592-73255"/>
+	  <rest:header name="Content-Type" value="application/xml"/>
+	  <rest:header name="Accept" value="application/xml"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+	  <volume-group xmlns="http://org.openecomp.aai.inventory/v8">
+		 <volume-group-id>simpleCinderVolume_201604071</volume-group-id>
+		 <volume-group-name>simpleCinderVolume_201604071</volume-group-name>
+		 <heat-stack-id>simpleCinderVolume_201604071</heat-stack-id>
+		 <vnf-type>simple_cinder_master</vnf-type>
+		 <orchestration-status>Pending</orchestration-status>
+		 <resource-version>1460134360</resource-version>
+		 <relationship-list>
+			<relationship>
+			   <related-to>tenant</related-to>
+			   <related-link>https://aai-ext1.test.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>
+			   <relationship-data>
+				  <relationship-key>tenant.tenant-id</relationship-key>
+				  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>
+			   </relationship-data>
+			   <related-to-property>
+				  <property-key>tenant.tenant-name</property-key>
+				  <property-value>MSOTest1</property-value>
+			   </related-to-property>
+			</relationship>
+		 </relationship-list>
+	  </volume-group>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..1574310
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,24 @@
+	<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+					   statusCode="200">
+	   <rest:headers>
+		  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+		  <rest:header name="X-CSI-MethodName" value="helloWorld-GetMethod(Logical)"/>
+		  <rest:header name="Content-Length" value="0"/>
+		  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211467"/>
+		  <rest:header name="X-CSI-UniqueTransactionId"
+					   value="AjscCsiRestful28795@mtsnjv9aaas23d44059bc-ef96-4af8-a28b-98044e08d7af"/>
+		  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+		  <rest:header name="X-TransactionID" value="3749995c-266b-4025-a0c4-4ce6983efc66"/>
+		  <rest:header name="X-CSI-ServiceName" value="helloWorld"/>
+		  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+		  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+		  <rest:header name="X-FromAppId" value="MSO"/>
+		  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+		  <rest:header name="X-CSI-ConversationId"
+					   value="ajscUser~CNG-CSI~bbd0e78f-d4e7-41be-b9ad-4a6767fa660a"/>
+		  <rest:header name="X-CSI-MessageId" value="6ccfeb13-56da-4836-bfbd-5a42dee60939"/>
+		  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:629-73256"/>
+		  <rest:header name="Content-Type" value="application/xml"/>
+		  <rest:header name="Accept" value="application/xml"/>
+	   </rest:headers>
+	</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_404.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_404.xml
new file mode 100644
index 0000000..96e906f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_404.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<volume-group xmlns="http://org.openecomp.aai.inventory/v7">
+	<volume-group-id>94f0f72f-4be1-49ed-8410-702396797163</volume-group-id>
+	<volume-group-name>MSOTESTVOL103H-vSAMP12_base_vol_module-0</volume-group-name>
+	<heat-stack-id/>
+	<vnf-type>Test/vSAMP12</vnf-type>
+	<orchestration-status>Pending</orchestration-status>
+	<resource-version>1469203133</resource-version>
+	<relationship-list>
+		<relationship>
+			<related-to>tenant</related-to>
+			<related-link>https://aai-ext1.test.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mtn6/tenants/tenant/e444c311b27a45dc9522f2370d70f90f/</related-link>
+			<relationship-data>
+				<relationship-key>tenant.tenant-id</relationship-key>
+				<relationship-value>e444c311b27a45dc9522f2370d70f90f</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>mtn6</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>tenant.tenant-name</property-key>
+				<property-value>MSOCustomer1</property-value>
+			</related-to-property>
+		</relationship>
+	</relationship-list>
+</volume-group>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..5e8913f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,49 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+				   statusCode="200">
+   <rest:headers>
+	  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+	  <rest:header name="X-CSI-MethodName" value="UNKNOWN"/>
+	  <rest:header name="Content-Length" value="968"/>
+	  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211465"/>
+	  <rest:header name="X-CSI-UniqueTransactionId"
+				   value="AjscCsiRestful28795@mtsnjv9aaas237d4a4d21-e60a-495f-935f-cc225dc3c847"/>
+	  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+	  <rest:header name="X-TransactionID" value="3a19f95d-d63e-4a8e-8b9c-6563895628aa"/>
+	  <rest:header name="X-CSI-ServiceName" value="UNKNOWN"/>
+	  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+	  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+	  <rest:header name="X-FromAppId" value="MSO"/>
+	  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+	  <rest:header name="X-CSI-ConversationId"
+				   value="ajscUser~CNG-CSI~c0a2bb44-2167-4e85-ad6a-483a24c0823a"/>
+	  <rest:header name="volume-group-name" value="simpleCinderVolume_201604071"/>
+	  <rest:header name="X-CSI-MessageId" value="f6d6eed4-456e-4033-be04-b17582902dc2"/>
+	  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:592-73255"/>
+	  <rest:header name="Content-Type" value="application/xml"/>
+	  <rest:header name="Accept" value="application/xml"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+	  <volume-group xmlns="http://org.openecomp.aai.inventory/v8">
+		 <volume-group-id>8424bb3c-c3e7-4553-9662-469649ed9379</volume-group-id>
+		 <volume-group-name>MSOTESTVOL103W-vSAMP12_base_vol_module-0</volume-group-name>
+		 <heat-stack-id/>
+		 <vnf-type>simple_cinder_master</vnf-type>
+		 <orchestration-status>Pending</orchestration-status>
+		 <resource-version>1460134360</resource-version>
+		 <relationship-list>
+			<relationship>
+			   <related-to>tenant</related-to>
+			   <related-link>https://aai-ext1.test.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>
+			   <relationship-data>
+				  <relationship-key>tenant.tenant-id</relationship-key>
+				  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>
+			   </relationship-data>
+			   <related-to-property>
+				  <property-key>tenant.tenant-name</property-key>
+				  <property-value>MSOTest1</property-value>
+			   </related-to-property>
+			</relationship>
+		 </relationship-list>
+	  </volume-group>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..1574310
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,24 @@
+	<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+					   statusCode="200">
+	   <rest:headers>
+		  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+		  <rest:header name="X-CSI-MethodName" value="helloWorld-GetMethod(Logical)"/>
+		  <rest:header name="Content-Length" value="0"/>
+		  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211467"/>
+		  <rest:header name="X-CSI-UniqueTransactionId"
+					   value="AjscCsiRestful28795@mtsnjv9aaas23d44059bc-ef96-4af8-a28b-98044e08d7af"/>
+		  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+		  <rest:header name="X-TransactionID" value="3749995c-266b-4025-a0c4-4ce6983efc66"/>
+		  <rest:header name="X-CSI-ServiceName" value="helloWorld"/>
+		  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+		  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+		  <rest:header name="X-FromAppId" value="MSO"/>
+		  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+		  <rest:header name="X-CSI-ConversationId"
+					   value="ajscUser~CNG-CSI~bbd0e78f-d4e7-41be-b9ad-4a6767fa660a"/>
+		  <rest:header name="X-CSI-MessageId" value="6ccfeb13-56da-4836-bfbd-5a42dee60939"/>
+		  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:629-73256"/>
+		  <rest:header name="Content-Type" value="application/xml"/>
+		  <rest:header name="Accept" value="application/xml"/>
+	   </rest:headers>
+	</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/getSIUrlById.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/getSIUrlById.xml
new file mode 100644
index 0000000..416689e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/CreateVfModuleVolumeInfraV1/getSIUrlById.xml
@@ -0,0 +1,6 @@
+    <search-results xmlns="http://org.openecomp.aai.inventory">
+         <result-data>
+            <resource-type>service-instance</resource-type>
+            <resource-link>https://aai-ext1.test.com:8443/aai/v7/business/customers/customer/SDN-ETHERNET-INTERNET/service-subscriptions/service-subscription/123456789/service-instances/service-instance/MIS%252F1604%252F0026%252FSW_INTERNET</resource-link>
+         </result-data>
+      </search-results>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Database/DBAdapter.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Database/DBAdapter.xml
new file mode 100644
index 0000000..5a36d74
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Database/DBAdapter.xml
@@ -0,0 +1 @@
+<DbTag>Notified</DbTag>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Database/DBUpdateResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Database/DBUpdateResponse.xml
new file mode 100644
index 0000000..7c30f75
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/Database/DBUpdateResponse.xml
@@ -0,0 +1,4 @@
+
+
+<ns2:updateRequestResponse xmlns:ns2="http://org.openecomp.mso/requestsdb"
+                           xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"/>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteGenericVNFV1/sdncAdapterResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteGenericVNFV1/sdncAdapterResponse.xml
new file mode 100644
index 0000000..8056f05
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteGenericVNFV1/sdncAdapterResponse.xml
@@ -0,0 +1,7 @@
+<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">
+	<sdncadapterworkflow:response-data>
+		<tag0:RequestData xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
+		&lt;output xmlns="org:openecomp:sdnctl:vnf"&gt;&lt;svc-request-id&gt;1660b8da-0a94-442d-8ed5-ea079e3c67c8&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;vnf-information&gt;&lt;vnf-id&gt;8925b50d-de67-44c1-b984-e7ce7b0f4dae&lt;/vnf-id&gt;&lt;/vnf-information&gt;&lt;service-information&gt;&lt;service-type&gt;a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb&lt;/service-type&gt;&lt;service-instance-id&gt;8925b50d-de67-44c1-b984-e7ce7b0f4dae&lt;/service-instance-id&gt;&lt;subscriber-name&gt;notsurewecare&lt;/subscriber-name&gt;&lt;/service-information&gt;&lt;/output&gt;
+		</tag0:RequestData>
+	</sdncadapterworkflow:response-data>
+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/cloudRegion25_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/cloudRegion25_AAIResponse_Success.xml
new file mode 100644
index 0000000..90c668c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/cloudRegion25_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <cloud-owner>att-aic</cloud-owner>
+         <cloud-region-id>RDM2WAGPLCP</cloud-region-id>
+         <cloud-region-version>2.5</cloud-region-version>
+         <complex-name>RDM2WAGPLCP</complex-name>
+       </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml
new file mode 100644
index 0000000..9b651f2
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/cloudRegion30_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <cloud-owner>att-aic</cloud-owner>
+         <cloud-region-id>RDM2WAGPLCP</cloud-region-id>
+         <cloud-region-version>3.0</cloud-region-version>
+         <complex-name>RDM2WAGPLCP</complex-name>
+       </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteAAIResponse_Failure500_RESTFault.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteAAIResponse_Failure500_RESTFault.xml
new file mode 100644
index 0000000..4ce7048
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteAAIResponse_Failure500_RESTFault.xml
@@ -0,0 +1,19 @@
+<rest:RESTFault xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                errorType="transport">
+   <rest:errorCode>500</rest:errorCode>
+   <rest:message>HTTP method: GET Internal Server Error </rest:message>
+   <rest:messageDetails>&lt;Fault&gt;
+    &lt;requestError&gt;
+        &lt;serviceException&gt;
+            &lt;messageId&gt;SVC3002&lt;/messageId&gt;
+            &lt;text&gt;Error writing output performing %1 on %2 (msg=%3) (ec=%4)&lt;/text&gt;
+            &lt;variables&gt;
+                &lt;variable&gt;PUT customer&lt;/variable&gt;
+                &lt;variable&gt;SubName32&lt;/variable&gt;
+                &lt;variable&gt;Unexpected error reading/updating database:Adding this property for key [service-instance-id] and value [12312442454112] violates a uniqueness constraint [service-instance-id]&lt;/variable&gt;
+                &lt;variable&gt;ERR.5.4.5105&lt;/variable&gt;
+            &lt;/variables&gt;
+        &lt;/serviceException&gt;
+    &lt;/requestError&gt;
+&lt;/Fault&gt;</rest:messageDetails>
+</rest:RESTFault>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml
new file mode 100644
index 0000000..a740caa
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteNetworkAAIResponse_Success.xml
@@ -0,0 +1,61 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>
+         <network-name>HSL_direct_net_2</network-name>
+         <network-type>CONTRAIL_BASIC</network-type>
+         <network-role>HSL_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <orchestration-status>active</orchestration-status>
+         <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>
+         <subnets>
+            <subnet>
+               <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>
+               <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>
+               <gateway-address>172.16.34.1</gateway-address>
+               <network-start-address>172.16.34.0</network-start-address>
+               <cidr-mask>28</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>active</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+         <relationship-list>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>
+               </relationship-data>
+            </relationship>
+			<relationship>
+               <related-to>cloud-region</related-to>
+               <related-link>cloud-infrastructure/cloud-regions/cloud-region/att-aic/RDM2WAGPLCP/</related-link>
+               <relationship-data>
+                  <relationship-key>cloud-region.cloud-owner</relationship-key>
+                  <relationship-value>att-aic</relationship-value>
+               </relationship-data>
+               <relationship-data>
+                  <relationship-key>cloud-region.cloud-region-id</relationship-key>
+                  <relationship-value>RDM2WAGPLCP</relationship-value>
+               </relationship-data>						   
+            </relationship>			            
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteNetworkAAIResponse_withRelationship_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteNetworkAAIResponse_withRelationship_Success.xml
new file mode 100644
index 0000000..841cae0
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteNetworkV2/deleteNetworkAAIResponse_withRelationship_Success.xml
@@ -0,0 +1,73 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Sat,30 Jan 2016 20:09:24 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160130-20:09:24:814-165843"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>bdc5efe8-404a-409b-85f6-0dcc9eebae30</network-id>
+         <network-name>HSL_direct_net_2</network-name>
+         <network-type>CONTRAIL_BASIC</network-type>
+         <network-role>HSL_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <neutron-network-id>8bbd3edf-b835-4610-96a2-a5cafa029042</neutron-network-id>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <orchestration-status>active</orchestration-status>
+         <heat-stack-id>HSL_direct_net_2/57594a56-1c92-4a38-9caa-641c1fa3d4b6</heat-stack-id>
+         <subnets>
+            <subnet>
+               <subnet-id>ea5f2a2c-604f-47ff-a9c5-253ee4f0ef0a</subnet-id>
+               <neutron-subnet-id>5a77fdc2-7789-4649-a1b9-6eaf1db1813a</neutron-subnet-id>
+               <gateway-address>172.16.34.1</gateway-address>
+               <network-start-address>172.16.34.0</network-start-address>
+               <cidr-mask>28</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>active</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+         <relationship-list>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/e81d842d3e8b45c5a59f57cd76af3aaf/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>e81d842d3e8b45c5a59f57cd76af3aaf</relationship-value>
+               </relationship-data>
+            </relationship>
+			<relationship>
+				<related-to>vf-module</related-to>
+				<related-link>https://aai-app-e2e.ecomp.cci.com:8443/aai/v8/network/generic-vnfs/generic-vnf/105df7e5-0b3b-49f7-a837-4864b62827c4/vf-modules/vf-module/d9217058-95a0-49ee-b9a9-949259e89349/</related-link>
+				<relationship-data>
+				   <relationship-key>generic-vnf.vnf-id</relationship-key>
+				   <relationship-value>105df7e5-0b3b-49f7-a837-4864b62827c4</relationship-value>
+			    </relationship-data>
+			    <relationship-data>
+				   <relationship-key>vf-module.vf-module-id</relationship-key>
+				   <relationship-value>d9217058-95a0-49ee-b9a9-949259e89349</relationship-value>
+			    </relationship-data>
+		    </relationship>            
+			<relationship>
+       		   <related-to>generic-vnf</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/generic-vnfs/generic-vnf/45f822d9-73ca-4255-9844-7cef401bbf47/</related-link>
+               <relationship-data>
+                 <relationship-key>generic-vnf.vnf-id</relationship-key>
+                 <relationship-value>45f822d9-73ca-4255-9844-7cef401bbf47</relationship-value>
+               </relationship-data>
+               <related-to-property>
+                 <property-key>generic-vnf.vnf-name</property-key>
+                 <property-value>zrdm1scpx05</property-value>
+               </related-to-property>
+            </relationship>
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml
new file mode 100644
index 0000000..25aa45a
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/DeleteVfModuleVolumeCallbackResponse.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<deleteVolumeGroupResponse>
+	<messageId>{{MESSAGE-ID}}</messageId>
+	<volumeGroupDeleted>true</volumeGroupDeleted>
+</deleteVolumeGroupResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json
new file mode 100644
index 0000000..35ba121
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/deleteVfModuleVolume_VID_request_st.json
@@ -0,0 +1,17 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelInvariantId": "0b01b8c2-8416-11e6-ae22-56b6b6499611",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1.0"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "MDTWNJ21",
+			"tenantId": "fba1bd1e195a404cacb9ce17a9b2b421"
+		},
+		"requestInfo": {
+			"source": "VID"
+		}
+	}
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
new file mode 100644
index 0000000..fd10548
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DeleteVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
@@ -0,0 +1,42 @@
+<volume-group xmlns="http://org.openecomp.aai.inventory/v8">
+	<volume-group-id>78987</volume-group-id>
+	<volume-group-name>MSOTESTVOL102a-vSAMP12_base_vol_module-0</volume-group-name>
+	<heat-stack-id/>
+	<vnf-type>Test/vSAMP12</vnf-type>
+	<orchestration-status>Pending</orchestration-status>
+	<resource-version>0000020</resource-version>
+	<relationship-list>
+		<relationship>
+			<related-to>generic-vnf</related-to>
+			<related-link>https://aai-ext1.test.com:8443/aai/v8/network/generic-vnfs/generic-vnf/9e48f6ea-f786-46de-800a-d480e5ccc846/</related-link>
+			<relationship-data>
+				<relationship-key>generic-vnf.vnf-id</relationship-key>
+				<relationship-value>9e48f6ea-f786-46de-800a-d480e5ccc846</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>generic-vnf.vnf-name</property-key>
+				<property-value>MSOSTSAMP12-10601</property-value>
+			</related-to-property>
+		</relationship>
+		<relationship>
+			<related-to>tenant</related-to>
+			<related-link>https://aai-ext1.test.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>
+			<relationship-data>
+				<relationship-key>tenant.tenant-id</relationship-key>
+				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>mdt1</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>tenant.tenant-name</property-key>
+				<property-value>ECOMP_MDT1</property-value>
+			</related-to-property>
+		</relationship>
+	</relationship-list>
+</volume-group>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleRollback/GenericVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleRollback/GenericVnf.xml
new file mode 100644
index 0000000..50e4347
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleRollback/GenericVnf.xml
@@ -0,0 +1,26 @@
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v7">
+	<vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>
+	<vnf-name>STMTN5MMSC21</vnf-name>
+	<vnf-type>mmsc-capacity</vnf-type>
+	<service-id>SDN-MOBILITY</service-id>
+	<equipment-role>vMMSC</equipment-role>
+	<orchestration-status>pending-create</orchestration-status>
+	<in-maint>false</in-maint>
+	<is-closed-loop-disabled>false</is-closed-loop-disabled>
+	<resource-version>1508691</resource-version>
+	<vf-modules>
+		<vf-module>
+			<vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>
+			<vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>
+			<persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>
+			<persona-model-version>1.0</persona-model-version>
+			<is-base-vf-module>true</is-base-vf-module>
+			<heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>1508692</resource-version>
+		</vf-module>
+	</vf-modules>
+	<relationship-list/>
+	<l-interfaces/>
+	<lag-interfaces/>
+</generic-vnf>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleRollback/GenericVnfVfModule.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleRollback/GenericVnfVfModule.xml
new file mode 100644
index 0000000..f60260d
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleRollback/GenericVnfVfModule.xml
@@ -0,0 +1,26 @@
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v7">
+	<vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id>
+	<vnf-name>STMTN5MMSC21</vnf-name>
+	<vnf-type>mmsc-capacity</vnf-type>
+	<service-id>SDN-MOBILITY</service-id>
+	<equipment-role>vMMSC</equipment-role>
+	<orchestration-status>pending-create</orchestration-status>
+	<in-maint>false</in-maint>
+	<is-closed-loop-disabled>false</is-closed-loop-disabled>
+	<resource-version>0000021</resource-version>
+	<vf-modules>
+		<vf-module>
+			<vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id>
+			<vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name>
+			<persona-model-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</persona-model-id>
+			<persona-model-version>1.0</persona-model-version>
+			<is-base-vf-module>true</is-base-vf-module>
+			<heat-stack-id>FILLED-IN-BY-MSO</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000073</resource-version>
+		</vf-module>
+	</vf-modules>
+	<relationship-list/>
+	<l-interfaces/>
+	<lag-interfaces/>
+</generic-vnf>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml
new file mode 100644
index 0000000..a421355
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeCallbackResponse.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<createVolumeGroupResponse>
+    <messageId>{{MESSAGE-ID}}</messageId>
+    <volumeGroupCreated>true</volumeGroupCreated>
+    <volumeGroupId>d485ecee-957c-4a0a-8b95-27a22b90103f</volumeGroupId>
+    <volumeGroupOutputs>
+        <entry>
+            <key>mmsc_vol_1</key>
+            <value>a73e0fe9-1ce8-49c2-8fef-e2788605be29</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_2</key>
+            <value>37b6455a-5ea8-463a-89e3-0efeaf7b7c6d</value>
+        </entry>
+        <entry>
+            <key>nemsfe_vol_1</key>
+            <value>b7ff1c21-d138-49a3-bf13-4cfd91efaf48</value>
+        </entry>
+        <entry>
+            <key>nemsbe_vol_1</key>
+            <value>a5988471-cd42-44d8-b078-64f2f13d3d4c</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_5</key>
+            <value>f7b91c1e-ab8c-413a-a850-ba80a246c7e0</value>
+        </entry>
+        <entry>
+            <key>nemsfe_vol_2</key>
+            <value>957ea3f3-2d4a-4707-bfd2-ba66f42037c2</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_3</key>
+            <value>de6fccfe-d61a-48b0-b03b-87bf1bf749b3</value>
+        </entry>
+        <entry>
+            <key>mmsc_vol_4</key>
+            <value>76162310-2c38-4c32-981c-5c2880190077</value>
+        </entry>
+    </volumeGroupOutputs>
+    <volumeGroupRollback>
+        <cloudSiteId>RDM2WAGPLCP</cloudSiteId>
+        <messageId>e585e4f4-9452-437a-b294-45a2d6d3b7a3</messageId>
+        <msoRequest>
+            <requestId>c30b9453-4b68-4c2e-aacf-58a5ba648bf5</requestId>
+            <serviceInstanceId>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</serviceInstanceId>
+        </msoRequest>
+        <tenantId>1bbab536a19b4756926e7d0ec1eb543c</tenantId>
+        <volumeGroupCreated>true</volumeGroupCreated>
+        <volumeGroupId>78987</volumeGroupId>
+        <volumeGroupStackId>ZRDM1MMSC01_base_vol/7f74e5e1-5fc1-4593-ac7e-cc9899a106ef</volumeGroupStackId>
+    </volumeGroupRollback>
+    <volumeGroupStackId>ZRDM1MMSC01_base_vol/7f74e5e1-5fc1-4593-ac7e-cc9899a106ef</volumeGroupStackId>
+</createVolumeGroupResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml
new file mode 100644
index 0000000..803a847
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeNoRollbackRequest.xml
@@ -0,0 +1,24 @@
+<volume-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<request-info>
+		<test-data-only>123abc</test-data-only> <!-- don't remove this tag. Its used for junit test -->
+		<request-id>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</request-id>
+		<action>CREATE_VF_MODULE_VOL</action>
+		<source>SoapUI-bns-create-base-vol-1001-1</source>
+	</request-info>
+	<volume-inputs>
+		<vnf-type>Test/vSAMP12</vnf-type>
+		<vf-module-model-name>vSAMP12::base::module-0</vf-module-model-name>
+		<backout-on-failure>false</backout-on-failure>
+		<asdc-service-model-version/>
+		<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		<aic-cloud-region>MDTWNJ21</aic-cloud-region>
+		<tenant-id>897deadc2b954a6bac6d3c197fb3525e</tenant-id>
+		<volume-group-name>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volume-group-name>
+		<volume-group-id/>
+	</volume-inputs>
+	<volume-params>
+		<param name="param1">value1</param>"
+		<param name="param2">value2</param>"
+		<param name="param3">value3</param>"
+	</volume-params>	
+</volume-request>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml
new file mode 100644
index 0000000..e6ada9c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/CreateVfModuleVolumeRequest.xml
@@ -0,0 +1,24 @@
+<volume-request xmlns="http://org.openecomp/mso/infra/vnf-request/v1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+	<request-info>
+		<test-data-only>123abc</test-data-only> <!-- don't remove this tag. Its used for junit test -->
+		<request-id>d8d4fcfa-fd7e-4413-b19d-c95aa67291b8</request-id>
+		<action>CREATE_VF_MODULE_VOL</action>
+		<source>SoapUI-bns-create-base-vol-1001-1</source>
+	</request-info>
+	<volume-inputs>
+		<vnf-type>Test/vSAMP12</vnf-type>
+		<vf-module-model-name>vSAMP12::base::module-0</vf-module-model-name>
+		<backout-on-failure>true</backout-on-failure>
+		<asdc-service-model-version/>
+		<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+		<aic-cloud-region>MDTWNJ21</aic-cloud-region>
+		<tenant-id>897deadc2b954a6bac6d3c197fb3525e</tenant-id>
+		<volume-group-name>MSOTESTVOL101a-vSAMP12_base_vol_module-0</volume-group-name>
+		<volume-group-id/>
+	</volume-inputs>
+	<volume-params>
+		<param name="param1">value1</param>"
+		<param name="param2">value2</param>"
+		<param name="param3">value3</param>"
+	</volume-params>	
+</volume-request>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/GenericVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/GenericVnf.xml
new file mode 100644
index 0000000..aea1a46
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/GenericVnf.xml
@@ -0,0 +1,38 @@
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v8">
+	<vnf-id>TEST-VNF-ID-0123</vnf-id>
+	<vnf-name>STMTN5MMSC20</vnf-name>
+	<vnf-type>pcrf-capacity</vnf-type>
+	<service-id>SDN-MOBILITY</service-id>
+	<equipment-role>vPCRF</equipment-role>
+	<orchestration-status>pending-create</orchestration-status>
+	<in-maint>false</in-maint>
+	<is-closed-loop-disabled>false</is-closed-loop-disabled>
+	<persona-model-id>introvert</persona-model-id>
+	<persona-model-version>2.0</persona-model-version>
+	<resource-version>0000020</resource-version>
+	<vf-modules>
+		<vf-module>
+			<vf-module-id>lukewarm</vf-module-id>
+			<vf-module-name>PCRF::module-0-0</vf-module-name>
+			<persona-model-id>introvert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>true</is-base-vf-module>
+			<heat-stack-id>fastburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000074</resource-version>
+		</vf-module>
+		<vf-module>
+			<vf-module-id>supercool</vf-module-id>
+			<vf-module-name>PCRF::module-1-0</vf-module-name>
+			<persona-model-id>extrovert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>false</is-base-vf-module>
+			<heat-stack-id>slowburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000075</resource-version>
+		</vf-module>
+	</vf-modules>
+	<relationship-list/>
+	<l-interfaces/>
+	<lag-interfaces/>
+</generic-vnf>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml
new file mode 100644
index 0000000..6ab9416
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/RollbackVfModuleVolumeCallbackResponse.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<rollbackVolumeGroupResponse>
+  <messageId>{{MESSAGE-ID}}</messageId>
+  <volumeGroupRolledback>true</volumeGroupRolledback>
+</rollbackVolumeGroupResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json
new file mode 100644
index 0000000..5ff965f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_VID_request.json
@@ -0,0 +1,64 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mdt1",
+			"tenantId": "88a6ca3ee0394ade9403f075db23167e"
+		},
+		"requestInfo": {
+			"instanceName": "MSOTESTVOL103W-vSAMP12_base_vol_module-0",
+			"source": "VID",
+			"callbackUrl": "{do we support this???}"
+		},
+		"relatedInstanceList": [
+			{
+				"relatedInstance": {
+					"instanceId": "{service-instance-id}",
+					"modelInfo": {
+						"modelType": "service",
+						"modelId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "{parent service model name}",
+						"modelVersion": "1"
+					}
+				}
+			}, {
+				"relatedInstance": {
+					"instanceId": "{vnf-instance-id}",
+					"modelInfo": {
+						"modelType": "vnf",
+						"modelId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test/vSAMP12",
+						"modelVersion": "1"
+					}
+				}
+			}
+		],
+		"requestParameters": {
+			"backoutOnFailure": true,
+			"serviceId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+			"userParams": {
+				{"name": "vnfName", "value": "STMTN5MMSC20" },
+				{"name": "vnfName2", "value": "US1117MTSNJVBR0246" },
+				{"name": "vnfNmInformation", "value": "" },
+				{"name": "vnfType", "value": "pcrf-capacity" },
+				{"name": "vnfId", "value": "skask" },
+				{"name": "vnfStackId", "value": "slowburn" },
+				{"name": "vnfStatus", "value": "created" },
+				{"name": "aicCloudRegion", "value": "MDTWNJ21" },
+				{"name": "availabilityZone", "value": "slcp3-esx-az01" },
+				{"name": "oamNetworkName", "value": "VLAN-OAM-1323" },
+				{"name": "vmName", "value": "slcp34246vbc246ceb" },
+				{"name": "ipagNetworkId", "value": "970cd2b9-7f09-4a12-af47-182ea38ba1f0" },
+				{"name": "vpeNetworkId", "value": "545cc2c3-1930-4100-b534-5d82d0e12bb6" }
+			}
+		}
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..02b43ff
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_createVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,49 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+				   statusCode="200">
+   <rest:headers>
+	  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+	  <rest:header name="X-CSI-MethodName" value="UNKNOWN"/>
+	  <rest:header name="Content-Length" value="968"/>
+	  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211465"/>
+	  <rest:header name="X-CSI-UniqueTransactionId"
+				   value="AjscCsiRestful28795@mtsnjv9aaas237d4a4d21-e60a-495f-935f-cc225dc3c847"/>
+	  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+	  <rest:header name="X-TransactionID" value="3a19f95d-d63e-4a8e-8b9c-6563895628aa"/>
+	  <rest:header name="X-CSI-ServiceName" value="UNKNOWN"/>
+	  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+	  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+	  <rest:header name="X-FromAppId" value="MSO"/>
+	  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+	  <rest:header name="X-CSI-ConversationId"
+				   value="ajscUser~CNG-CSI~c0a2bb44-2167-4e85-ad6a-483a24c0823a"/>
+	  <rest:header name="volume-group-name" value="simpleCinderVolume_201604071"/>
+	  <rest:header name="X-CSI-MessageId" value="f6d6eed4-456e-4033-be04-b17582902dc2"/>
+	  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:592-73255"/>
+	  <rest:header name="Content-Type" value="application/xml"/>
+	  <rest:header name="Accept" value="application/xml"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+	  <volume-group xmlns="http://org.openecomp.aai.inventory/v8">
+		 <volume-group-id>simpleCinderVolume_201604071</volume-group-id>
+		 <volume-group-name>simpleCinderVolume_201604071</volume-group-name>
+		 <heat-stack-id>simpleCinderVolume_201604071</heat-stack-id>
+		 <vnf-type>simple_cinder_master</vnf-type>
+		 <orchestration-status>Pending</orchestration-status>
+		 <resource-version>1460134360</resource-version>
+		 <relationship-list>
+			<relationship>
+			   <related-to>tenant</related-to>
+			   <related-link>https://aai-ext1.test.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>
+			   <relationship-data>
+				  <relationship-key>tenant.tenant-id</relationship-key>
+				  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>
+			   </relationship-data>
+			   <related-to-property>
+				  <property-key>tenant.tenant-name</property-key>
+				  <property-value>MSOTest1</property-value>
+			   </related-to-property>
+			</relationship>
+		 </relationship-list>
+	  </volume-group>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..1574310
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_deleteVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,24 @@
+	<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+					   statusCode="200">
+	   <rest:headers>
+		  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+		  <rest:header name="X-CSI-MethodName" value="helloWorld-GetMethod(Logical)"/>
+		  <rest:header name="Content-Length" value="0"/>
+		  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211467"/>
+		  <rest:header name="X-CSI-UniqueTransactionId"
+					   value="AjscCsiRestful28795@mtsnjv9aaas23d44059bc-ef96-4af8-a28b-98044e08d7af"/>
+		  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+		  <rest:header name="X-TransactionID" value="3749995c-266b-4025-a0c4-4ce6983efc66"/>
+		  <rest:header name="X-CSI-ServiceName" value="helloWorld"/>
+		  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+		  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+		  <rest:header name="X-FromAppId" value="MSO"/>
+		  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+		  <rest:header name="X-CSI-ConversationId"
+					   value="ajscUser~CNG-CSI~bbd0e78f-d4e7-41be-b9ad-4a6767fa660a"/>
+		  <rest:header name="X-CSI-MessageId" value="6ccfeb13-56da-4836-bfbd-5a42dee60939"/>
+		  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:629-73256"/>
+		  <rest:header name="Content-Type" value="application/xml"/>
+		  <rest:header name="Accept" value="application/xml"/>
+	   </rest:headers>
+	</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..5e8913f
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_queryVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,49 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+				   statusCode="200">
+   <rest:headers>
+	  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+	  <rest:header name="X-CSI-MethodName" value="UNKNOWN"/>
+	  <rest:header name="Content-Length" value="968"/>
+	  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211465"/>
+	  <rest:header name="X-CSI-UniqueTransactionId"
+				   value="AjscCsiRestful28795@mtsnjv9aaas237d4a4d21-e60a-495f-935f-cc225dc3c847"/>
+	  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+	  <rest:header name="X-TransactionID" value="3a19f95d-d63e-4a8e-8b9c-6563895628aa"/>
+	  <rest:header name="X-CSI-ServiceName" value="UNKNOWN"/>
+	  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+	  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+	  <rest:header name="X-FromAppId" value="MSO"/>
+	  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+	  <rest:header name="X-CSI-ConversationId"
+				   value="ajscUser~CNG-CSI~c0a2bb44-2167-4e85-ad6a-483a24c0823a"/>
+	  <rest:header name="volume-group-name" value="simpleCinderVolume_201604071"/>
+	  <rest:header name="X-CSI-MessageId" value="f6d6eed4-456e-4033-be04-b17582902dc2"/>
+	  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:592-73255"/>
+	  <rest:header name="Content-Type" value="application/xml"/>
+	  <rest:header name="Accept" value="application/xml"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+	  <volume-group xmlns="http://org.openecomp.aai.inventory/v8">
+		 <volume-group-id>8424bb3c-c3e7-4553-9662-469649ed9379</volume-group-id>
+		 <volume-group-name>MSOTESTVOL103W-vSAMP12_base_vol_module-0</volume-group-name>
+		 <heat-stack-id/>
+		 <vnf-type>simple_cinder_master</vnf-type>
+		 <orchestration-status>Pending</orchestration-status>
+		 <resource-version>1460134360</resource-version>
+		 <relationship-list>
+			<relationship>
+			   <related-to>tenant</related-to>
+			   <related-link>https://aai-ext1.test.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/897deadc2b954a6bac6d3c197fb3525e/</related-link>
+			   <relationship-data>
+				  <relationship-key>tenant.tenant-id</relationship-key>
+				  <relationship-value>897deadc2b954a6bac6d3c197fb3525e</relationship-value>
+			   </relationship-data>
+			   <related-to-property>
+				  <property-key>tenant.tenant-name</property-key>
+				  <property-value>MSOTest1</property-value>
+			   </related-to-property>
+			</relationship>
+		 </relationship-list>
+	  </volume-group>
+   </rest:payload>
+</rest:RESTResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml
new file mode 100644
index 0000000..1574310
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/DoCreateVfModuleVolumeV1/createVfModuleVolume_updateVolumeName_AAIResponse_Success.xml
@@ -0,0 +1,24 @@
+	<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+					   statusCode="200">
+	   <rest:headers>
+		  <rest:header name="X-CSI-Internal-WriteableRequest" value="true"/>
+		  <rest:header name="X-CSI-MethodName" value="helloWorld-GetMethod(Logical)"/>
+		  <rest:header name="Content-Length" value="0"/>
+		  <rest:header name="breadcrumbId" value="ID-mtsnjv9aaas23-44965-1459957053425-0-211467"/>
+		  <rest:header name="X-CSI-UniqueTransactionId"
+					   value="AjscCsiRestful28795@mtsnjv9aaas23d44059bc-ef96-4af8-a28b-98044e08d7af"/>
+		  <rest:header name="User-Agent" value="Jakarta Commons-HttpClient/3.1"/>
+		  <rest:header name="X-TransactionID" value="3749995c-266b-4025-a0c4-4ce6983efc66"/>
+		  <rest:header name="X-CSI-ServiceName" value="helloWorld"/>
+		  <rest:header name="Server" value="Jetty(9.2.z-SNAPSHOT)"/>
+		  <rest:header name="Cache-Control" value="no-cache,no-store"/>
+		  <rest:header name="X-FromAppId" value="MSO"/>
+		  <rest:header name="Date" value="Fri,08 Apr 2016 16:53:04 GMT"/>
+		  <rest:header name="X-CSI-ConversationId"
+					   value="ajscUser~CNG-CSI~bbd0e78f-d4e7-41be-b9ad-4a6767fa660a"/>
+		  <rest:header name="X-CSI-MessageId" value="6ccfeb13-56da-4836-bfbd-5a42dee60939"/>
+		  <rest:header name="X-AAI-TXID" value="mtsnjv9aaas23-20160408-16:53:04:629-73256"/>
+		  <rest:header name="Content-Type" value="application/xml"/>
+		  <rest:header name="Accept" value="application/xml"/>
+	   </rest:headers>
+	</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml
new file mode 100644
index 0000000..a472996
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml
@@ -0,0 +1,23 @@
+<generic-vnfs xmlns="http://org.openecomp.aai.inventory/v3">
+         <generic-vnf>
+            <vnf-id>2f1cc940-455f-4ee2-9411-a7899cd4f124</vnf-id>
+            <vnf-name>testVnfName123</vnf-name>
+            <vnf-type>mmsc-capacity</vnf-type>
+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+            <equipment-role>vMMSC</equipment-role>
+            <orchestration-status>pending-create</orchestration-status>
+            <resource-version>testReVer123</resource-version>
+            <relationship-list>
+               <relationship>
+                  <related-to>nothing</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/c597ab81-fece-49f4-a4f5-710cebb13c29/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>c597ab81-fece-49f4-a4f5-710cebb13c29</relationship-value>
+                  </relationship-data>
+               </relationship>
+            </relationship-list>
+            <l-interfaces/>
+            <lag-interfaces/>
+         </generic-vnf>
+      </generic-vnfs>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml
new file mode 100644
index 0000000..8ba178c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml
@@ -0,0 +1,90 @@
+<generic-vnfs xmlns="http://org.openecomp.aai.inventory/v3">
+         <generic-vnf>
+            <vnf-id>2f1cc940-455f-4ee2-9411-a7899cd4f124</vnf-id>
+            <vnf-name>testVnfName123</vnf-name>
+            <vnf-type>mmsc-capacity</vnf-type>
+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+            <equipment-role>vMMSC</equipment-role>
+            <orchestration-status>pending-create</orchestration-status>
+            <relationship-list>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/c597ab81-fece-49f4-a4f5-710cebb13c29/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>c597ab81-fece-49f4-a4f5-710cebb13c29</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/53956c91-6e5e-49aa-88dd-535f57e66e70/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>53956c91-6e5e-49aa-88dd-535f57e66e70</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/44e0d9e0-9334-4ec6-9344-07a96dac629f/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>44e0d9e0-9334-4ec6-9344-07a96dac629f</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/ac49d99b-5daf-4624-9f8e-188b126ea166/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>ac49d99b-5daf-4624-9f8e-188b126ea166</relationship-value>
+                  </relationship-data>
+               </relationship>
+            </relationship-list>
+            <l-interfaces/>
+            <lag-interfaces/>
+         </generic-vnf>
+         <generic-vnf>
+            <vnf-id>802767b3-18a6-4432-96db-25522786aee0</vnf-id>
+            <vnf-name>ZRDM1MMSC03</vnf-name>
+            <vnf-type>mmsc-capacity</vnf-type>
+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+            <equipment-role>vMMSC</equipment-role>
+            <orchestration-status>pending-create</orchestration-status>
+            <relationship-list>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/c597ab81-fece-49f4-a4f5-710cebb13c29/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>c597ab81-fece-49f4-a4f5-710cebb13c29</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/53956c91-6e5e-49aa-88dd-535f57e66e70/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>53956c91-6e5e-49aa-88dd-535f57e66e70</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/44e0d9e0-9334-4ec6-9344-07a96dac629f/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>44e0d9e0-9334-4ec6-9344-07a96dac629f</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/ac49d99b-5daf-4624-9f8e-188b126ea166/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>ac49d99b-5daf-4624-9f8e-188b126ea166</relationship-value>
+                  </relationship-data>
+               </relationship>
+            </relationship-list>
+            <l-interfaces/>
+            <lag-interfaces/>
+         </generic-vnf>
+      </generic-vnfs>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml
new file mode 100644
index 0000000..8ba178c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml
@@ -0,0 +1,90 @@
+<generic-vnfs xmlns="http://org.openecomp.aai.inventory/v3">
+         <generic-vnf>
+            <vnf-id>2f1cc940-455f-4ee2-9411-a7899cd4f124</vnf-id>
+            <vnf-name>testVnfName123</vnf-name>
+            <vnf-type>mmsc-capacity</vnf-type>
+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+            <equipment-role>vMMSC</equipment-role>
+            <orchestration-status>pending-create</orchestration-status>
+            <relationship-list>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/c597ab81-fece-49f4-a4f5-710cebb13c29/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>c597ab81-fece-49f4-a4f5-710cebb13c29</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/53956c91-6e5e-49aa-88dd-535f57e66e70/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>53956c91-6e5e-49aa-88dd-535f57e66e70</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/44e0d9e0-9334-4ec6-9344-07a96dac629f/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>44e0d9e0-9334-4ec6-9344-07a96dac629f</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/ac49d99b-5daf-4624-9f8e-188b126ea166/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>ac49d99b-5daf-4624-9f8e-188b126ea166</relationship-value>
+                  </relationship-data>
+               </relationship>
+            </relationship-list>
+            <l-interfaces/>
+            <lag-interfaces/>
+         </generic-vnf>
+         <generic-vnf>
+            <vnf-id>802767b3-18a6-4432-96db-25522786aee0</vnf-id>
+            <vnf-name>ZRDM1MMSC03</vnf-name>
+            <vnf-type>mmsc-capacity</vnf-type>
+            <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+            <equipment-role>vMMSC</equipment-role>
+            <orchestration-status>pending-create</orchestration-status>
+            <relationship-list>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/c597ab81-fece-49f4-a4f5-710cebb13c29/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>c597ab81-fece-49f4-a4f5-710cebb13c29</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/53956c91-6e5e-49aa-88dd-535f57e66e70/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>53956c91-6e5e-49aa-88dd-535f57e66e70</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/44e0d9e0-9334-4ec6-9344-07a96dac629f/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>44e0d9e0-9334-4ec6-9344-07a96dac629f</relationship-value>
+                  </relationship-data>
+               </relationship>
+               <relationship>
+                  <related-to>l3-network</related-to>
+                  <related-link>https://aai-app-e2e.test.com:8443/aai/v3/network/l3-networks/l3-network/ac49d99b-5daf-4624-9f8e-188b126ea166/</related-link>
+                  <relationship-data>
+                     <relationship-key>l3-network.network-id</relationship-key>
+                     <relationship-value>ac49d99b-5daf-4624-9f8e-188b126ea166</relationship-value>
+                  </relationship-data>
+               </relationship>
+            </relationship-list>
+            <l-interfaces/>
+            <lag-interfaces/>
+         </generic-vnf>
+      </generic-vnfs>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml
new file mode 100644
index 0000000..416689e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml
@@ -0,0 +1,6 @@
+    <search-results xmlns="http://org.openecomp.aai.inventory">
+         <result-data>
+            <resource-type>service-instance</resource-type>
+            <resource-link>https://aai-ext1.test.com:8443/aai/v7/business/customers/customer/SDN-ETHERNET-INTERNET/service-subscriptions/service-subscription/123456789/service-instances/service-instance/MIS%252F1604%252F0026%252FSW_INTERNET</resource-link>
+         </result-data>
+      </search-results>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml
new file mode 100644
index 0000000..e377c704
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml
@@ -0,0 +1,30 @@
+<service-instance>
+               <service-instance-id>MIS/1604/0026/SW_INTERNET</service-instance-id>
+               <resource-version>123456789</resource-version>
+               <relationship-list>
+                  <relationship>
+                     <related-to>cvlan-tag</related-to>
+                     <related-link>https://aai-ext1.test.com:8443/aai/v2/network/vces/vce/832bace2-3fb0-49e0-a6a4-07c47223c535/port-groups/port-group/slcp1447vbc.ipag/cvlan-tags/cvlan-tag/2003/</related-link>
+                     <relationship-data>
+                        <relationship-key>cvlan-tag.cvlan-tag</relationship-key>
+                        <relationship-value>2003</relationship-value>
+                     </relationship-data>
+                     <relationship-data>
+                        <relationship-key>port-group.interface-id</relationship-key>
+                        <relationship-value>slcp1447vbc.ipag</relationship-value>
+                     </relationship-data>
+                     <relationship-data>
+                        <relationship-key>vce.vnf-id</relationship-key>
+                        <relationship-value>832bace2-3fb0-49e0-a6a4-07c47223c535</relationship-value>
+                     </relationship-data>
+                  </relationship>
+                  <relationship>
+                     <related-to>vce</related-to>
+					 <related-link>https://aai-ext1.test.com:8443/aai/v2/network/vces/vce/832bace2-3fb0-49e0-a6a4-07c47223c535/</related-link>
+                     <relationship-data>
+                        <relationship-key>vce.vnf-id</relationship-key>
+                        <relationship-value>832bace2-3fb0-49e0-a6a4-07c47223c535</relationship-value>
+                     </relationship-data>
+                  </relationship>
+               </relationship-list>
+            </service-instance>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json
new file mode 100644
index 0000000..2b9c287
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/CreateVnfInfraRequest.json
@@ -0,0 +1,38 @@
+{
+  "requestDetails": {
+      "modelInfo": {
+        "modelType": "vnf",
+         "modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+         "modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+         "modelName": "vSAMP12",
+         "modelVersion": "1.0",
+         "modelCustomizationName": "vSAMP12 1"
+      },
+      "cloudConfiguration": {
+          "lcpCloudRegionId": "mdt1",
+          "tenantId": "88a6ca3ee0394ade9403f075db23167e"
+      },
+      "requestInfo": {
+          "instanceName": "testVnfName123",
+          "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+          "source": "VID",
+          "suppressRollback": false
+      },
+      "relatedInstanceList": [
+         {
+            "relatedInstance": {
+               "instanceId": "{serviceInstanceId}",
+               "modelInfo": {
+                  "modelType": "service",
+                  "modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+                  "modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+                  "modelName": "{parent service model name}",
+                  "modelVersion": "1.0"
+               }
+            }
+         }
+      ],
+      "requestParameters": {
+      }
+  }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json
new file mode 100644
index 0000000..f90b967
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/DeleteVnfInfraRequestCascadeDelete.json
@@ -0,0 +1,39 @@
+{
+  "requestDetails": {
+      "modelInfo": {
+        "modelType": "vnf",
+         "modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+         "modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+         "modelName": "vSAMP12",
+         "modelVersion": "1.0",
+         "modelCustomizationName": "vSAMP12 1"
+      },
+      "cloudConfiguration": {
+          "lcpCloudRegionId": "mdt1",
+          "tenantId": "88a6ca3ee0394ade9403f075db23167e"
+      },
+      "requestInfo": {
+          "instanceName": "testVnfName123",
+          "productFamilyId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+          "source": "VID",
+          "suppressRollback": false
+      },
+      "relatedInstanceList": [
+         {
+            "relatedInstance": {
+               "instanceId": "{serviceInstanceId}",
+               "modelInfo": {
+                  "modelType": "service",
+                  "modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+                  "modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+                  "modelName": "{parent service model name}",
+                  "modelVersion": "1.0"
+               }
+            }
+         }
+      ],
+      "requestParameters": {
+      	"cascadeDelete": true
+      }
+  }
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json
new file mode 100644
index 0000000..e3556e7
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/InfrastructureFlows/UpdateVfModule_VID_request.json
@@ -0,0 +1,51 @@
+{
+"requestDetails": {
+"modelInfo": {
+"modelType": "vfModule",
+"modelInvariantId": "introvert",
+"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+"modelName": "STMTN5MMSC21-MMSC::model-1-0",
+"modelVersion": "1",
+"modelCustomizationId": "MODEL12345"
+},
+"cloudConfiguration": {
+"lcpCloudRegionId": "MDTWNJ21",
+"tenantId": "fba1bd1e195a404cacb9ce17a9b2b421"
+},
+"requestInfo": {
+"instanceName": "PCRF::module-0",
+"instanceId": "supercool",
+"source": "VID",
+"suppressRollback": true
+},
+"relatedInstanceList": [
+{
+"relatedInstance": {
+"instanceId": "123456",
+"modelInfo": {
+"modelType": "service",
+"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+"modelName": "SERVICE_MODEL_NAME",
+"modelVersion": "1.0"
+}
+}
+},
+{
+"relatedInstance": {
+"instanceId": "skask",
+"modelInfo": {
+"modelType": "vnf",
+"modelInvariantId": "skask",
+"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+"modelName": "vSAMP12",
+"modelVersion": "1.0",
+"modelCustomizationName": "vSAMP12 1"
+}
+}
+}
+],
+"requestParameters": {
+"userParams": {}
+}
+}
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_400.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_400.xml
new file mode 100644
index 0000000..a5640b2
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_400.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<createNetworkError>
+<messageId>680bd458-5ec1-4a16-b77c-509022e53450</messageId><category>INTERNAL</category>
+<message>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</message>
+<rolledBack>true</rolledBack>
+</createNetworkError>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_500.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_500.xml
new file mode 100644
index 0000000..c67e980
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_500.xml
@@ -0,0 +1,78 @@
+<html>
+	<head>
+		<title>JBoss Web/7.2.2.Final-redhat-1 - JBWEB000064: Error report
+		</title>
+		<style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;}
+				H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;}
+				H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;}
+				BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;}
+				B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;}
+				P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A
+				{color : black;}A.name {color : black;}HR {color : #525D76;} -->
+		</style>
+	</head>
+	<body>
+		<h1>JBWEB000065: HTTP Status 500 - java.lang.NullPointerException</h1>
+		<HR size="1" noshade="noshade">
+			<p>
+				<b>JBWEB000309: type</b>
+				JBWEB000066: Exception report
+			</p>
+			<p>
+				<b>JBWEB000068: message</b>
+				<u>java.lang.NullPointerException</u>
+			</p>
+			<p>
+				<b>JBWEB000069: description</b>
+				<u>JBWEB000145: The server encountered an internal error that
+					prevented it from fulfilling this request.</u>
+			</p>
+			<p>
+				<b>JBWEB000070: exception</b>
+				<pre>org.jboss.resteasy.spi.UnhandledException:
+					java.lang.NullPointerException
+					org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:365)
+					org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:233)
+					org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:209)
+					org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:557)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
+					org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
+					javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
+					org.openecomp.mso.logger.LogFilter.doFilter(LogFilter.java:35)
+				</pre>
+			</p>
+			<p>
+				<b>JBWEB000071: root cause</b>
+				<pre>java.lang.NullPointerException
+					org.openecomp.mso.adapters.network.NetworkAdapterRest$CreateNetworkVolumesTask.run(NetworkAdapterRest.java:128)
+					org.openecomp.mso.adapters.network.NetworkAdapterRest.createNetwork(NetworkAdapterRest.java:64)
+					sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+					sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
+					sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+					java.lang.reflect.Method.invoke(Method.java:606)
+					org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:167)
+					org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:269)
+					org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:227)
+					org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)
+					org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:542)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:524)
+					org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:126)
+					org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55)
+					org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50)
+					javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
+					org.openecomp.mso.logger.LogFilter.doFilter(LogFilter.java:35)
+				</pre>
+			</p>
+			<p>
+				<b>JBWEB000072: note</b>
+				<u>JBWEB000073: The full stack trace of the root cause is available
+					in the JBoss Web/7.2.2.Final-redhat-1 logs.</u>
+			</p>
+			<HR size="1" noshade="noshade">
+				<h3>JBoss Web/7.2.2.Final-redhat-1</h3>
+	</body>
+</html>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_Success.xml
new file mode 100644
index 0000000..7a00744
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetworkResponse_Success.xml
@@ -0,0 +1,24 @@
+<ns2:updateNetworkContrailResponse xmlns:ns2="http://org.openecomp.mso/network"
+                                    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+   <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+   <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+   <subnetIdMap>
+      <entry>
+         <key>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</key>
+         <value>bd8e87c6-f4e2-41b8-b0bc-9596aa00cd73</value>
+      </entry>
+   </subnetIdMap>
+   <rollback>
+      <cloudId>RDM2WAGPLCP</cloudId>
+      <msoRequest>
+         <requestId>1ef47428-cade-45bd-a103-0751e8b2deb0</requestId>
+         <serviceInstanceId/>
+      </msoRequest>
+      <networkCreated>true</networkCreated>
+      <networkId>MNS-25180-L-01-dmz_direct_net_1/2c88a3a9-69b9-43a7-ada6-1aca577c3641</networkId>
+      <networkType>CONTRAIL_EXTERNAL</networkType>
+      <networkUpdated>false</networkUpdated>
+      <neutronNetworkId>c4f4e878-cde0-4b15-ae9a-bda857759cea</neutronNetworkId>
+      <tenantId>7dd5365547234ee8937416c65507d266</tenantId>
+   </rollback>
+</ns2:updateNetworkContrailResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml
new file mode 100644
index 0000000..ca5145c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml
@@ -0,0 +1,4 @@
+<result-data>
+  <resource-type>service-instance</resource-type>
+  <resource-link>https://aai-conexus-e2e.test.com:8443/aai/v8/business/customers/customer/8310000058863/service-subscriptions/service-subscription/vMOG/service-instances/service-instance/f70e927b-6087-4974-9ef8-c5e4d5847ca4</resource-link>
+</result-data>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
new file mode 100644
index 0000000..e06d27e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-create</orchestration-status>
+   		 <physical-network-name>networkName</physical-network-name>
+   		 <is-provider-network>false</is-provider-network>
+   		 <is-shared-network>true</is-shared-network>
+   	 	 <is-external-network>false</is-external-network>         
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-create</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+   	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+	  	 <segmentation-assignments>
+	  		<segmentation-id>413</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>         
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+				<related-to>network-policy</related-to>
+				<related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>
+				<relationship-data>
+					<relationship-key>network-policy.network-policy-id</relationship-key>
+					<relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>
+				</relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>			
+         </relationship-list>
+</l3-network>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml
new file mode 100644
index 0000000..24ee1df
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_Success.xml
@@ -0,0 +1,95 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:502-132671"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <l3-network xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-id>49c86598-f766-46f8-84f8-8d1c1b10f9b4</network-id>
+         <network-name>MNS-25180-L-01-dmz_direct_net_1</network-name>
+         <network-type>CONTRAIL_EXTERNAL</network-type>
+         <network-role>dmz_direct</network-role>
+         <network-technology>contrail</network-technology>
+         <service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
+         <network-role-instance>0</network-role-instance>
+         <orchestration-status>pending-create</orchestration-status>
+   		 <physical-network-name>networkName</physical-network-name>
+   		 <is-provider-network>false</is-provider-network>
+   		 <is-shared-network>true</is-shared-network>
+   		 <is-external-network>false</is-external-network>         
+         <subnets>
+            <subnet>
+               <subnet-id>57e9a1ff-d14f-4071-a828-b19ae98eb2fc</subnet-id>
+               <gateway-address>107.239.52.1</gateway-address>
+               <network-start-address>107.239.52.0</network-start-address>
+               <cidr-mask>24</cidr-mask>
+               <ip-version>4</ip-version>
+               <orchestration-status>pending-create</orchestration-status>
+               <dhcp-enabled>true</dhcp-enabled>
+   	  		   <subnet-name>subnetName</subnet-name>
+               <relationship-list/>
+            </subnet>
+         </subnets>
+	  	 <segmentation-assignments>
+	  		<segmentation-id>413</segmentation-id>
+	  		<resource-version>4132176</resource-version>
+	  	 </segmentation-assignments>         
+         <relationship-list>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/85f015d0-2e32-4c30-96d2-87a1a27f8017/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>85f015d0-2e32-4c30-96d2-87a1a27f8017</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>vpn-binding</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/vpn-bindings/vpn-binding/c980a6ef-3b88-49f0-9751-dbad8608d0a6/</related-link>
+               <relationship-data>
+                  <relationship-key>vpn-binding.vpn-id</relationship-key>
+                  <relationship-value>c980a6ef-3b88-49f0-9751-dbad8608d0a6</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>tenant</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+				<related-to>network-policy</related-to>
+				<related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/network-policies/network-policy/cee6d136-e378-4678-a024-2cd15f0ee0cg</related-link>
+				<relationship-data>
+					<relationship-key>network-policy.network-policy-id</relationship-key>
+					<relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</relationship-value>
+				</relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+	  		   <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN1</related-link>			   
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>
+			<relationship>
+			   <related-to>route-table-reference</related-to>
+	  		   <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/route-table-references/route-table-reference/refFQDN2</related-link>			   
+			   <relationship-data>
+				  <relationship-key>route-table-reference.route-table-reference-id</relationship-key>
+				  <relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0hi</relationship-value>
+			   </relationship-data>
+			</relationship>		
+         </relationship-list>
+      </l3-network>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml
new file mode 100644
index 0000000..686ac16
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkPolicy_AAIResponse_Success.xml
@@ -0,0 +1,21 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <network-policy xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-policy-id>9a7b327d9-287aa00-82c4b0-105757</network-policy-id>
+         <network-policy-fqdn>GN_EVPN_Test</network-policy-fqdn>
+         <heat-stack-id>13979:105757</heat-stack-id>
+         <resource-version>13979:105757</resource-version>
+      </network-policy>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
new file mode 100644
index 0000000..b01e469
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <route-table-references xmlns="http://org.openecomp.aai.inventory/v8">
+         <route-table-reference-id>5938baec-03ca-2bd5-a3f1-d54x123e253a</route-table-reference-id>
+         <route-table-reference-fqdn>refFQDN1</route-table-reference-fqdn>
+         <resource-version>12345</resource-version>
+      </route-table-references>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
new file mode 100644
index 0000000..a19f941
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
@@ -0,0 +1,20 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <route-table-references xmlns="http://org.openecomp.aai.inventory/v8">
+         <route-table-reference-id>5938baec-03ca-2bd5-a3f1-d54x123e253a</route-table-reference-id>
+         <route-table-reference-fqdn>refFQDN2</route-table-reference-fqdn>
+         <resource-version>12345</resource-version>
+      </route-table-references>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml
new file mode 100644
index 0000000..c35faef
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryVpnBinding_AAIResponse_Success.xml
@@ -0,0 +1,46 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <vpn-binding xmlns="http://org.openecomp.aai.inventory/v8">
+         <vpn-id>9a7b327d9-287aa00-82c4b0-105757</vpn-id>
+         <vpn-name>GN_EVPN_Test</vpn-name>
+         <global-route-target>13979:105757</global-route-target>
+         <relationship-list>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/l3-networks/l3-network/689ec39e-c5fc-4462-8db2-4f760763ad28/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>689ec39e-c5fc-4462-8db2-4f760763ad28</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/l3-networks/l3-network/1a49396b-19b3-40a4-8792-aa2fbd0f0704/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>1a49396b-19b3-40a4-8792-aa2fbd0f0704</relationship-value>
+               </relationship-data>
+            </relationship>
+            <relationship>
+               <related-to>l3-network</related-to>
+               <related-link>https://aai-app-e2e.test.com:8443/aai/v8/network/l3-networks/l3-network/774f3329-3c83-4771-86c7-9e6207cd50fd/</related-link>
+               <relationship-data>
+                  <relationship-key>l3-network.network-id</relationship-key>
+                  <relationship-value>774f3329-3c83-4771-86c7-9e6207cd50fd</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </vpn-binding>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml
new file mode 100644
index 0000000..eedbda9
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_updateContrail_AAIResponse_Success.xml
@@ -0,0 +1,11 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Date" value="Thu,10 Mar 2016 00:01:18 GMT"/>
+      <rest:header name="Content-Length" value="0"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID" value="mtcnjv9aaas03-20160310-00:01:18:551-132672"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
new file mode 100644
index 0000000..b03e95c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/queryVolumeId_AAIResponse_Success.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<volume-group xmlns="http://org.openecomp.aai.inventory/v8">
+	<volume-group-id>78987</volume-group-id>
+	<volume-group-name>MSOTESTVOL102a-vSAMP12_base_vol_module-0</volume-group-name>
+	<heat-stack-id/>
+	<vnf-type>Test/vSAMP12</vnf-type>
+	<orchestration-status>Pending</orchestration-status>
+	<resource-version>0000020</resource-version>
+	<relationship-list>
+		<relationship>
+			<related-to>tenant</related-to>
+			<related-link>https://aai-ext1.test.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mdt1/tenants/tenant/fba1bd1e195a404cacb9ce17a9b2b421/</related-link>
+			<relationship-data>
+				<relationship-key>tenant.tenant-id</relationship-key>
+				<relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>mdt1</relationship-value>
+			</relationship-data>
+			<related-to-property>
+				<property-key>tenant.tenant-name</property-key>
+				<property-value>ECOMP_MDT1</property-value>
+			</related-to-property>
+		</relationship>
+		<relationship>
+			<related-to>vf-module</related-to>
+			<related-link>http://localhost:28090/aai/v8/network/generic-vnfs/generic-vnf/9e48f6ea-f786-46de-800a-d480e5ccc846/vf-modules/vf-module/6a1dc898-b590-47b9-bbf0-34424a7a2ec3/</related-link>
+			<relationship-data>
+				<relationship-key>generic-vnf.vnf-id</relationship-key>
+				<relationship-value>9e48f6ea-f786-46de-800a-d480e5ccc846</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>vf-module.vf-module-id</relationship-key>
+				<relationship-value>6a1dc898-b590-47b9-bbf0-34424a7a2ec3</relationship-value>
+			</relationship-data>
+		</relationship>
+	</relationship-list>
+</volume-group>
+      
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json
new file mode 100644
index 0000000..8ab460e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request.json
@@ -0,0 +1,64 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mdt1",
+			"tenantId": "fba1bd1e195a404cacb9ce17a9b2b421"
+		},
+		"requestInfo": {
+			"instanceName": "MSOTESTVOL101a-vSAMP12_base_vol_module-0",
+			"source": "VID",
+			"suppressRollback": false
+		},
+		"relatedInstanceList": [
+			{
+				"relatedInstance": {
+					"instanceId": "{service-instance-id}",
+					"modelInfo": {
+						"modelType": "service",
+						"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test",
+						"modelVersion": "2.0"
+					}
+				}
+			}, {
+				"relatedInstance": {
+					"instanceId": "{vnf-instance-id}",
+					"modelInfo": {
+						"modelType": "vnf",
+						"modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test/vSAMP12",
+						"modelVersion": "1",
+						"modelCustomizationName": "vSAMP12"
+					}
+				}
+			}
+		],
+		"requestParameters": {
+			"serviceId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+			"userParams": [
+				{"name": "vnfName", "value": "STMTN5MMSC20" },
+				{"name": "vnfName2", "value": "US1117MTSNJVBR0246" },
+				{"name": "vnfNmInformation", "value": "" },
+				{"name": "vnfType", "value": "pcrf-capacity" },
+				{"name": "vnfId", "value": "skask" },
+				{"name": "vnfStackId", "value": "slowburn" },
+				{"name": "vnfStatus", "value": "created" },
+				{"name": "aicCloudRegion", "value": "MDTWNJ21" },
+				{"name": "availabilityZone", "value": "slcp3-esx-az01" },
+				{"name": "oamNetworkName", "value": "VLAN-OAM-1323" },
+				{"name": "vmName", "value": "slcp34246vbc246ceb" },
+				{"name": "ipagNetworkId", "value": "970cd2b9-7f09-4a12-af47-182ea38ba1f0" },
+				{"name": "vpeNetworkId", "value": "545cc2c3-1930-4100-b534-5d82d0e12bb6" }
+			]
+		}
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json
new file mode 100644
index 0000000..963e2dd
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/updateVfModuleVolume_VID_request_2.json
@@ -0,0 +1,64 @@
+{
+	"requestDetails": {
+		"modelInfo": {
+			"modelType": "volumeGroup",
+			"modelInvariantId": "ff5256d2-5a33-55df-13ab-12abad84e7ff",
+			"modelNameVersionId": "fe6478e5-ea33-3346-ac12-ab121484a3fe",
+			"modelName": "vSAMP12::base::module-0",
+			"modelVersion": "1"
+		},
+		"cloudConfiguration": {
+			"lcpCloudRegionId": "mdt1",
+			"tenantId": "fba1bd1e195a404cacb9ce17a9b2b421"
+		},
+		"requestInfo": {
+			"instanceName": "MSOTESTVOL101a-vSAMP12_base_vol_module-0",
+			"source": "VID",
+			"suppressRollback": false
+		},
+		"relatedInstanceList": [
+			{
+				"relatedInstance": {
+					"instanceId": "{service-instance-id}",
+					"modelInfo": {
+						"modelType": "service",
+						"modelInvariantId": "ff3514e3-5a33-55df-13ab-12abad84e7ff-x",
+						"modelNameVersionId": "fe6985cd-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test",
+						"modelVersion": "2.0"
+					}
+				}
+			}, {
+				"relatedInstance": {
+					"instanceId": "{vnf-instance-id}",
+					"modelInfo": {
+						"modelType": "vnf",
+						"modelInvariantId": "ff5256d1-5a33-55df-13ab-12abad84e7ff",
+						"modelNameVersionId": "fe6478e4-ea33-3346-ac12-ab121484a3fe",
+						"modelName": "Test/vSAMP12",
+						"modelVersion": "1",
+						"modelCustomizationName": "vSAMP12"
+					}
+				}
+			}
+		],
+		"requestParameters": {
+			"serviceId": "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb",
+			"userParams": [
+				{"name": "vnfName", "value": "STMTN5MMSC20" },
+				{"name": "vnfName2", "value": "US1117MTSNJVBR0246" },
+				{"name": "vnfNmInformation", "value": "" },
+				{"name": "vnfType", "value": "pcrf-capacity" },
+				{"name": "vnfId", "value": "skask" },
+				{"name": "vnfStackId", "value": "slowburn" },
+				{"name": "vnfStatus", "value": "created" },
+				{"name": "aicCloudRegion", "value": "MDTWNJ21" },
+				{"name": "availabilityZone", "value": "slcp3-esx-az01" },
+				{"name": "oamNetworkName", "value": "VLAN-OAM-1323" },
+				{"name": "vmName", "value": "slcp34246vbc246ceb" },
+				{"name": "ipagNetworkId", "value": "970cd2b9-7f09-4a12-af47-182ea38ba1f0" },
+				{"name": "vpeNetworkId", "value": "545cc2c3-1930-4100-b534-5d82d0e12bb6" }
+			]
+		}
+	}
+}
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml
new file mode 100644
index 0000000..aa2a85c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/UpdateVfModuleVolumeInfraV1/vf_module_aai_response.xml
@@ -0,0 +1,29 @@
+<vf-module xmlns="http://org.openecomp.aai.inventory/v8">
+   <vf-module-id>6a1dc898-b590-47b9-bbf0-34424a7a2ec3</vf-module-id>
+   <vf-module-name>MSOST10606-vSAMP12_MTN6_base_module-0</vf-module-name>
+   <heat-stack-id>MSOST10606-vSAMP12_MTN6_base_module-0/81b01583-690c-4ec3-9c58-0eafa7a90be7</heat-stack-id>
+   <orchestration-status>active</orchestration-status>
+   <is-base-vf-module>true</is-base-vf-module>
+   <resource-version>1475077639</resource-version>
+   <persona-model-id>ff5256d2-5a33-55df-13ab-12abad84e7ff</persona-model-id>
+   <persona-model-version>1.0</persona-model-version>
+   <relationship-list>
+      <relationship>
+         <related-to>volume-group</related-to>
+         <related-link>https://aai-ext1.test.com:8443/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/mtn6/volume-groups/volume-group/064bd1c6-e377-4009-a744-e958eec6e727/</related-link>
+         <relationship-data>
+            <relationship-key>cloud-region.cloud-owner</relationship-key>
+            <relationship-value>att-aic</relationship-value>
+         </relationship-data>
+         <relationship-data>
+            <relationship-key>cloud-region.cloud-region-id</relationship-key>
+            <relationship-value>mtn6</relationship-value>
+         </relationship-data>
+         <relationship-data>
+            <relationship-key>volume-group.volume-group-id</relationship-key>
+            <relationship-value>064bd1c6-e377-4009-a744-e958eec6e727</relationship-value>
+         </relationship-data>
+      </relationship>
+   </relationship-list>
+
+</vf-module>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml
new file mode 100644
index 0000000..0ec1e30
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml
@@ -0,0 +1,21 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <network-policy xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-policy-id>9a7b327d9-287aa00-82c4b0-105757</network-policy-id>
+         <network-policy-fqdn>fqdn123</network-policy-fqdn>
+         <heat-stack-id>slowburn</heat-stack-id>
+         <resource-version>145878989</resource-version>
+      </network-policy>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
new file mode 100644
index 0000000..b2560bc
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
@@ -0,0 +1,38 @@
+<generic-vnf xmlns="http://org.openecomp.aai.inventory/v7">
+	<vnf-id>skask</vnf-id>
+	<vnf-name>STMTN5MMSC20</vnf-name>
+	<vnf-type>pcrf-capacity</vnf-type>
+	<service-id>SDN-MOBILITY</service-id>
+	<equipment-role>vPCRF</equipment-role>
+	<orchestration-status>pending-create</orchestration-status>
+	<in-maint>false</in-maint>
+	<is-closed-loop-disabled>false</is-closed-loop-disabled>
+	<persona-model-id>introvert</persona-model-id>
+	<persona-model-version>2.0</persona-model-version>
+	<resource-version>0000020</resource-version>
+	<vf-modules>
+		<vf-module>
+			<vf-module-id>lukewarm</vf-module-id>
+			<vf-module-name>PCRF::module-0-0</vf-module-name>
+			<persona-model-id>introvert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>true</is-base-vf-module>
+			<heat-stack-id>fastburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000074</resource-version>
+		</vf-module>
+		<vf-module>
+			<vf-module-id>supercool</vf-module-id>
+			<vf-module-name>PCRF::module-1-0</vf-module-name>
+			<persona-model-id>extrovert</persona-model-id>
+			<persona-model-version>2.0</persona-model-version>
+			<is-base-vf-module>false</is-base-vf-module>
+			<heat-stack-id>slowburn</heat-stack-id>
+			<orchestration-status>pending-create</orchestration-status>
+			<resource-version>0000075</resource-version>
+		</vf-module>
+	</vf-modules>
+	<relationship-list/>
+	<l-interfaces/>
+	<lag-interfaces/>
+</generic-vnf>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml
new file mode 100644
index 0000000..d7bbb15
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml
@@ -0,0 +1,21 @@
+<rest:RESTResponse xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
+                   statusCode="200">
+   <rest:headers>
+      <rest:header name="Transfer-Encoding" value="chunked"/>
+      <rest:header name="Date" value="Mon,14 Mar 2016 20:53:33 GMT"/>
+      <rest:header name="Expires" value="Thu,01 Jan 1970 00:00:00 UTC"/>
+      <rest:header name="X-AAI-TXID"
+                   value="mtcnjv9aaas01.mtcnj.aic.cip.com-20160314-20:53:33:487-134392"/>
+      <rest:header name="Content-Type" value="application/xml"/>
+      <rest:header name="Server" value="Apache-Coyote/1.1"/>
+      <rest:header name="Cache-Control" value="private"/>
+   </rest:headers>
+   <rest:payload contentType="text/xml">
+      <network-policy xmlns="http://org.openecomp.aai.inventory/v8">
+         <network-policy-id>9a7b327d9-287aa00-82c4b0-105757</network-policy-id>
+         <network-policy-fqdn>GN_EVPN_Test</network-policy-fqdn>
+         <heat-stack-id>195159195</heat-stack-id>
+         <resource-version>14567890</resource-version>
+      </network-policy>
+   </rest:payload>
+</rest:RESTResponse>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/StandardSDNCSynchResponse.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/StandardSDNCSynchResponse.xml
new file mode 100644
index 0000000..919ff2c
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/StandardSDNCSynchResponse.xml
@@ -0,0 +1,5 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
+  <soap:Body>
+    <SDNCAdapterResponse xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1"/>
+  </soap:Body>
+</soap:Envelope>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
new file mode 100644
index 0000000..a71441e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
@@ -0,0 +1,9 @@
+<vf-module xmlns="http://org.openecomp.aai.inventory/v7">
+	<vf-module-id>b37d96db-7d2c-47ce-bf61-a6c7b82fe161</vf-module-id>
+	<vf-module-name>PCRF::module-0-2</vf-module-name>
+	<persona-model-id>00000000-0000-0000-0000-000000000000</persona-model-id>
+	<persona-model-version>1.0</persona-model-version>
+	<is-base-vf-module>false</is-base-vf-module>
+	<orchestration-status>pending-create</orchestration-status>
+	<resource-version>330-90</resource-version>
+</vf-module>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
new file mode 100644
index 0000000..1066b17
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
@@ -0,0 +1,27 @@
+<vf-module xmlns="http://org.openecomp.aai.inventory/v7">
+	<vf-module-id>supercool</vf-module-id>
+	<vf-module-name>PCRF::module-2</vf-module-name>
+	<heat-stack-id>fastburn</heat-stack-id>
+	<orchestration-status>pending-create</orchestration-status>
+	<is-base-vf-module>false</is-base-vf-module>
+	<resource-version>330-89</resource-version>
+	<persona-model-id>introvert</persona-model-id>
+	<persona-model-version>2.0</persona-model-version>
+	<relationship-list>
+		<relationship>
+			<related-to>volume-group</related-to>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-owner</relationship-key>
+				<relationship-value>att-aic</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>cloud-region.cloud-region-id</relationship-key>
+				<relationship-value>pdk1</relationship-value>
+			</relationship-data>
+			<relationship-data>
+				<relationship-key>volume-group.volume-group-id</relationship-key>
+				<relationship-value>78987</relationship-value>
+			</relationship-data>
+		</relationship>
+	</relationship-list>
+</vf-module>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml
new file mode 100644
index 0000000..df84706
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml
@@ -0,0 +1,25 @@
+  <volume-group xmlns="http://org.openecomp.aai.inventory/v7">
+         <volume-group-id>78987</volume-group-id>
+         <volume-group-name>Volume_2</volume-group-name>
+         <heat-stack-id>slowburn</heat-stack-id>
+         <vnf-type>pcrf-capacity</vnf-type>
+         <orchestration-status>Active</orchestration-status>
+         <resource-version>0000020</resource-version>
+         <relationship-list>
+            <relationship>
+               <related-to>tenant</related-to>
+               <relationship-data>
+                  <relationship-key>cloud-region.cloud-owner</relationship-key>
+                  <relationship-value>att-aic</relationship-value>
+               </relationship-data>
+               <relationship-data>
+                  <relationship-key>cloud-region.cloud-region-id</relationship-key>
+                  <relationship-value>MDTWNJ21</relationship-value>
+               </relationship-data>
+               <relationship-data>
+                  <relationship-key>tenant.tenant-id</relationship-key>
+                  <relationship-value>fba1bd1e195a404cacb9ce17a9b2b421</relationship-value>
+               </relationship-data>
+            </relationship>
+         </relationship-list>
+      </volume-group>
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/deleteNetworkResponse_Success.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/deleteNetworkResponse_Success.xml
new file mode 100644
index 0000000..902c083
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/__files/deleteNetworkResponse_Success.xml
@@ -0,0 +1,3 @@
+<ns2:deleteNetworkResponse xmlns:ns2="http://org.openecomp.mso/network">
+	<networkDeleted>true</networkDeleted>
+</ns2:deleteNetworkResponse>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/camunda.cfg.xml b/bpmn/MSOInfrastructureBPMN/src/test/resources/camunda.cfg.xml
new file mode 100644
index 0000000..c94e32e
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/camunda.cfg.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans" 
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans   http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+  <bean id="processEngineConfiguration" class="org.camunda.bpm.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration">
+
+    <property name="jdbcUrl" value="jdbc:h2:mem:camunda;DB_CLOSE_DELAY=1000" />
+    <property name="jdbcDriver" value="org.h2.Driver" />
+    <property name="jdbcUsername" value="sa" />
+    <property name="jdbcPassword" value="" />
+
+    <!-- Database configurations -->
+    <property name="databaseSchemaUpdate" value="true" />
+
+    <!-- job executor configurations -->
+    <property name="jobExecutorActivate" value="true" />
+
+    <property name="history" value="full" />
+
+    <property name="customPostBPMNParseListeners">
+      <list>
+        <bean class="org.camunda.bpm.engine.impl.bpmn.parser.FoxFailedJobParseListener" />
+      </list>
+    </property>
+
+    <property name="failedJobCommandFactory" ref="foxFailedJobCommandFactory" />
+
+    <!--<property name="idGenerator" ref="uuidGenerator" />-->
+
+    <!-- engine plugins -->
+    <property name="processEnginePlugins">
+      <list>
+        <ref bean="connectProcessEnginePlugin" />
+        <ref bean="spinProcessEnginePlugin" />
+        <ref bean="loggingPlugin" />
+        <ref bean="workflowExceptionPlugin" />
+        <ref bean="workbenchPlugin" />
+	  </list>
+    </property>
+  </bean>
+
+  <bean id="workbenchPlugin" class="org.camunda.bpm.debugger.server.EmbeddableDebugWebsocketBootstrap">
+        	<property name="httpPort" value="28088"/>
+  </bean>          
+
+  <bean id="loggingPlugin" class="org.openecomp.mso.bpmn.core.plugins.LoggingAndURNMappingPlugin" />
+  
+  <!-- Needed until all subflows generate MSOWorkflowException events --> 
+  <bean id="workflowExceptionPlugin" class="org.openecomp.mso.bpmn.core.plugins.WorkflowExceptionPlugin" />
+
+  <bean id="foxFailedJobCommandFactory" class="org.camunda.bpm.engine.impl.jobexecutor.FoxFailedJobCommandFactory" />
+
+  <!--<bean id="uuidGenerator" class="org.camunda.bpm.engine.impl.persistence.StrongUuidGenerator" />-->
+
+  <!-- engine plugin beans -->
+  <bean id="connectProcessEnginePlugin" class="org.camunda.connect.plugin.impl.ConnectProcessEnginePlugin" />
+  <bean id="spinProcessEnginePlugin" class="org.camunda.spin.plugin.impl.SpinProcessEnginePlugin" />
+
+</beans>
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/logging.properties b/bpmn/MSOInfrastructureBPMN/src/test/resources/logging.properties
new file mode 100644
index 0000000..4941c55
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/logging.properties
@@ -0,0 +1,2 @@
+#register SLF4JBridgeHandler as handler for the j.u.l. root logger
+handlers = org.slf4j.bridge.SLF4JBridgeHandler
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.properties b/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.properties
new file mode 100644
index 0000000..f800d00
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.properties
@@ -0,0 +1,3 @@
+# Default BPMN properties for unit tests
+
+URNMapping.FileSystemLoading.Enabled=true
\ No newline at end of file
diff --git a/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties b/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties
new file mode 100644
index 0000000..4ec6617
--- /dev/null
+++ b/bpmn/MSOInfrastructureBPMN/src/test/resources/mso.bpmn.urn.properties
@@ -0,0 +1,85 @@
+# Default URN Mappings for unit tests
+
+mso.rollback=true
+
+canopi.auth=757A94191D685FD2092AC1490730A4FC
+csi.aots.addincidentmanagement.endpoint=http://localhost:28090/AddIncidentManagementTicketRequest
+csi.networkstatus.endpoint=http://localhost:28090/SendManagedNetworkStatusNotification
+mso.csi.pwd=4EA237303511EFBBC37F17A351562131
+mso.csi.usrname=mso
+mso.msoKey=07a7159d3bf51a0e53be7a8f89699be7
+
+mso.adapters.completemsoprocess.endpoint=http://localhost:28090/CompleteMsoProcess
+
+mso.adapters.db.endpoint=http://localhost:28090/dbadapters/RequestsDbAdapter
+mso.adapters.db.auth=757A94191D685FD2092AC1490730A4FC
+
+mso.adapters.network.endpoint=http://localhost:28090/networks/NetworkAdapter
+mso.adapters.network.rest.endpoint=http://localhost:28090/networks/NetworkAdapter
+
+mso.adapters.po.auth=757A94191D685FD2092AC1490730A4FC
+mso.adapters.po.password=3141634BF7E070AA289CF2892C986C0B
+mso.po.timeout=PT60S
+
+aai.auth=757A94191D685FD2092AC1490730A4FC
+
+mso.adapters.sdnc.endpoint=http://localhost:28090/SDNCAdapter
+mso.adapters.sdnc.rest.endpoint=http://localhost:28090/SDNCAdapter/v1/sdnc
+mso.adapters.sdnc.timeout=PT60S
+mso.sdnc.firewall.yang.model=http://com/openecomp/svc/mis/firewall-lite-gui
+mso.sdnc.firewall.yang.model.version=2015-05-15
+mso.sdnc.password=3141634BF7E070AA289CF2892C986C0B
+mso.sdnc.timeout.firewall.minutes=20
+mso.sdnc.timeout=PT10S
+mso.sdnc.timeout.ucpe.async.hours=120
+mso.sdnc.timeout.ucpe.async.minutes=5
+mso.workflow.message.endpoint=http://localhost:28080/mso/WorkflowMesssage
+mso.workflow.sdncadapter.callback=http://localhost:28080/mso/SDNCAdapterCallbackService
+
+mso.catalog.db.endpoint=http://localhost:28090/
+
+mso.adapters.tenant.endpoint=http://localhost:28090/tenantAdapterMock
+mso.adapters.vnf-async.endpoint=http://localhost:28090/vnfs/VnfAdapterAsync
+mso.adapters.vnf.endpoint=http://localhost:28090/vnfs/VnfAdapter
+mso.adapters.vnf.rest.endpoint=http://localhost:28090/vnfs/v1/vnfs
+mso.workflow.vnfadapter.create.callback=http://localhost:28080/mso/vnfAdapterNotify
+mso.workflow.vnfadapter.delete.callback=http://localhost:28080/mso/vnfAdapterNotify
+mso.workflow.vnfadapter.query.callback=http://localhost:28080/mso/services/VNFAdapterQuerCallbackV1
+mso.workflow.vnfadapter.rollback.callback=http://localhost:28080/mso/vnfAdapterNotify
+mso.workflow.createvce.delay.seconds=1
+mso.infra.customer.id=testCustIdInfra
+
+aai.endpoint=http://localhost:28090
+
+# AAI version mappings
+
+# Example to override default version for a resource:
+#mso.workflow.default.aai.vce.version=6
+#mso.workflow.default.aai.v6.vce.uri=/aai/v6/network/vces/vce
+
+mso.workflow.global.default.aai.version=8
+mso.workflow.default.aai.cloud-region.version=9
+mso.workflow.default.aai.generic-vnf.version=9
+
+mso.workflow.default.aai.v9.cloud-region.uri=/aai/v9/cloud-infrastructure/cloud-regions/cloud-region/att-aic
+mso.workflow.default.aai.v8.customer.uri=/aai/v8/business/customers/customer
+mso.workflow.default.aai.v8.generic-query.uri=/aai/v8/search/generic-query
+mso.workflow.default.aai.v9.generic-vnf.uri=/aai/v9/network/generic-vnfs/generic-vnf
+mso.workflow.default.aai.v8.l3-network.uri=/aai/v8/network/l3-networks/l3-network
+mso.workflow.default.aai.v8.network-policy.uri=/aai/v8/network/network-policies/network-policy
+mso.workflow.default.aai.v8.nodes-query.uri=/aai/v8/search/nodes-query
+mso.workflow.default.aai.v8.route-table-reference.uri=/aai/v8/network/route-table-references/route-table-reference
+mso.workflow.default.aai.v8.tenant.uri=/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant
+mso.workflow.default.aai.v8.vce.uri=/aai/v8/network/vces/vce
+mso.workflow.default.aai.v8.vpn-binding.uri=/aai/v8/network/vpn-bindings/vpn-binding
+
+
+log.debug.CompleteMsoProcess=true
+log.debug.CreateNetworkInstanceInfra=true
+log.debug.CreateServiceInstanceInfra=true
+log.debug.DeleteNetworkInstanceInfra=true
+log.debug.FalloutHandler=true
+log.debug.GenericGetService=true
+log.debug.sdncAdapter=true
+log.debug.UpdateNetworkInstanceInfra=true
+log.debug.VnfAdapterRestV1=true
\ No newline at end of file