[MSO-8] Second step of the rebase for MSO

Second rebase containing additional features for MSO + total reworking
of the BPMN structure + Notification flow can now be added at the end of
some BPMN flows

Change-Id: I7e937c7a0ba1593ca85e164a093f79c7e38b6ce0
Signed-off-by: Determe, Sebastien (sd378r) <sd378r@intl.att.com>
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/AaiUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/AaiUtilTest.groovy
index 7d698f8..914725c 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/AaiUtilTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/AaiUtilTest.groovy
@@ -1,318 +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.common.scripts;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*
-
-import org.openecomp.mso.rest.HttpHeader
-import org.mockito.MockitoAnnotations
-import org.mockito.runners.MockitoJUnitRunner
-import org.mockito.internal.debugging.MockitoDebuggerImpl
-import org.junit.Before
-import org.openecomp.mso.bpmn.common.scripts.AaiUtil;
-import org.junit.Rule;
-import org.junit.Test
-import org.junit.Ignore
-import org.junit.runner.RunWith
-import org.junit.Before;
-import org.junit.Test;
-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.impl.pvm.process.ProcessDefinitionImpl
-import org.camunda.bpm.engine.repository.ProcessDefinition
-
-@RunWith(MockitoJUnitRunner.class)
-class AaiUtilTest extends MsoGroovyTest {
-	
-	@Test
-	public void testGetVersionDefault() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
-		assertEquals('8', version)
-	}
-	
-	@Test
-	public void testGetVersionResourceSpecific() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_l3_network_version")).thenReturn('7')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
-		assertEquals('7', version)
-	}
-
-	@Test
-	public void testGetVersionFlowSpecific() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_custom_CreateAAIVfModule_aai_version")).thenReturn('6')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_l3_network_version")).thenReturn('7')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
-		assertEquals('6', version)
-	}
-
-	@Test(expected=java.lang.Exception.class)
-	public void testGetVersionNotDefined() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')
-	}
-	
-	@Test
-	public void testGetUriDefaultVersion() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn('/aai/v8/network/l3-networks/l3-network')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-								
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getUri(mockExecution, 'l3-network')
-		assertEquals('/aai/v8/network/l3-networks/l3-network', uri)
-	}
-	
-	@Test
-	public void testGetUriFlowAndResourceSpecific() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_CreateAAIVfModule_aai_l3_network_uri")).thenReturn('/aai/v6/network/l3-networks/l3-network')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn('/aai/v8/network/l3-networks/l3-network')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-								
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getUri(mockExecution, 'l3-network')
-		assertEquals('/aai/v6/network/l3-networks/l3-network', uri)
-	}
-	
-	@Test
-	public void testGetNetworkGenericVnfEndpoint() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_generic_vnf_uri")).thenReturn('/aai/v8/network/generic-vnfs/generic-vnf')
-		when(mockExecution.getVariable('URN_aai_endpoint')).thenReturn('http://localhost:28090')
-		
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def endpoint = aaiUtil.getNetworkGenericVnfEndpoint(mockExecution)
-		assertEquals('http://localhost:28090/aai/v8/network/generic-vnfs/generic-vnf', endpoint)
-	}
-	
-	@Test
-	public void testGetNetworkGenericVnfUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_generic_vnf_uri")).thenReturn('/aai/v8/network/generic-vnfs/generic-vnf')
-				
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getNetworkGenericVnfUri(mockExecution)
-		assertEquals('/aai/v8/network/generic-vnfs/generic-vnf', uri)
-	}
-	
-	@Test
-	public void testGetNetworkVpnBindingUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		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')
-		
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getNetworkVpnBindingUri(mockExecution)
-		assertEquals('/aai/v8/network/vpn-bindings/vpn-binding', uri)
-	}
-
-	@Test
-	public void testGetNetworkPolicyUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		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')
-								
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getNetworkPolicyUri(mockExecution)
-		assertEquals('/aai/v8/network/network-policies/network-policy', uri)
-	}
-	
-	@Test
-	public void testGetNetworkTableReferencesUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		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')
-
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getNetworkTableReferencesUri(mockExecution)
-		assertEquals('/aai/v8/network/route-table-references/route-table-reference', uri)
-	}
-	
-	@Test
-	public void testGetNetworkVceUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vce_uri")).thenReturn('/aai/v8/network/vces/vce')
-
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getNetworkVceUri(mockExecution)
-		assertEquals('/aai/v8/network/vces/vce', uri)
-	}
-	
-	@Test
-	public void testGetNetworkL3NetworkUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		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')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getNetworkL3NetworkUri(mockExecution)
-		assertEquals('/aai/v8/network/l3-networks/l3-network', uri)
-	}
-	
-	@Test
-	public void testGetBusinessCustomerUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_customer_uri")).thenReturn('/aai/v8/business/customers/customer')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getBusinessCustomerUri(mockExecution)
-		assertEquals('/aai/v8/business/customers/customer', uri)
-	}
-	
-	@Test
-	public void testGetCloudInfrastructureCloudRegionEndpoint() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		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('URN_aai_endpoint')).thenReturn('http://localhost:28090')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(mockExecution)
-		assertEquals('http://localhost:28090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic', uri)
-	}
-	
-	@Test
-	public void testGetCloudInfrastructureCloudRegionUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		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')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getCloudInfrastructureCloudRegionUri(mockExecution)
-		assertEquals('/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic', uri)
-	}
-	
-	@Test
-	public void testGetCloudInfrastructureVolumeGroupUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_volume_group_uri")).thenReturn('/aai/v8/cloud-infrastructure/volume-groups/volume-group')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getCloudInfrastructureVolumeGroupUri(mockExecution)
-		assertEquals('/aai/v8/cloud-infrastructure/volume-groups/volume-group', uri)
-	}
-	
-	@Test
-	public void testGetCloudInfrastructureTenantUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_tenant_uri")).thenReturn('/aai/v8/cloud-infrastructure/tenants/tenant')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getCloudInfrastructureTenantUri(mockExecution)
-		assertEquals('/aai/v8/cloud-infrastructure/tenants/tenant', uri)
-	}
-	
-	@Test
-	public void testGetSearchNodesQueryUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_nodes_query_uri")).thenReturn('/aai/v8/search/nodes-query')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getSearchNodesQueryUri(mockExecution)
-		assertEquals('/aai/v8/search/nodes-query', uri)
-	}
-	
-	@Test
-	public void testGetSearchNodesQueryEndpoint() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_nodes_query_uri")).thenReturn('/aai/v8/search/nodes-query')
-		when(mockExecution.getVariable('URN_aai_endpoint')).thenReturn('http://localhost:28090')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getSearchNodesQueryEndpoint(mockExecution)
-		assertEquals('http://localhost:28090/aai/v8/search/nodes-query', uri)
-	}
-	
-	@Test
-	public void testGetSearchGenericQueryUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')
-		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_generic_query_uri")).thenReturn('/aai/v8/search/generic-query')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def uri = aaiUtil.getSearchGenericQueryUri(mockExecution)
-		assertEquals('/aai/v8/search/generic-query', uri)
-	}
-	
-	@Test
-	public void testGetNamespaceFromUri() {
-		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')
-		CreateAAIVfModule myproc = new CreateAAIVfModule()
-		AaiUtil aaiUtil = new AaiUtil(myproc)
-		def ns = aaiUtil.getNamespaceFromUri('/aai/v6/search/generic-query')
-		assertEquals('http://org.openecomp.aai.inventory/v6', ns)
-	}
-	
-}
+/*- 

+ * ============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.common.scripts;

+

+import static org.junit.Assert.*;

+import static org.mockito.Mockito.*

+

+import org.openecomp.mso.rest.HttpHeader

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.junit.Before

+import org.openecomp.mso.bpmn.common.scripts.AaiUtil;

+import org.junit.Rule;

+import org.junit.Test

+import org.junit.Ignore

+import org.junit.runner.RunWith

+import org.junit.Before;

+import org.junit.Test;

+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.impl.pvm.process.ProcessDefinitionImpl

+import org.camunda.bpm.engine.repository.ProcessDefinition

+

+@RunWith(MockitoJUnitRunner.class)

+class AaiUtilTest extends MsoGroovyTest {

+	

+	@Test

+	public void testGetVersionDefault() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')

+		assertEquals('8', version)

+	}

+	

+	@Test

+	public void testGetVersionResourceSpecific() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_l3_network_version")).thenReturn('7')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')

+		assertEquals('7', version)

+	}

+

+	@Test

+	public void testGetVersionFlowSpecific() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_custom_CreateAAIVfModule_aai_version")).thenReturn('6')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_l3_network_version")).thenReturn('7')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')

+		assertEquals('6', version)

+	}

+

+	@Test(expected=java.lang.Exception.class)

+	public void testGetVersionNotDefined() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def version = aaiUtil.getVersion(mockExecution, 'l3-network', 'CreateAAIVfModule')

+	}

+	

+	@Test

+	public void testGetUriDefaultVersion() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn('/aai/v8/network/l3-networks/l3-network')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+								

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getUri(mockExecution, 'l3-network')

+		assertEquals('/aai/v8/network/l3-networks/l3-network', uri)

+	}

+	

+	@Test

+	public void testGetUriFlowAndResourceSpecific() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_CreateAAIVfModule_aai_l3_network_uri")).thenReturn('/aai/v6/network/l3-networks/l3-network')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_l3_network_uri")).thenReturn('/aai/v8/network/l3-networks/l3-network')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+								

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getUri(mockExecution, 'l3-network')

+		assertEquals('/aai/v6/network/l3-networks/l3-network', uri)

+	}

+	

+	@Test

+	public void testGetNetworkGenericVnfEndpoint() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_generic_vnf_uri")).thenReturn('/aai/v8/network/generic-vnfs/generic-vnf')

+		when(mockExecution.getVariable('URN_aai_endpoint')).thenReturn('http://localhost:28090')

+		

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def endpoint = aaiUtil.getNetworkGenericVnfEndpoint(mockExecution)

+		assertEquals('http://localhost:28090/aai/v8/network/generic-vnfs/generic-vnf', endpoint)

+	}

+	

+	@Test

+	public void testGetNetworkGenericVnfUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_generic_vnf_uri")).thenReturn('/aai/v8/network/generic-vnfs/generic-vnf')

+				

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getNetworkGenericVnfUri(mockExecution)

+		assertEquals('/aai/v8/network/generic-vnfs/generic-vnf', uri)

+	}

+	

+	@Test

+	public void testGetNetworkVpnBindingUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		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')

+		

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getNetworkVpnBindingUri(mockExecution)

+		assertEquals('/aai/v8/network/vpn-bindings/vpn-binding', uri)

+	}

+

+	@Test

+	public void testGetNetworkPolicyUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		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')

+								

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getNetworkPolicyUri(mockExecution)

+		assertEquals('/aai/v8/network/network-policies/network-policy', uri)

+	}

+	

+	@Test

+	public void testGetNetworkTableReferencesUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		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')

+

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getNetworkTableReferencesUri(mockExecution)

+		assertEquals('/aai/v8/network/route-table-references/route-table-reference', uri)

+	}

+	

+	@Test

+	public void testGetNetworkVceUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_vce_uri")).thenReturn('/aai/v8/network/vces/vce')

+

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getNetworkVceUri(mockExecution)

+		assertEquals('/aai/v8/network/vces/vce', uri)

+	}

+	

+	@Test

+	public void testGetNetworkL3NetworkUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		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')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getNetworkL3NetworkUri(mockExecution)

+		assertEquals('/aai/v8/network/l3-networks/l3-network', uri)

+	}

+	

+	@Test

+	public void testGetBusinessCustomerUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_customer_uri")).thenReturn('/aai/v8/business/customers/customer')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getBusinessCustomerUri(mockExecution)

+		assertEquals('/aai/v8/business/customers/customer', uri)

+	}

+	

+	@Test

+	public void testGetCloudInfrastructureCloudRegionEndpoint() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		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('URN_aai_endpoint')).thenReturn('http://localhost:28090')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getCloudInfrastructureCloudRegionEndpoint(mockExecution)

+		assertEquals('http://localhost:28090/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic', uri)

+	}

+	

+	@Test

+	public void testGetCloudInfrastructureCloudRegionUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		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')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getCloudInfrastructureCloudRegionUri(mockExecution)

+		assertEquals('/aai/v8/cloud-infrastructure/cloud-regions/cloud-region/att-aic', uri)

+	}

+	

+	@Test

+	public void testGetCloudInfrastructureTenantUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_tenant_uri")).thenReturn('/aai/v8/cloud-infrastructure/tenants/tenant')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getCloudInfrastructureTenantUri(mockExecution)

+		assertEquals('/aai/v8/cloud-infrastructure/tenants/tenant', uri)

+	}

+	

+	@Test

+	public void testGetSearchNodesQueryUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_nodes_query_uri")).thenReturn('/aai/v8/search/nodes-query')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getSearchNodesQueryUri(mockExecution)

+		assertEquals('/aai/v8/search/nodes-query', uri)

+	}

+	

+	@Test

+	public void testGetSearchNodesQueryEndpoint() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_nodes_query_uri")).thenReturn('/aai/v8/search/nodes-query')

+		when(mockExecution.getVariable('URN_aai_endpoint')).thenReturn('http://localhost:28090')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getSearchNodesQueryEndpoint(mockExecution)

+		assertEquals('http://localhost:28090/aai/v8/search/nodes-query', uri)

+	}

+	

+	@Test

+	public void testGetSearchGenericQueryUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		when(mockExecution.getVariable("URN_mso_workflow_global_default_aai_version")).thenReturn('8')

+		when(mockExecution.getVariable("URN_mso_workflow_default_aai_v8_generic_query_uri")).thenReturn('/aai/v8/search/generic-query')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def uri = aaiUtil.getSearchGenericQueryUri(mockExecution)

+		assertEquals('/aai/v8/search/generic-query', uri)

+	}

+	

+	@Test

+	public void testGetNamespaceFromUri() {

+		ExecutionEntity mockExecution = setupMock('CreateAAIVfModule')

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn('true')

+		CreateAAIVfModule myproc = new CreateAAIVfModule()

+		AaiUtil aaiUtil = new AaiUtil(myproc)

+		def ns = aaiUtil.getNamespaceFromUri('/aai/v6/search/generic-query')

+		assertEquals('http://org.openecomp.aai.inventory/v6', ns)

+	}

+	

+}

diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/ExceptionUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/ExceptionUtilTest.groovy
index 98bbe71..a011ebb 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/ExceptionUtilTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/ExceptionUtilTest.groovy
@@ -1,190 +1,66 @@
-/*- 
- * ============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.common.scripts
-
-import org.junit.Assert
-import org.junit.runner.RunWith;
-import org.mockito.runners.MockitoJUnitRunner;
-
-
-import org.junit.Ignore;
-
-import static org.mockito.Mockito.*
-
-import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
-import org.junit.Before
-import org.junit.runner.RunWith
-import org.mockito.MockitoAnnotations
-import org.mockito.internal.debugging.MockitoDebuggerImpl
-import org.mockito.runners.MockitoJUnitRunner
-import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil;
-@RunWith(MockitoJUnitRunner.class)
-import org.junit.Test
-
-
-
-class ExceptionUtilTest {
-
-
-	@Before
-	public void init()
-	{
-		MockitoAnnotations.initMocks(this)
-	}
-
-	@Test
-	public void testErrorMessageDetails() {
-
-
-
-		String restFault = """
-				<Fault>
-<requestError>
-<serviceException>
-<messageId>SVC3002</messageId>
-<text>Error writing output performing %1 on %2 (msg=%3) (ec=%4)</text>
-<variables>
-<variable>PUTcustomer</variable>
-<variable>SubName01</variable>
-<variable>Unexpected error reading/updating database:Adding this property for key [service-instance-id] and value [USSTU2CFCNC0101UJZZ01] violates a uniqueness constraint [service-instance-id]</variable>
-<variable>ERR.5.4.5105</variable>
-</variables>
-</serviceException>
-</requestError>
-</Fault>
-			"""
-		def errorString = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
-				<aetgt:ErrorMessage>Received error from A&amp;AI (Error writing output performing PUTcustomer on SubName01 (msg=Unexpected error reading/updating database:Adding this property for key [service-instance-id] and value [USSTU2CFCNC0101UJZZ01] violates a uniqueness constraint [service-instance-id]) (ec=ERR.5.4.5105))</aetgt:ErrorMessage>
-				<aetgt:ErrorCode>5000</aetgt:ErrorCode>
-			</aetgt:WorkflowException>""" as String
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-
-		ExceptionUtil util = new ExceptionUtil()
-		Assert.assertEquals(errorString, util.MapAAIExceptionToWorkflowExceptionOld(restFault, mockExecution))
-	}
-
-
-	@Test
-	public void testErrorMessage() {
-		String restFault = """
-				<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:RESTFault>
-			"""
-		def errorString = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
-					<aetgt:ErrorMessage>Received error from A&amp;AI (HTTP method: GET Internal Server Error)</aetgt:ErrorMessage>
-					<aetgt:ErrorCode>5000</aetgt:ErrorCode>
-				</aetgt:WorkflowException>""" as String
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("prefix")).thenReturn("test_")
-		when(mockExecution.getVariable("test_ErrorResponse")).thenReturn("HTTP method: GET Internal Server Error")
-
-		ExceptionUtil util = new ExceptionUtil()
-		String msg = "HTTP method: GET Internal Server Error"
-		Assert.assertEquals(errorString, util.MapAAIExceptionToWorkflowExceptionOld(restFault, mockExecution))
-	}
-
-	@Test
-	public void testBadResponseErrorMessage() {
-		String restFault = "asfafasfasfd"
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("prefix")).thenReturn("test_")
-		when(mockExecution.getVariable("test_ErrorResponse")).thenReturn(null)
-		ExceptionUtil util = new ExceptionUtil()
-		String expected = "<aetgt:WorkflowException xmlns:aetgt=\"http://org.openecomp/mso/workflow/schema/v1\">"+
-		"\n					<aetgt:ErrorMessage>Received error from A&amp;AI ()</aetgt:ErrorMessage>"+
-		"\n					<aetgt:ErrorCode>5000</aetgt:ErrorCode>"+
-	"\n				</aetgt:WorkflowException>";
-		Assert.assertEquals(expected,util.MapAAIExceptionToWorkflowExceptionOld(restFault, mockExecution))
-	}
-
-	@Test
-	public void testMapErrorCode5010(){
-		String msg = "Connect to njcdtl20ew2988:8070  failed: Connection refused: connect"
-		ExceptionUtil util = new ExceptionUtil()
-		Assert.assertEquals("5010",util.MapErrorCode(msg))
-	}
-
-	@Test
-	public void testMapErrorCode5020(){
-		String msg = "Connection timed out"
-		ExceptionUtil util = new ExceptionUtil()
-		Assert.assertEquals("5020",util.MapErrorCode(msg))
-	}
-
-	@Test
-	public void testMapCategoryToErrorCode5100 () {
-		String errorCategory = "OPENSTACK"
-		ExceptionUtil util = new ExceptionUtil()
-		Assert.assertEquals('5100', util.MapCategoryToErrorCode(errorCategory))
-	}
-
-	@Test
-	public void testMapCategoryToErrorCode5110 () {
-		String errorCategory = "IO"
-		ExceptionUtil util = new ExceptionUtil()
-		Assert.assertEquals('5110', util.MapCategoryToErrorCode(errorCategory))
-	}
-
-	@Test
-	public void testMapCategoryToErrorCode7020 () {
-		String errorCategory = "USERDATA"
-		ExceptionUtil util = new ExceptionUtil()
-		Assert.assertEquals('7020', util.MapCategoryToErrorCode(errorCategory))
-	}
-
-	@Test
-	@Ignore
-	public void testMapAdapterExecptionToWorkflowException_UserDataErrorMessage () {
-		String response = """<ns2:TenantException xmlns:ns2=\"http://org.openecomp.mso/tenant\"><category>USERDATA</category><message>Cloud Site [CHCGILNE001] not found</message></ns2:TenantException>""" as String
-		String expected = """WorkflowException[processKey=ExceptionUtil,errorCode=7020,errorMessage=Received error from Tenant Adapter: Cloud Site [CHCGILNE001] not found]""" as String
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("prefix")).thenReturn("test_")
-		when(mockExecution.getVariable("testProcessKey")).thenReturn("ExceptionUtil")
-
-		ExceptionUtil util = new ExceptionUtil()
-		String actual = util.MapAdapterExecptionToWorkflowException(response, mockExecution, "Tenant Adapter")
-
-		verify(mockExecution).setVariable("WorkflowException",expected)
-	}
-
-	@Test
-	@Ignore
-	public void testMapAdapterExecptionToWorkflowException_IOErrorMessage () {
-		String response = """<ns2:TenantException xmlns:ns2=\"http://org.openecomp.mso/tenant\"><category>IO</category><message>[TokenAuth] Connect to test.aic.cip.att.com:5000 [test.aic.cip.att.com/300.200.100.100] failed: Connection refused</message></ns2:TenantException>""" as String
-		String expected = """WorkflowException[processKey=ExceptionUtil,errorCode=5110,errorMessage=Could not communicate with Platform Orchestrator]""" as String
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("prefix")).thenReturn("test_")
-		when(mockExecution.getVariable("testProcessKey")).thenReturn("ExceptionUtil")
-
-		ExceptionUtil util = new ExceptionUtil()
-		String actual = util.MapAdapterExecptionToWorkflowException(response, mockExecution, "Tenant Adapter")
-
-		verify(mockExecution).setVariable("WorkflowException",expected)
-	}
-
-}
+/*- 

+ * ============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.common.scripts

+

+import org.junit.Assert

+import org.junit.runner.RunWith;

+import org.mockito.runners.MockitoJUnitRunner;

+

+

+import org.junit.Ignore;

+

+import static org.mockito.Mockito.*

+

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.junit.Before

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.ExceptionUtil;

+@RunWith(MockitoJUnitRunner.class)

+import org.junit.Test

+

+

+

+class ExceptionUtilTest {

+

+

+	@Before

+	public void init()

+	{

+		MockitoAnnotations.initMocks(this)

+	}

+

+	@Test

+	public void testMapErrorCode5010(){

+		String msg = "Connect to njcdtl20ew2988:8070  failed: Connection refused: connect"

+		ExceptionUtil util = new ExceptionUtil()

+		Assert.assertEquals("5010",util.MapErrorCode(msg))

+	}

+

+	@Test

+	public void testMapErrorCode5020(){

+		String msg = "Connection timed out"

+		ExceptionUtil util = new ExceptionUtil()

+		Assert.assertEquals("5020",util.MapErrorCode(msg))

+	}

+}

diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/FalloutHandlerTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/FalloutHandlerTest.groovy
index 7f691ca..fcc55d0 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/FalloutHandlerTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/FalloutHandlerTest.groovy
@@ -1,311 +1,311 @@
-/*- 
- * ============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.common.scripts
-
-import org.junit.runner.RunWith;
-import static org.mockito.Mockito.*
-import static org.junit.Assert.*;
-
-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.ArgumentCaptor;
-import org.mockito.MockitoAnnotations
-import org.mockito.runners.MockitoJUnitRunner
-import org.openecomp.mso.bpmn.common.scripts.MsoUtils;
-import org.openecomp.mso.bpmn.common.scripts.FalloutHandler;
-
-@RunWith(MockitoJUnitRunner.class)
-class FalloutHandlerTest {
-	
-	public MsoUtils utils = new MsoUtils()
-	
-	@Before
-	public void init() {
-		MockitoAnnotations.initMocks(this)
-	}
-
-	private String falloutHandlerRequest = """
-				<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1" xmlns:ns7="http://org.openecomp/mso/request/types/v1">
-						<ns7:request-information>
-							<ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>
-							<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>
-							<ns7:request-sub-action>CANCEL</ns7:request-sub-action>
-							<ns7:source>OMX</ns7:source>
-							<ns7:order-number>10205000</ns7:order-number>
-							<ns7:order-version>1</ns7:order-version>
-						</ns7:request-information>
-						<sdncadapterworkflow:WorkflowException>
-							<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>
-							<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>
-							<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>
-						</sdncadapterworkflow:WorkflowException>
-				</sdncadapterworkflow:FalloutHandlerRequest>
-		"""
-
-	private String falloutHandlerResponse = """<workflow:FalloutHandlerResponse xmlns:workflow="http://org.openecomp/mso/workflow/schema/v1">
-  <workflow:out>Fallout Handler Failed</workflow:out>
-</workflow:FalloutHandlerResponse>"""
-
-	@Test
-	public void testPreProcessRequest() {
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-
-		when(mockExecution.getVariable("FalloutHandlerRequest")).thenReturn(falloutHandlerRequest)
-		when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC");
-		when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7");
-
-		FalloutHandler falloutHandler = new FalloutHandler()
-		falloutHandler.preProcessRequest(mockExecution)
-
-		/* Initialize all the process request variables in this block */
-		verify(mockExecution).setVariable("prefix","FH_")
-		//verify(mockExecution).setVariable("getLayer3ServiceDetailsV1Response","")
-
-		//These variables are form the input Message to the BPMN
-		verify(mockExecution).setVariable("FH_request_id","")
-		verify(mockExecution).setVariable("FH_request_action","")
-		verify(mockExecution).setVariable("FH_notification-url","")
-		verify(mockExecution).setVariable("FH_mso-bpel-name","")
-		verify(mockExecution).setVariable("FH_ErrorCode", "")
-		verify(mockExecution).setVariable("FH_ErrorMessage", "")
-
-		verify(mockExecution).setVariable("FH_notification-url-Ok", false)
-		verify(mockExecution).setVariable("FH_request_id-Ok", false)
-
-		//These variables are for Get Mso Aai Password Adapter
-		verify(mockExecution).setVariable("FH_deliveryStatus", true)
-
-		//update Response Status to pending ...Adapter variables
-		verify(mockExecution).setVariable("FH_updateResponseStatusPayload", null)
-		verify(mockExecution).setVariable("FH_updateResponseStatusResponse", null)
-
-		//update Request Gamma ...Adapter variables
-		verify(mockExecution).setVariable("FH_updateRequestGammaPayload", "")
-		verify(mockExecution).setVariable("FH_updateRequestGammaResponse", null)
-		verify(mockExecution).setVariable("FH_updateRequestGammaResponseCode", null)
-
-		//update Request Infra ...Adapter variables
-		verify(mockExecution).setVariable("FH_updateRequestInfraPayload", "")
-		verify(mockExecution).setVariable("FH_updateRequestInfraResponse", null)
-		verify(mockExecution).setVariable("FH_updateRequestInfraResponseCode", null)
-
-		//assign False to success variable
-		verify(mockExecution).setVariable("FH_success", true)
-
-		//Set notify status to Failed variable
-		verify(mockExecution).setVariable("FH_NOTIFY_STATUS", "SUCCESS")
-
-		//Set DB update variable
-		verify(mockExecution).setVariable("FH_updateRequestPayload", "")
-		verify(mockExecution).setVariable("FH_updateRequestResponse", null)
-		verify(mockExecution).setVariable("FH_updateRequestResponseCode", null)
-
-		//Auth variables
-		verify(mockExecution).setVariable("BasicAuthHeaderValue","")
-
-		//Response variables
-		verify(mockExecution).setVariable("FalloutHandlerResponse","")
-		verify(mockExecution).setVariable("FH_ErrorResponse", null)
-		verify(mockExecution).setVariable("FH_ResponseCode", "")
-
-		verify(mockExecution).setVariable("FH_request_id-Ok",true)
-		verify(mockExecution).setVariable("FH_request_id","uCPE1020_STUW105_5002")
-		verify(mockExecution).setVariable("FH_request_action","Layer3ServiceActivateRequest")
-		verify(mockExecution).setVariable("FH_source","OMX")
-		verify(mockExecution).setVariable("FH_ErrorCode","Some Error Code - Fallout Handler")
-		verify(mockExecution).setVariable("FH_ErrorMessage","Some Error Message - Fallout Handler")
-
-	}
-
-	@Test
-	public void testpostProcessResponse(){
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
-		when(mockExecution.getVariable("FH_success")).thenReturn(false)
-
-		FalloutHandler falloutHandler = new FalloutHandler()
-		falloutHandler.postProcessResponse(mockExecution)
-
-		// Capture the arguments to setVariable
-		ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
-		ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
-		
-		verify(mockExecution, times(4)).setVariable(captor1.capture(), captor2.capture())
-		List<String> arg2List = captor2.getAllValues()
-		String payloadResponseActual = arg2List.get(1)
-		
-		assertEquals(falloutHandlerResponse.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))
-		
-		verify(mockExecution).setVariable("FH_ResponseCode","500")
-	}
-
-	private String updateRequestPayload = """
-			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
-			<soapenv:Header/>
-			<soapenv:Body>
-			   <req:updateRequest>
-				  <requestId>testReqId</requestId>
-				  <lastModifiedBy>BPEL</lastModifiedBy>
-				  <finalErrorMessage>ErrorMessage</finalErrorMessage>
-				  <finalErrorCode>ErrorCode</finalErrorCode>
-				  <status>FAILED</status>
-				  <responseStatus>NotifyStatus</responseStatus>
-			   </req:updateRequest>
-			</soapenv:Body>
-		 </soapenv:Envelope>
-		"""
-	
-		@Test
-		public void testupdateRequestPayload(){
-	
-			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-			when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
-			when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")
-			when(mockExecution.getVariable("FH_ErrorCode")).thenReturn("ErrorCode")
-			when(mockExecution.getVariable("FH_NOTIFY_STATUS")).thenReturn("NotifyStatus")
-	
-			FalloutHandler falloutHandler = new FalloutHandler()
-			falloutHandler.updateRequestPayload(mockExecution)
-			
-			// Capture the arguments to setVariable
-			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
-			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
-			
-			verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
-			List<String> arg2List = captor2.getAllValues()
-			String payloadRequestActual = arg2List.get(0)
-			
-			assertEquals(updateRequestPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))
-		}
-		
-		private String updateRequestInfraPayload = """
-							<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
-							   <soapenv:Header/>
-							   <soapenv:Body>
-							      <req:updateInfraRequest>
-							         <requestId>testReqId</requestId>
-							         <lastModifiedBy>BPEL</lastModifiedBy>
-									 <statusMessage>ErrorMessage</statusMessage>
-									 <requestStatus>FAILED</requestStatus>
-									 <progress>100</progress>
-							      </req:updateInfraRequest>
-							   </soapenv:Body>
-							</soapenv:Envelope>
-			"""
-		
-			@Test
-			public void testupdateRequestInfraPayload(){
-		
-				ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-				when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
-				when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")
-		
-				FalloutHandler falloutHandler = new FalloutHandler()
-				falloutHandler.updateRequestInfraPayload(mockExecution)
-				
-				// Capture the arguments to setVariable
-				ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
-				ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
-				
-				verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
-				List<String> arg2List = captor2.getAllValues()
-				String payloadRequestActual = arg2List.get(0)
-		
-				assertEquals(updateRequestInfraPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))
-			}
-			
-			private String updateRequestGammaPayload = """
-			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
-			<soapenv:Header/>
-			<soapenv:Body>
-			   <req:updateRequest>
-				  <requestId>testReqId</requestId>
-				  <lastModifiedBy>BPEL</lastModifiedBy>
-				  <finalErrorMessage>ErrorMessage</finalErrorMessage>
-				  <finalErrorCode>ErrorCode</finalErrorCode>
-				  <status>FAILED</status>
-			   </req:updateRequest>
-			</soapenv:Body>
-		 </soapenv:Envelope>
-		"""
-			
-		@Test
-		public void testupdateRequestGammaPayload(){
-	
-			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-			when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
-			when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")
-			when(mockExecution.getVariable("FH_ErrorCode")).thenReturn("ErrorCode")
-
-			FalloutHandler falloutHandler = new FalloutHandler()
-			falloutHandler.updateRequestGammaPayload(mockExecution)
-	
-			// Capture the arguments to setVariable
-			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
-			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
-			
-			verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
-			List<String> arg2List = captor2.getAllValues()
-			String payloadRequestActual = arg2List.get(0)
-			
-			assertEquals(updateRequestGammaPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))
-		}
-	
-		
-		String updateResponseStatusPayload = """
-			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">
-			<soapenv:Header/>
-			<soapenv:Body>
-			   <req:updateResponseStatus>
-				  <requestId>testReqId</requestId>
-				  <lastModifiedBy>BPEL</lastModifiedBy>
-				  <responseStatus>SENDING_FINAL_NOTIFY</responseStatus>
-			   </req:updateResponseStatus>
-			</soapenv:Body>
-		 </soapenv:Envelope>
-		"""
-		
-		@Test
-		public void testupdateResponseStatusPayload(){
-	
-			ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-			when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")
-
-			FalloutHandler falloutHandler = new FalloutHandler()
-			falloutHandler.updateResponseStatusPayload(mockExecution)
-			
-			// Capture the arguments to setVariable
-			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);
-			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);
-			
-			verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())
-			List<String> arg2List = captor2.getAllValues()
-			String payloadResponseActual = arg2List.get(0)
-	
-			assertEquals(updateResponseStatusPayload.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))
-		}
-
+/*- 

+ * ============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.common.scripts

+

+import org.junit.runner.RunWith;

+import static org.mockito.Mockito.*

+import static org.junit.Assert.*;

+

+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.ArgumentCaptor;

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.MsoUtils;

+import org.openecomp.mso.bpmn.common.scripts.FalloutHandler;

+

+@RunWith(MockitoJUnitRunner.class)

+class FalloutHandlerTest {

+	

+	public MsoUtils utils = new MsoUtils()

+	

+	@Before

+	public void init() {

+		MockitoAnnotations.initMocks(this)

+	}

+

+	private String falloutHandlerRequest = """

+				<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1" xmlns:ns7="http://org.openecomp/mso/request/types/v1">

+						<ns7:request-information>

+							<ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>

+							<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>

+							<ns7:request-sub-action>CANCEL</ns7:request-sub-action>

+							<ns7:source>OMX</ns7:source>

+							<ns7:order-number>10205000</ns7:order-number>

+							<ns7:order-version>1</ns7:order-version>

+						</ns7:request-information>

+						<sdncadapterworkflow:WorkflowException>

+							<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>

+							<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>

+							<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>

+						</sdncadapterworkflow:WorkflowException>

+				</sdncadapterworkflow:FalloutHandlerRequest>

+		"""

+

+	private String falloutHandlerResponse = """<workflow:FalloutHandlerResponse xmlns:workflow="http://org.openecomp/mso/workflow/schema/v1">

+  <workflow:out>Fallout Handler Failed</workflow:out>

+</workflow:FalloutHandlerResponse>"""

+

+	@Test

+	public void testPreProcessRequest() {

+

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+

+		when(mockExecution.getVariable("FalloutHandlerRequest")).thenReturn(falloutHandlerRequest)

+		when(mockExecution.getVariable("URN_mso_adapters_db_auth")).thenReturn("757A94191D685FD2092AC1490730A4FC");

+		when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7");

+

+		FalloutHandler falloutHandler = new FalloutHandler()

+		falloutHandler.preProcessRequest(mockExecution)

+

+		/* Initialize all the process request variables in this block */

+		verify(mockExecution).setVariable("prefix","FH_")

+		//verify(mockExecution).setVariable("getLayer3ServiceDetailsV1Response","")

+

+		//These variables are form the input Message to the BPMN

+		verify(mockExecution).setVariable("FH_request_id","")

+		verify(mockExecution).setVariable("FH_request_action","")

+		verify(mockExecution).setVariable("FH_notification-url","")

+		verify(mockExecution).setVariable("FH_mso-bpel-name","")

+		verify(mockExecution).setVariable("FH_ErrorCode", "")

+		verify(mockExecution).setVariable("FH_ErrorMessage", "")

+

+		verify(mockExecution).setVariable("FH_notification-url-Ok", false)

+		verify(mockExecution).setVariable("FH_request_id-Ok", false)

+

+		//These variables are for Get Mso Aai Password Adapter

+		verify(mockExecution).setVariable("FH_deliveryStatus", true)

+

+		//update Response Status to pending ...Adapter variables

+		verify(mockExecution).setVariable("FH_updateResponseStatusPayload", null)

+		verify(mockExecution).setVariable("FH_updateResponseStatusResponse", null)

+

+		//update Request Gamma ...Adapter variables

+		verify(mockExecution).setVariable("FH_updateRequestGammaPayload", "")

+		verify(mockExecution).setVariable("FH_updateRequestGammaResponse", null)

+		verify(mockExecution).setVariable("FH_updateRequestGammaResponseCode", null)

+

+		//update Request Infra ...Adapter variables

+		verify(mockExecution).setVariable("FH_updateRequestInfraPayload", "")

+		verify(mockExecution).setVariable("FH_updateRequestInfraResponse", null)

+		verify(mockExecution).setVariable("FH_updateRequestInfraResponseCode", null)

+

+		//assign False to success variable

+		verify(mockExecution).setVariable("FH_success", true)

+

+		//Set notify status to Failed variable

+		verify(mockExecution).setVariable("FH_NOTIFY_STATUS", "SUCCESS")

+

+		//Set DB update variable

+		verify(mockExecution).setVariable("FH_updateRequestPayload", "")

+		verify(mockExecution).setVariable("FH_updateRequestResponse", null)

+		verify(mockExecution).setVariable("FH_updateRequestResponseCode", null)

+

+		//Auth variables

+		verify(mockExecution).setVariable("BasicAuthHeaderValue","")

+

+		//Response variables

+		verify(mockExecution).setVariable("FalloutHandlerResponse","")

+		verify(mockExecution).setVariable("FH_ErrorResponse", null)

+		verify(mockExecution).setVariable("FH_ResponseCode", "")

+

+		verify(mockExecution).setVariable("FH_request_id-Ok",true)

+		verify(mockExecution).setVariable("FH_request_id","uCPE1020_STUW105_5002")

+		verify(mockExecution).setVariable("FH_request_action","Layer3ServiceActivateRequest")

+		verify(mockExecution).setVariable("FH_source","OMX")

+		verify(mockExecution).setVariable("FH_ErrorCode","Some Error Code - Fallout Handler")

+		verify(mockExecution).setVariable("FH_ErrorMessage","Some Error Message - Fallout Handler")

+

+	}

+

+	@Test

+	public void testpostProcessResponse(){

+

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+		when(mockExecution.getVariable("FH_success")).thenReturn(false)

+

+		FalloutHandler falloutHandler = new FalloutHandler()

+		falloutHandler.postProcessResponse(mockExecution)

+

+		// Capture the arguments to setVariable

+		ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);

+		ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);

+		

+		verify(mockExecution, times(4)).setVariable(captor1.capture(), captor2.capture())

+		List<String> arg2List = captor2.getAllValues()

+		String payloadResponseActual = arg2List.get(1)

+		

+		assertEquals(falloutHandlerResponse.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))

+		

+		verify(mockExecution).setVariable("FH_ResponseCode","500")

+	}

+

+	private String updateRequestPayload = """

+			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">

+			<soapenv:Header/>

+			<soapenv:Body>

+			   <req:updateRequest>

+				  <requestId>testReqId</requestId>

+				  <lastModifiedBy>BPEL</lastModifiedBy>

+				  <finalErrorMessage>ErrorMessage</finalErrorMessage>

+				  <finalErrorCode>ErrorCode</finalErrorCode>

+				  <status>FAILED</status>

+				  <responseStatus>NotifyStatus</responseStatus>

+			   </req:updateRequest>

+			</soapenv:Body>

+		 </soapenv:Envelope>

+		"""

+	

+		@Test

+		public void testupdateRequestPayload(){

+	

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")

+			when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")

+			when(mockExecution.getVariable("FH_ErrorCode")).thenReturn("ErrorCode")

+			when(mockExecution.getVariable("FH_NOTIFY_STATUS")).thenReturn("NotifyStatus")

+	

+			FalloutHandler falloutHandler = new FalloutHandler()

+			falloutHandler.updateRequestPayload(mockExecution)

+			

+			// Capture the arguments to setVariable

+			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);

+			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);

+			

+			verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())

+			List<String> arg2List = captor2.getAllValues()

+			String payloadRequestActual = arg2List.get(0)

+			

+			assertEquals(updateRequestPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))

+		}

+		

+		private String updateRequestInfraPayload = """

+							<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">

+							   <soapenv:Header/>

+							   <soapenv:Body>

+							      <req:updateInfraRequest>

+							         <requestId>testReqId</requestId>

+							         <lastModifiedBy>BPEL</lastModifiedBy>

+									 <statusMessage>ErrorMessage</statusMessage>

+									 <requestStatus>FAILED</requestStatus>

+									 <progress>100</progress>

+							      </req:updateInfraRequest>

+							   </soapenv:Body>

+							</soapenv:Envelope>

+			"""

+		

+			@Test

+			public void testupdateRequestInfraPayload(){

+		

+				ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+				when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")

+				when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")

+		

+				FalloutHandler falloutHandler = new FalloutHandler()

+				falloutHandler.updateRequestInfraPayload(mockExecution)

+				

+				// Capture the arguments to setVariable

+				ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);

+				ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);

+				

+				verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())

+				List<String> arg2List = captor2.getAllValues()

+				String payloadRequestActual = arg2List.get(0)

+		

+				assertEquals(updateRequestInfraPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))

+			}

+			

+			private String updateRequestGammaPayload = """

+			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">

+			<soapenv:Header/>

+			<soapenv:Body>

+			   <req:updateRequest>

+				  <requestId>testReqId</requestId>

+				  <lastModifiedBy>BPEL</lastModifiedBy>

+				  <finalErrorMessage>ErrorMessage</finalErrorMessage>

+				  <finalErrorCode>ErrorCode</finalErrorCode>

+				  <status>FAILED</status>

+			   </req:updateRequest>

+			</soapenv:Body>

+		 </soapenv:Envelope>

+		"""

+			

+		@Test

+		public void testupdateRequestGammaPayload(){

+	

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")

+			when(mockExecution.getVariable("FH_ErrorMessage")).thenReturn("ErrorMessage")

+			when(mockExecution.getVariable("FH_ErrorCode")).thenReturn("ErrorCode")

+

+			FalloutHandler falloutHandler = new FalloutHandler()

+			falloutHandler.updateRequestGammaPayload(mockExecution)

+	

+			// Capture the arguments to setVariable

+			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);

+			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);

+			

+			verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())

+			List<String> arg2List = captor2.getAllValues()

+			String payloadRequestActual = arg2List.get(0)

+			

+			assertEquals(updateRequestGammaPayload.replaceAll("\\s+", ""), payloadRequestActual.replaceAll("\\s+", ""))

+		}

+	

+		

+		String updateResponseStatusPayload = """

+			<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:req="http://org.openecomp.mso/requestsdb">

+			<soapenv:Header/>

+			<soapenv:Body>

+			   <req:updateResponseStatus>

+				  <requestId>testReqId</requestId>

+				  <lastModifiedBy>BPEL</lastModifiedBy>

+				  <responseStatus>SENDING_FINAL_NOTIFY</responseStatus>

+			   </req:updateResponseStatus>

+			</soapenv:Body>

+		 </soapenv:Envelope>

+		"""

+		

+		@Test

+		public void testupdateResponseStatusPayload(){

+	

+			ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+			when(mockExecution.getVariable("FH_request_id")).thenReturn("testReqId")

+

+			FalloutHandler falloutHandler = new FalloutHandler()

+			falloutHandler.updateResponseStatusPayload(mockExecution)

+			

+			// Capture the arguments to setVariable

+			ArgumentCaptor<String> captor1 = ArgumentCaptor.forClass(String.class);

+			ArgumentCaptor<String> captor2 = ArgumentCaptor.forClass(String.class);

+			

+			verify(mockExecution, times(1)).setVariable(captor1.capture(), captor2.capture())

+			List<String> arg2List = captor2.getAllValues()

+			String payloadResponseActual = arg2List.get(0)

+	

+			assertEquals(updateResponseStatusPayload.replaceAll("\\s+", ""), payloadResponseActual.replaceAll("\\s+", ""))

+		}

+

 }
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/SDNCAdapterTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/SDNCAdapterTest.groovy
index f71e4d2..014dba6 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/SDNCAdapterTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/SDNCAdapterTest.groovy
@@ -1,948 +1,948 @@
-/*- 
- * ============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.common.scripts;
-
-import static org.mockito.Mockito.*
-
-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.junit.Before
-import org.junit.Test
-import org.junit.runner.RunWith
-import org.mockito.MockitoAnnotations
-import org.mockito.runners.MockitoJUnitRunner
-import org.mockito.internal.debugging.MockitoDebuggerImpl
-import org.openecomp.mso.bpmn.common.scripts.SDNCAdapter;
-
-import org.openecomp.mso.bpmn.mock.FileUtil
-
-@RunWith(MockitoJUnitRunner.class)
-public class SDNCAdapterTest {
-	
-	@Before
-	public void init()
-	{
-		MockitoAnnotations.initMocks(this)
-		System.setProperty("jboss.qualified.host.name","myhost.att.com")
-	}
-
-	
-	def workflowResponse = """<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>testRequestId</tag0:RequestId>
-         <tag0:ResponseCode>200</tag0:ResponseCode>
-         <tag0:ResponseMessage>OK</tag0:ResponseMessage>
-      </tag0:CallbackHeader>
-      <tag0:RequestData xsi:type="xs:string">				&lt;layer3-service-list xmlns="com:att:sdnctl:l3api"&gt;
-					&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;
-					&lt;service-status&gt;
-						&lt;rpc-name&gt;service-configuration-operation&lt;/rpc-name&gt;
-						&lt;rpc-action&gt;activate&lt;/rpc-action&gt;
-						&lt;request-status&gt;synccomplete&lt;/request-status&gt;
-						&lt;final-indicator&gt;N&lt;/final-indicator&gt;
-						&lt;l3sdn-action&gt;Layer3ServiceActivateRequest&lt;/l3sdn-action&gt;
-						&lt;l3sdn-subaction&gt;SUPP&lt;/l3sdn-subaction&gt;
-						&lt;response-timestamp&gt;2015-04-28T21:32:11.386Z&lt;/response-timestamp&gt;
-					&lt;/service-status&gt;
-					&lt;service-data&gt;
-						&lt;internet-evc-access-information&gt;
-							&lt;ip-version&gt;ds&lt;/ip-version&gt;
-							&lt;internet-evc-speed-value&gt;8&lt;/internet-evc-speed-value&gt;
-							&lt;internet-evc-speed-units&gt;Mbps&lt;/internet-evc-speed-units&gt;
-						&lt;/internet-evc-access-information&gt;
-						&lt;vr-lan xmlns="com:att:sdnctl:l3api"&gt;
-							&lt;vr-lan-interface&gt;
-								&lt;static-routes&gt;
-									&lt;v6-static-routes&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;
-										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;
-									&lt;/v6-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.1&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-									&lt;v6-static-routes&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;
-										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;
-									&lt;/v6-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.2&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.3&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-								&lt;/static-routes&gt;
-								&lt;dhcp&gt;
-									&lt;v6-dhcp-server-enabled&gt;N&lt;/v6-dhcp-server-enabled&gt;
-									&lt;v4-dhcp-server-enabled&gt;Y&lt;/v4-dhcp-server-enabled&gt;
-									&lt;use-v6-default-pool&gt;N&lt;/use-v6-default-pool&gt;
-									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;
-									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;
-									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v4-address&gt;192.168.1.8&lt;/excluded-v4-address&gt;
-									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;
-									&lt;v4-dhcp-pools&gt;
-										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.1&lt;/v4-dhcp-relay-next-hop-address&gt;
-										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.5&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.1&lt;/v4-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-pool-prefix&gt;192.155.2.3&lt;/v4-dhcp-pool-prefix&gt;
-									&lt;/v4-dhcp-pools&gt;
-									&lt;v4-dhcp-pools&gt;
-										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.2&lt;/v4-dhcp-relay-next-hop-address&gt;
-										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.2&lt;/v4-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-pool-prefix&gt;192.155.2.4&lt;/v4-dhcp-pool-prefix&gt;
-									&lt;/v4-dhcp-pools&gt;									
-									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;
-									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v6-address&gt;1:5&lt;/excluded-v6-address&gt;
-									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;
-									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v6-address&gt;1:6&lt;/excluded-v6-address&gt;
-									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;
-									&lt;v6-dhcp-pools&gt;
-										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;
-										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;
-									&lt;/v6-dhcp-pools&gt;
-									&lt;v6-dhcp-pools&gt;
-										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;
-										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;
-									&lt;/v6-dhcp-pools&gt;									
-								&lt;/dhcp&gt;
-								&lt;firewall-lite&gt;
-									&lt;stateful-firewall-lite-v6-enabled&gt;N&lt;/stateful-firewall-lite-v6-enabled&gt;
-									&lt;stateful-firewall-lite-v4-enabled&gt;Y&lt;/stateful-firewall-lite-v4-enabled&gt;
-									&lt;v4-firewall-packet-filters&gt;
-									  &lt;v4-firewall-prefix&gt;0.0.0.1&lt;/v4-firewall-prefix&gt;
-									  &lt;v4-firewall-prefix-length&gt;1&lt;/v4-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;1&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;1&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v4-firewall-packet-filters&gt;
-									&lt;v4-firewall-packet-filters&gt;
-									  &lt;v4-firewall-prefix&gt;0.0.0.2&lt;/v4-firewall-prefix&gt;
-									  &lt;v4-firewall-prefix-length&gt;2&lt;/v4-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;2&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;2&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v4-firewall-packet-filters&gt;
-									&lt;v6-firewall-packet-filters&gt;
-									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;
-									  &lt;v6-firewall-prefix-length&gt;0&lt;/v6-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;3&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;3&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v6-firewall-packet-filters&gt;
-									&lt;v6-firewall-packet-filters&gt;
-									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;
-									  &lt;v6-firewall-prefix-length&gt;1&lt;/v6-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;4&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;4&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v6-firewall-packet-filters&gt;
-								&lt;/firewall-lite&gt;
-								&lt;pat&gt;
-									&lt;v4-pat-pools&gt;
-										&lt;v4-pat-pool-prefix&gt;192.168.1.44&lt;/v4-pat-pool-prefix&gt;
-										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.5&lt;/v4-pat-pool-next-hop-address&gt;
-										&lt;v4-pat-pool-prefix-length&gt;0&lt;/v4-pat-pool-prefix-length&gt;
-									&lt;/v4-pat-pools&gt;
-									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;
-									&lt;v4-pat-enabled&gt;N&lt;/v4-pat-enabled&gt;
-									&lt;v4-pat-pools&gt;
-										&lt;v4-pat-pool-prefix&gt;192.168.1.45&lt;/v4-pat-pool-prefix&gt;
-										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.6&lt;/v4-pat-pool-next-hop-address&gt;
-										&lt;v4-pat-pool-prefix-length&gt;28&lt;/v4-pat-pool-prefix-length&gt;
-									&lt;/v4-pat-pools&gt;
-								&lt;/pat&gt;
-								&lt;nat&gt;
-								  &lt;v4-nat-enabled&gt;Y&lt;/v4-nat-enabled&gt;
-								  &lt;v4-nat-mapping-entries&gt;
-								    &lt;v4-nat-internal&gt;0.0.0.0&lt;/v4-nat-internal&gt;
-								    &lt;v4-nat-next-hop-address&gt;0.0.0.0&lt;/v4-nat-next-hop-address&gt;
-								    &lt;v4-nat-external&gt;0.0.0.0&lt;/v4-nat-external&gt;
-								  &lt;/v4-nat-mapping-entries&gt;
-								  &lt;v4-nat-mapping-entries&gt;
-								    &lt;v4-nat-internal&gt;0.0.0.1&lt;/v4-nat-internal&gt;
-								    &lt;v4-nat-next-hop-address&gt;0.0.0.1&lt;/v4-nat-next-hop-address&gt;
-								    &lt;v4-nat-external&gt;0.0.0.1&lt;/v4-nat-external&gt;
-								  &lt;/v4-nat-mapping-entries&gt;
-								&lt;/nat&gt;
-								&lt;vr-designation&gt;primary&lt;/vr-designation&gt;
-								&lt;v4-vce-loopback-address&gt;162.200.3.144&lt;/v4-vce-loopback-address&gt;
-								&lt;v6-vr-lan-prefix-length&gt;64&lt;/v6-vr-lan-prefix-length&gt;
-								&lt;v6-vce-wan-address&gt;2001:1890:12e3:2da::&lt;/v6-vce-wan-address&gt;
-								&lt;v6-vr-lan-prefix&gt;2620:0:10d0:f:ffff:ffff:ffff:fffe&lt;/v6-vr-lan-prefix&gt;
-								&lt;v4-vr-lan-prefix-length&gt;24&lt;/v4-vr-lan-prefix-length&gt;
-								&lt;v4-vr-lan-prefix&gt;10.192.27.254&lt;/v4-vr-lan-prefix&gt;
-								&lt;v4-public-lan-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.2&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.1&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.72&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.71&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.68&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.67&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-								&lt;/v4-public-lan-prefixes&gt;
-								&lt;v6-public-lan-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:3da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:4da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-								&lt;/v6-public-lan-prefixes&gt;
-							&lt;/vr-lan-interface&gt;
-							&lt;routing-protocol&gt;none&lt;/routing-protocol&gt;
-						&lt;/vr-lan&gt;
-&lt;ucpe-vms-service-information&gt;				
- &lt;transport-service-information&gt;
-    &lt;transport-service-type&gt;AVPN&lt;/transport-service-type&gt;
-	&lt;access-circuit-info&gt;
-	   &lt;access-circuit-id&gt;1&lt;/access-circuit-id&gt;
-	   &lt;dual-mode&gt;Active&lt;/dual-mode&gt;
-	&lt;/access-circuit-info&gt;
-	&lt;access-circuit-info&gt;
-	   &lt;access-circuit-id&gt;2&lt;/access-circuit-id&gt;
-	   &lt;dual-mode&gt;Standby&lt;/dual-mode&gt;
-	&lt;/access-circuit-info&gt;	
- &lt;/transport-service-information&gt;
- &lt;ucpe-information&gt;
-    &lt;ucpe-host-name&gt;hostname&lt;/ucpe-host-name&gt;
-    &lt;ucpe-activation-code&gt;activecode&lt;/ucpe-activation-code&gt;
-    &lt;out-of-band-management-modem&gt;OOB&lt;/out-of-band-management-modem&gt;
-  &lt;/ucpe-information&gt;
-  &lt;vnf-list&gt;
-	&lt;vnf-information&gt; 
-		&lt;vnf-instance-id&gt;1&lt;/vnf-instance-id&gt; 
-		&lt;vnf-sequence-number&gt;1&lt;/vnf-sequence-number&gt;
-		&lt;vnf-type&gt;ZZ&lt;/vnf-type&gt;
-		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;
-		&lt;vnf-model&gt;MODEL1&lt;/vnf-model&gt;
-		&lt;vnf-id&gt;1&lt;/vnf-id&gt;
-		&lt;prov-status&gt;1&lt;/prov-status&gt;
-		&lt;operational-state&gt;1&lt;/operational-state&gt;
-		&lt;orchestration-status&gt;1&lt;/orchestration-status&gt;
-		&lt;equipment-role&gt;1&lt;/equipment-role&gt;
-    &lt;/vnf-information&gt;
-	&lt;vnf-information&gt; 
-		&lt;vnf-instance-id&gt;2&lt;/vnf-instance-id&gt; 
-		&lt;vnf-sequence-number&gt;2&lt;/vnf-sequence-number&gt;
-		&lt;vnf-type&gt;HY&lt;/vnf-type&gt;
-		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;
-		&lt;vnf-model&gt;MODEL2&lt;/vnf-model&gt;
-		&lt;vnf-id&gt;2&lt;/vnf-id&gt;
-		&lt;prov-status&gt;2&lt;/prov-status&gt;
-		&lt;operational-state&gt;2&lt;/operational-state&gt;
-		&lt;orchestration-status&gt;2&lt;/orchestration-status&gt;
-		&lt;equipment-role&gt;2&lt;/equipment-role&gt;
-    &lt;/vnf-information&gt;					
-  &lt;/vnf-list&gt;
- &lt;/ucpe-vms-service-information&gt;										
-						&lt;request-information&gt;
-							&lt;request-action&gt;Layer3ServiceActivateRequest&lt;/request-action&gt;
-							&lt;order-number&gt;4281555&lt;/order-number&gt;
-							&lt;request-id&gt;155415ab-b4a7-4382-b4c6-d17d9sm42855&lt;/request-id&gt;
-							&lt;notification-url&gt;https://csi-tst-q22.it.att.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws&lt;/notification-url&gt;
-							&lt;source&gt;OMX&lt;/source&gt;
-							&lt;order-version&gt;1&lt;/order-version&gt;
-						&lt;/request-information&gt;
-						&lt;sdnc-request-header&gt;
-							&lt;svc-action&gt;activate&lt;/svc-action&gt;
-							&lt;svc-notification-url&gt;https://msojra.mtsnjdcp1.aic.cip.att.com:8443/adapters/rest/SDNCNotify&lt;/svc-notification-url&gt;
-							&lt;svc-request-id&gt;5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760&lt;/svc-request-id&gt;
-						&lt;/sdnc-request-header&gt;
-						&lt;l2-homing-information&gt;
-							&lt;topology&gt;MultiPoint&lt;/topology&gt;
-							&lt;preferred-aic-clli&gt;MTSNJA4LCP1&lt;/preferred-aic-clli&gt;
-							&lt;evc-name&gt;AS/VLXM/003717//SW&lt;/evc-name&gt;
-						&lt;/l2-homing-information&gt;
-						&lt;service-information&gt;
-							&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;
-							&lt;subscriber-name&gt;ST E2E Test42855_1300004281555&lt;/subscriber-name&gt;
-							&lt;service-type&gt;SDN-ETHERNET-INTERNET&lt;/service-type&gt;
-						&lt;/service-information&gt;
-						&lt;internet-service-change-details&gt;
-							&lt;internet-evc-speed-value&gt;10&lt;/internet-evc-speed-value&gt;
-							&lt;internet-evc-speed-units&gt;Kbps&lt;/internet-evc-speed-units&gt;
-							&lt;t-provided-v4-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-							   &lt;v4-lan-public-prefix&gt;192.168.1.15&lt;/v4-lan-public-prefix&gt;
-							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-							&lt;/t-provided-v4-lan-public-prefixes&gt;
-							&lt;t-provided-v4-lan-public-prefixes&gt;
-							   &lt;request-index&gt;2&lt;/request-index&gt;
-							   &lt;v4-next-hop-address&gt;192.168.1.16&lt;/v4-next-hop-address&gt;
-							   &lt;v4-lan-public-prefix&gt;192.168.1.16&lt;/v4-lan-public-prefix&gt;
-							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-							&lt;/t-provided-v4-lan-public-prefixes&gt;
-							&lt;t-provided-v6-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-							&lt;/t-provided-v6-lan-public-prefixes&gt;
-							&lt;t-provided-v6-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-							&lt;/t-provided-v6-lan-public-prefixes&gt;
-						&lt;/internet-service-change-details&gt;
-					&lt;/service-data&gt;
-				&lt;/layer3-service-list&gt;
-</tag0:RequestData>
-   </sdncadapterworkflow:response-data>
-</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
-
-	String sdncAdapterRequest = """
-			<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
-			<SOAP-ENV:Body>
-			<aetgt:SDNCAdapterRequest xmlns:aetgt="http://org.openecomp/workflow/sdnc/adapter/schema/v1" xmlns:sdncadaptersc="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-			<sdncadapter:RequestHeader xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-			<sdncadapter:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</sdncadapter:RequestId>
-			<sdncadapter:SvcAction>query</sdncadapter:SvcAction>
-			<sdncadapter:SvcOperation>services/layer3-service-list/AS%2FVLXM%2F000199%2F%2FSB_INTERNET</sdncadapter:SvcOperation>
-			<sdncadapter:CallbackUrl>http://myhost.att.com:28080/mso/sdncAdapterCallbackServiceImpl</sdncadapter:CallbackUrl>
-			</sdncadapter:RequestHeader>
-			<sdncadaptersc:RequestData><rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"
-              contentType="text/xml">
-   <service-request xmlns="http://org.openecomp/mso/request/details/schema/v1">
-      <request-information>
-         <request-id>12570a36-7388-4c0a-bec4-189ce3kg9956</request-id>
-         <request-action>GetLayer3ServiceDetailsRequest</request-action>
-         <source>OMX</source>
-      </request-information>
-      <service-information>
-         <service-type>SDN-ETHERNET-INTERNET</service-type>
-         <service-instance-id>PD/VLXM/003717//SW_INTERNET</service-instance-id>
-      </service-information>
-   </service-request>
-</rest:payload></sdncadaptersc:RequestData></aetgt:SDNCAdapterRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>"""
-	
-def sdncAdapterResponse = """<sdncadapterworkflow:SDNCAdapterWorkflowResponse 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>39542e39-ccc3-4d1a-8b79-04ce88526613</tag0:RequestId>
-   <tag0:ResponseCode>404</tag0:ResponseCode>
-   <tag0:ResponseMessage>Error processing request to SDNC. Not Found.
-			https://sdncodl.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.
-			SDNC Returned-[error-type:application, error-tag:data-missing,
-			error-message:Request could not be completed because the relevant
-			data model content does not exist.]</tag0:ResponseMessage>
-</tag0:CallbackHeader>
-</sdncadapterworkflow:response-data>
-</sdncadapterworkflow:SDNCAdapterWorkflowResponse>
-"""
-
-def workflowErrorResponse = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
-								<aetgt:ErrorMessage>Received error from SDN-C: Error processing request to SDNC. Not Found.
-			https://sdncodl.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.
-			SDNC Returned-[error-type:application, error-tag:data-missing,
-			error-message:Request could not be completed because the relevant
-			data model content does not exist.]</aetgt:ErrorMessage>
-								<aetgt:ErrorCode>5300</aetgt:ErrorCode>
-								<aetgt:SourceSystemErrorCode>404</aetgt:SourceSystemErrorCode>
-								</aetgt:WorkflowException>"""
-
-def workflowErrorResponse1 = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">
-					<aetgt:ErrorMessage>Invalid Callback Response from SDNC Adapter</aetgt:ErrorMessage>
-					<aetgt:ErrorCode>5300</aetgt:ErrorCode>
-				  </aetgt:WorkflowException>"""
-			
-def     enhancedCallbackRequestData =
-    """<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">				<layer3-service-list xmlns="com:att:sdnctl:l3api">
-					<service-instance-id>FK/VLXM/003717//SW_INTERNET</service-instance-id>
-					<service-status>
-						<rpc-name>service-configuration-operation</rpc-name>
-						<rpc-action>activate</rpc-action>
-						<request-status>synccomplete</request-status>
-						<final-indicator>N</final-indicator>
-						<l3sdn-action>Layer3ServiceActivateRequest</l3sdn-action>
-						<l3sdn-subaction>SUPP</l3sdn-subaction>
-						<response-timestamp>2015-04-28T21:32:11.386Z</response-timestamp>
-					</service-status>
-					<service-data>
-						<internet-evc-access-information>
-							<ip-version>ds</ip-version>
-							<internet-evc-speed-value>8</internet-evc-speed-value>
-							<internet-evc-speed-units>Mbps</internet-evc-speed-units>
-						</internet-evc-access-information>
-						<vr-lan xmlns="com:att:sdnctl:l3api">
-							<vr-lan-interface>
-								<static-routes>
-									<v6-static-routes>
-										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-										<v6-static-route-prefix>2001:1890:12e3:2da::</v6-static-route-prefix>
-										<v6-static-route-prefix-length>28</v6-static-route-prefix-length>
-									</v6-static-routes>
-									<v4-static-routes>
-										<v4-static-route-prefix>255.255.252.1</v4-static-route-prefix>
-										<v4-next-hop-address>192.168.1.15</v4-next-hop-address>
-										<v4-static-route-prefix-length>28</v4-static-route-prefix-length>
-									</v4-static-routes>
-									<v6-static-routes>
-										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-										<v6-static-route-prefix>2001:1890:12e3:2da::</v6-static-route-prefix>
-										<v6-static-route-prefix-length>28</v6-static-route-prefix-length>
-									</v6-static-routes>
-									<v4-static-routes>
-										<v4-static-route-prefix>255.255.252.2</v4-static-route-prefix>
-										<v4-next-hop-address>192.168.1.15</v4-next-hop-address>
-										<v4-static-route-prefix-length>28</v4-static-route-prefix-length>
-									</v4-static-routes>
-									<v4-static-routes>
-										<v4-static-route-prefix>255.255.252.3</v4-static-route-prefix>
-										<v4-next-hop-address>192.168.1.15</v4-next-hop-address>
-										<v4-static-route-prefix-length>28</v4-static-route-prefix-length>
-									</v4-static-routes>
-								</static-routes>
-								<dhcp>
-									<v6-dhcp-server-enabled>N</v6-dhcp-server-enabled>
-									<v4-dhcp-server-enabled>Y</v4-dhcp-server-enabled>
-									<use-v6-default-pool>N</use-v6-default-pool>
-									<excluded-v4-dhcp-addresses-from-default-pool>
-									  <excluded-v4-address>192.168.1.7</excluded-v4-address>
-									</excluded-v4-dhcp-addresses-from-default-pool>
-									<excluded-v4-dhcp-addresses-from-default-pool>
-									  <excluded-v4-address>192.168.1.8</excluded-v4-address>
-									</excluded-v4-dhcp-addresses-from-default-pool>
-									<v4-dhcp-pools>
-										<v4-dhcp-relay-next-hop-address>1.1.1.1</v4-dhcp-relay-next-hop-address>
-										<v4-dhcp-pool-prefix-length>28</v4-dhcp-pool-prefix-length>
-										<excluded-v4-addresses>
-											<excluded-v4-address>192.168.1.5</excluded-v4-address>
-										</excluded-v4-addresses>
-										<v4-dhcp-relay-gateway-address>2.2.2.1</v4-dhcp-relay-gateway-address>
-										<excluded-v4-addresses>
-											<excluded-v4-address>192.168.1.6</excluded-v4-address>
-										</excluded-v4-addresses>
-										<v4-dhcp-pool-prefix>192.155.2.3</v4-dhcp-pool-prefix>
-									</v4-dhcp-pools>
-									<v4-dhcp-pools>
-										<v4-dhcp-relay-next-hop-address>1.1.1.2</v4-dhcp-relay-next-hop-address>
-										<v4-dhcp-pool-prefix-length>28</v4-dhcp-pool-prefix-length>
-										<excluded-v4-addresses>
-											<excluded-v4-address>192.168.1.6</excluded-v4-address>
-										</excluded-v4-addresses>
-										<v4-dhcp-relay-gateway-address>2.2.2.2</v4-dhcp-relay-gateway-address>
-										<excluded-v4-addresses>
-											<excluded-v4-address>192.168.1.7</excluded-v4-address>
-										</excluded-v4-addresses>
-										<v4-dhcp-pool-prefix>192.155.2.4</v4-dhcp-pool-prefix>
-									</v4-dhcp-pools>									
-									<use-v4-default-pool>Y</use-v4-default-pool>
-									<excluded-v6-dhcp-addresses-from-default-pool>
-									  <excluded-v6-address>1:5</excluded-v6-address>
-									</excluded-v6-dhcp-addresses-from-default-pool>
-									<excluded-v6-dhcp-addresses-from-default-pool>
-									  <excluded-v6-address>1:6</excluded-v6-address>
-									</excluded-v6-dhcp-addresses-from-default-pool>
-									<v6-dhcp-pools>
-										<v6-dhcp-relay-next-hop-address>4:4</v6-dhcp-relay-next-hop-address>
-										<v6-dhcp-pool-prefix-length>28</v6-dhcp-pool-prefix-length>
-										<excluded-v6-addresses>
-											<excluded-v6-address>1:1</excluded-v6-address>
-										</excluded-v6-addresses>
-										<v6-dhcp-relay-gateway-address>3:3</v6-dhcp-relay-gateway-address>
-										<excluded-v6-addresses>
-											<excluded-v6-address>2:2</excluded-v6-address>
-										</excluded-v6-addresses>
-										<v6-dhcp-pool-prefix>0:0</v6-dhcp-pool-prefix>
-									</v6-dhcp-pools>
-									<v6-dhcp-pools>
-										<v6-dhcp-relay-next-hop-address>4:4</v6-dhcp-relay-next-hop-address>
-										<v6-dhcp-pool-prefix-length>28</v6-dhcp-pool-prefix-length>
-										<excluded-v6-addresses>
-											<excluded-v6-address>1:1</excluded-v6-address>
-										</excluded-v6-addresses>
-										<v6-dhcp-relay-gateway-address>3:3</v6-dhcp-relay-gateway-address>
-										<excluded-v6-addresses>
-											<excluded-v6-address>2:2</excluded-v6-address>
-										</excluded-v6-addresses>
-										<v6-dhcp-pool-prefix>0:0</v6-dhcp-pool-prefix>
-									</v6-dhcp-pools>									
-								</dhcp>
-								<firewall-lite>
-									<stateful-firewall-lite-v6-enabled>N</stateful-firewall-lite-v6-enabled>
-									<stateful-firewall-lite-v4-enabled>Y</stateful-firewall-lite-v4-enabled>
-									<v4-firewall-packet-filters>
-									  <v4-firewall-prefix>0.0.0.1</v4-firewall-prefix>
-									  <v4-firewall-prefix-length>1</v4-firewall-prefix-length>
-									  <allow-icmp-ping>Y</allow-icmp-ping>
-									  <udp-ports>
-									    <port-number>1</port-number>
-									  </udp-ports>
-									  <tcp-ports>
-									    <port-number>1</port-number>
-									  </tcp-ports>
-									</v4-firewall-packet-filters>
-									<v4-firewall-packet-filters>
-									  <v4-firewall-prefix>0.0.0.2</v4-firewall-prefix>
-									  <v4-firewall-prefix-length>2</v4-firewall-prefix-length>
-									  <allow-icmp-ping>Y</allow-icmp-ping>
-									  <udp-ports>
-									    <port-number>2</port-number>
-									  </udp-ports>
-									  <tcp-ports>
-									    <port-number>2</port-number>
-									  </tcp-ports>
-									</v4-firewall-packet-filters>
-									<v6-firewall-packet-filters>
-									  <v6-firewall-prefix>:</v6-firewall-prefix>
-									  <v6-firewall-prefix-length>0</v6-firewall-prefix-length>
-									  <allow-icmp-ping>Y</allow-icmp-ping>
-									  <udp-ports>
-									    <port-number>3</port-number>
-									  </udp-ports>
-									  <tcp-ports>
-									    <port-number>3</port-number>
-									  </tcp-ports>
-									</v6-firewall-packet-filters>
-									<v6-firewall-packet-filters>
-									  <v6-firewall-prefix>:</v6-firewall-prefix>
-									  <v6-firewall-prefix-length>1</v6-firewall-prefix-length>
-									  <allow-icmp-ping>Y</allow-icmp-ping>
-									  <udp-ports>
-									    <port-number>4</port-number>
-									  </udp-ports>
-									  <tcp-ports>
-									    <port-number>4</port-number>
-									  </tcp-ports>
-									</v6-firewall-packet-filters>
-								</firewall-lite>
-								<pat>
-									<v4-pat-pools>
-										<v4-pat-pool-prefix>192.168.1.44</v4-pat-pool-prefix>
-										<v4-pat-pool-next-hop-address>192.168.1.5</v4-pat-pool-next-hop-address>
-										<v4-pat-pool-prefix-length>0</v4-pat-pool-prefix-length>
-									</v4-pat-pools>
-									<use-v4-default-pool>Y</use-v4-default-pool>
-									<v4-pat-enabled>N</v4-pat-enabled>
-									<v4-pat-pools>
-										<v4-pat-pool-prefix>192.168.1.45</v4-pat-pool-prefix>
-										<v4-pat-pool-next-hop-address>192.168.1.6</v4-pat-pool-next-hop-address>
-										<v4-pat-pool-prefix-length>28</v4-pat-pool-prefix-length>
-									</v4-pat-pools>
-								</pat>
-								<nat>
-								  <v4-nat-enabled>Y</v4-nat-enabled>
-								  <v4-nat-mapping-entries>
-								    <v4-nat-internal>0.0.0.0</v4-nat-internal>
-								    <v4-nat-next-hop-address>0.0.0.0</v4-nat-next-hop-address>
-								    <v4-nat-external>0.0.0.0</v4-nat-external>
-								  </v4-nat-mapping-entries>
-								  <v4-nat-mapping-entries>
-								    <v4-nat-internal>0.0.0.1</v4-nat-internal>
-								    <v4-nat-next-hop-address>0.0.0.1</v4-nat-next-hop-address>
-								    <v4-nat-external>0.0.0.1</v4-nat-external>
-								  </v4-nat-mapping-entries>
-								</nat>
-								<vr-designation>primary</vr-designation>
-								<v4-vce-loopback-address>162.200.3.144</v4-vce-loopback-address>
-								<v6-vr-lan-prefix-length>64</v6-vr-lan-prefix-length>
-								<v6-vce-wan-address>2001:1890:12e3:2da::</v6-vce-wan-address>
-								<v6-vr-lan-prefix>2620:0:10d0:f:ffff:ffff:ffff:fffe</v6-vr-lan-prefix>
-								<v4-vr-lan-prefix-length>24</v4-vr-lan-prefix-length>
-								<v4-vr-lan-prefix>10.192.27.254</v4-vr-lan-prefix>
-								<v4-public-lan-prefixes>
-									<t-provided-v4-lan-public-prefixes>
-										<request-index>1</request-index>
-										<v4-next-hop-address>192.168.1.2</v4-next-hop-address>
-										<v4-lan-public-prefix>192.168.1.1</v4-lan-public-prefix>
-										<v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>
-									</t-provided-v4-lan-public-prefixes>
-									<t-provided-v4-lan-public-prefixes>
-										<request-index>1</request-index>
-										<v4-next-hop-address>192.168.1.72</v4-next-hop-address>
-										<v4-lan-public-prefix>192.168.1.71</v4-lan-public-prefix>
-										<v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>
-									</t-provided-v4-lan-public-prefixes>
-									<t-provided-v4-lan-public-prefixes>
-										<request-index>1</request-index>
-										<v4-next-hop-address>192.168.1.68</v4-next-hop-address>
-										<v4-lan-public-prefix>192.168.1.67</v4-lan-public-prefix>
-										<v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>
-									</t-provided-v4-lan-public-prefixes>
-								</v4-public-lan-prefixes>
-								<v6-public-lan-prefixes>
-									<t-provided-v6-lan-public-prefixes>
-										<request-index>1</request-index>
-										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-										<v6-lan-public-prefix>2001:1890:12e3:2da::</v6-lan-public-prefix>
-										<v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>
-									</t-provided-v6-lan-public-prefixes>
-									<t-provided-v6-lan-public-prefixes>
-										<request-index>1</request-index>
-										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-										<v6-lan-public-prefix>2001:1890:12e3:3da::</v6-lan-public-prefix>
-										<v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>
-									</t-provided-v6-lan-public-prefixes>
-									<t-provided-v6-lan-public-prefixes>
-										<request-index>1</request-index>
-										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-										<v6-lan-public-prefix>2001:1890:12e3:4da::</v6-lan-public-prefix>
-										<v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>
-									</t-provided-v6-lan-public-prefixes>
-								</v6-public-lan-prefixes>
-							</vr-lan-interface>
-							<routing-protocol>none</routing-protocol>
-						</vr-lan>
-<ucpe-vms-service-information>				
- <transport-service-information>
-    <transport-service-type>AVPN</transport-service-type>
-	<access-circuit-info>
-	   <access-circuit-id>1</access-circuit-id>
-	   <dual-mode>Active</dual-mode>
-	</access-circuit-info>
-	<access-circuit-info>
-	   <access-circuit-id>2</access-circuit-id>
-	   <dual-mode>Standby</dual-mode>
-	</access-circuit-info>	
- </transport-service-information>
- <ucpe-information>
-    <ucpe-host-name>hostname</ucpe-host-name>
-    <ucpe-activation-code>activecode</ucpe-activation-code>
-    <out-of-band-management-modem>OOB</out-of-band-management-modem>
-  </ucpe-information>
-  <vnf-list>
-	<vnf-information> 
-		<vnf-instance-id>1</vnf-instance-id> 
-		<vnf-sequence-number>1</vnf-sequence-number>
-		<vnf-type>ZZ</vnf-type>
-		<vnf-vendor>JUNIPER</vnf-vendor>
-		<vnf-model>MODEL1</vnf-model>
-		<vnf-id>1</vnf-id>
-		<prov-status>1</prov-status>
-		<operational-state>1</operational-state>
-		<orchestration-status>1</orchestration-status>
-		<equipment-role>1</equipment-role>
-    </vnf-information>
-	<vnf-information> 
-		<vnf-instance-id>2</vnf-instance-id> 
-		<vnf-sequence-number>2</vnf-sequence-number>
-		<vnf-type>HY</vnf-type>
-		<vnf-vendor>JUNIPER</vnf-vendor>
-		<vnf-model>MODEL2</vnf-model>
-		<vnf-id>2</vnf-id>
-		<prov-status>2</prov-status>
-		<operational-state>2</operational-state>
-		<orchestration-status>2</orchestration-status>
-		<equipment-role>2</equipment-role>
-    </vnf-information>					
-  </vnf-list>
- </ucpe-vms-service-information>										
-						<request-information>
-							<request-action>Layer3ServiceActivateRequest</request-action>
-							<order-number>4281555</order-number>
-							<request-id>155415ab-b4a7-4382-b4c6-d17d9sm42855</request-id>
-							<notification-url>https://csi-tst-q22.it.att.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws</notification-url>
-							<source>OMX</source>
-							<order-version>1</order-version>
-						</request-information>
-						<sdnc-request-header>
-							<svc-action>activate</svc-action>
-							<svc-notification-url>https://msojra.mtsnjdcp1.aic.cip.att.com:8443/adapters/rest/SDNCNotify</svc-notification-url>
-							<svc-request-id>5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760</svc-request-id>
-						</sdnc-request-header>
-						<l2-homing-information>
-							<topology>MultiPoint</topology>
-							<preferred-aic-clli>MTSNJA4LCP1</preferred-aic-clli>
-							<evc-name>AS/VLXM/003717//SW</evc-name>
-						</l2-homing-information>
-						<service-information>
-							<service-instance-id>FK/VLXM/003717//SW_INTERNET</service-instance-id>
-							<subscriber-name>ST E2E Test42855_1300004281555</subscriber-name>
-							<service-type>SDN-ETHERNET-INTERNET</service-type>
-						</service-information>
-						<internet-service-change-details>
-							<internet-evc-speed-value>10</internet-evc-speed-value>
-							<internet-evc-speed-units>Kbps</internet-evc-speed-units>
-							<t-provided-v4-lan-public-prefixes>
-							   <request-index>1</request-index>
-							   <v4-next-hop-address>192.168.1.15</v4-next-hop-address>
-							   <v4-lan-public-prefix>192.168.1.15</v4-lan-public-prefix>
-							   <v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>
-							</t-provided-v4-lan-public-prefixes>
-							<t-provided-v4-lan-public-prefixes>
-							   <request-index>2</request-index>
-							   <v4-next-hop-address>192.168.1.16</v4-next-hop-address>
-							   <v4-lan-public-prefix>192.168.1.16</v4-lan-public-prefix>
-							   <v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>
-							</t-provided-v4-lan-public-prefixes>
-							<t-provided-v6-lan-public-prefixes>
-							   <request-index>1</request-index>
-							   <v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-							   <v6-lan-public-prefix>2001:1890:12e3:2da::</v6-lan-public-prefix>
-							   <v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>
-							</t-provided-v6-lan-public-prefixes>
-							<t-provided-v6-lan-public-prefixes>
-							   <request-index>1</request-index>
-							   <v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>
-							   <v6-lan-public-prefix>2001:1890:12e3:2da::</v6-lan-public-prefix>
-							   <v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>
-							</t-provided-v6-lan-public-prefixes>
-						</internet-service-change-details>
-					</service-data>
-				</layer3-service-list>
-</tag0:RequestData>
-"""
-
-def sdncAdapterResponseEmpty =
-"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">
-   <sdncadapterworkflow:response-data/>
-</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
-
-def sdncAdapterResponseError =
-"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
-                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-   <sdncadapterworkflow:response-data>
-      <tag0:CallbackHeader>
-         <tag0:RequestId>39542e39-ccc3-4d1a-8b79-04ce88526613</tag0:RequestId>
-         <tag0:ResponseCode>404</tag0:ResponseCode>
-         <tag0:ResponseMessage>Error processing request to SDNC. Not Found.
-			https://sdncodl.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.
-			SDNC Returned-[error-type:application, error-tag:data-missing,
-			error-message:Request could not be completed because the relevant
-			data model content does not exist.]</tag0:ResponseMessage>
-      </tag0:CallbackHeader>
-   </sdncadapterworkflow:response-data>
-</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
-
-				  								
-	@Test
-	public void testPreProcessRequest() {
-
-		String sdncAdapterWorkflowRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1/sdncadapterworkflowrequest.xml");
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")
-		when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")
-		when(mockExecution.getVariable("sdncAdapterWorkflowRequest")).thenReturn(sdncAdapterWorkflowRequest)
-		when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://someurl.someting.com:28080/mso/sdncAdapterCallbackServiceImpl")
-		when(mockExecution.getVariable("URN_mso_use_qualified_host")).thenReturn("true")
-		when(mockExecution.getProcessInstanceId()).thenReturn("745b1b50-e39e-4685-9cc8-c71f0bde8bf0")
-		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
-	
-
-		SDNCAdapter sdncAdapter = new SDNCAdapter()
-		sdncAdapter.preProcessRequest(mockExecution)
-		
-		MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
-		debugger.printInvocations(mockExecution)
-		
-
-		verify(mockExecution).setVariable("prefix","SDNCA_")
-		verify(mockExecution).setVariable("sdncAdapterResponse","")
-		verify(mockExecution).setVariable("asynchronousResponseTimeout",false)
-		verify(mockExecution).setVariable("continueListening",false)
-		verify(mockExecution).setVariable("BasicAuthHeaderValue","Basic cGFzc3dvcmQ=")
-		verify(mockExecution).setVariable("serviceConfigActivate",false)
-		verify(mockExecution).setVariable("SDNCA_requestId", "745b1b50-e39e-4685-9cc8-c71f0bde8bf0")
-		verify(mockExecution).setVariable("SDNCA_SuccessIndicator",false)
-		verify(mockExecution).setVariable("source","")
-		verify(mockExecution).setVariable("sdncAdapterRequest", sdncAdapterRequest)	
-	}
-	
-	@Test
-	public void testProcessResponse()
-	{
-		String sdncAdapterCallbackResponse = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1mock/sdncadaptercallbackrequest.xml");
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(sdncAdapterCallbackResponse)
-		SDNCAdapter sdncAdapter = new SDNCAdapter()
-		sdncAdapter.postProcessResponse(mockExecution)
-		
-//		MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()
-//		debugger.printInvocations(mockExecution)
-		
-		verify(mockExecution).getVariable("isDebugLogEnabled")
-		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
-		verify(mockExecution).setVariable("sdncAdapterResponse",workflowResponse)
-		verify(mockExecution).setVariable("enhancedCallbackRequestData",enhancedCallbackRequestData)
-		verify(mockExecution).setVariable("continueListening",false)
-
-	}	
-	
-	@Test
-	public void testProcessResponse_ErrorCase_404()
-	{
-		String sdncAdapterCallbackErrorResponse = FileUtil.readResourceFile("sdncadaptercallbackrequest_404CallBack.xml");
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(sdncAdapterCallbackErrorResponse)
-		SDNCAdapter sdncAdapter = new SDNCAdapter()
-		sdncAdapter.postProcessResponse(mockExecution)
-		
-		verify(mockExecution, times(1)).getVariable("isDebugLogEnabled")
-		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
-		verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponseError)
-		verify(mockExecution).setVariable("enhancedCallbackRequestData", "")
-		verify(mockExecution).setVariable("continueListening",false)
-		
-	}
-	
-	@Test
-	public void testProcessResponse_ErrorCase_InvalidCallback()
-	{
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn("<h1>Service Unavailable</h1>")
-		SDNCAdapter sdncAdapter = new SDNCAdapter()
-		sdncAdapter.postProcessResponse(mockExecution)
-		
-		verify(mockExecution).getVariable("isDebugLogEnabled")
-		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
-		verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponseEmpty)
-		verify(mockExecution).setVariable("enhancedCallbackRequestData", "")
-		verify(mockExecution).setVariable("continueListening",false)
-
-	}
-	
-	@Test
-	public void postProcessResponse()
-	{
-		
-		String SDNCAdapterCallbackRequest = 
-		"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<SDNCAdapterCallbackRequest
-	xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-	<CallbackHeader>
-		<RequestId>3bb02798-b344-4d28-9bca-1f029954d1c9</RequestId>
-		<ResponseCode>404</ResponseCode>
-		<ResponseMessage>Error processing request to SDNC. Not Found.
-			https://sdncodl.us.infra.aic.att.net:8443/restconf/config/L3SDN-API:services/layer3-service-list/85%2FCSIP%2F141203%2FPT_CSI9999998693.
-			SDNC Returned-[error-type:application, error-tag:data-missing,
-			error-message:Request could not be completed because the relevant
-			data model content does not exist ]</ResponseMessage>
-	</CallbackHeader>
-</SDNCAdapterCallbackRequest>"""
-		
-		String sdncAdapterResponse =
-		"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"
-                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-   <sdncadapterworkflow:response-data>
-      <tag0:CallbackHeader>
-         <tag0:RequestId>3bb02798-b344-4d28-9bca-1f029954d1c9</tag0:RequestId>
-         <tag0:ResponseCode>404</tag0:ResponseCode>
-         <tag0:ResponseMessage>Error processing request to SDNC. Not Found.
-			https://sdncodl.us.infra.aic.att.net:8443/restconf/config/L3SDN-API:services/layer3-service-list/85%2FCSIP%2F141203%2FPT_CSI9999998693.
-			SDNC Returned-[error-type:application, error-tag:data-missing,
-			error-message:Request could not be completed because the relevant
-			data model content does not exist ]</tag0:ResponseMessage>
-      </tag0:CallbackHeader>
-   </sdncadapterworkflow:response-data>
-</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""
-
-		ExecutionEntity mockExecution = mock(ExecutionEntity.class)
-		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(SDNCAdapterCallbackRequest)
-		SDNCAdapter sdncAdapter = new SDNCAdapter()
-		sdncAdapter.postProcessResponse(mockExecution)
-		
-		verify(mockExecution).getVariable("isDebugLogEnabled")
-		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")
-		verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponse)
-		verify(mockExecution).setVariable("enhancedCallbackRequestData", "")
-		verify(mockExecution).setVariable("continueListening",false)
-
-	}
-
+/*- 

+ * ============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.common.scripts;

+

+import static org.mockito.Mockito.*

+

+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.junit.Before

+import org.junit.Test

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.runners.MockitoJUnitRunner

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.openecomp.mso.bpmn.common.scripts.SDNCAdapter;

+

+import org.openecomp.mso.bpmn.mock.FileUtil

+

+@RunWith(MockitoJUnitRunner.class)

+public class SDNCAdapterTest {

+	

+	@Before

+	public void init()

+	{

+		MockitoAnnotations.initMocks(this)

+		System.setProperty("jboss.qualified.host.name","myhost.com")

+	}

+

+	

+	def workflowResponse = """<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>testRequestId</tag0:RequestId>

+         <tag0:ResponseCode>200</tag0:ResponseCode>

+         <tag0:ResponseMessage>OK</tag0:ResponseMessage>

+      </tag0:CallbackHeader>

+      <tag0:RequestData xsi:type="xs:string">				&lt;layer3-service-list xmlns="com:att:sdnctl:l3api"&gt;

+					&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;

+					&lt;service-status&gt;

+						&lt;rpc-name&gt;service-configuration-operation&lt;/rpc-name&gt;

+						&lt;rpc-action&gt;activate&lt;/rpc-action&gt;

+						&lt;request-status&gt;synccomplete&lt;/request-status&gt;

+						&lt;final-indicator&gt;N&lt;/final-indicator&gt;

+						&lt;l3sdn-action&gt;Layer3ServiceActivateRequest&lt;/l3sdn-action&gt;

+						&lt;l3sdn-subaction&gt;SUPP&lt;/l3sdn-subaction&gt;

+						&lt;response-timestamp&gt;2015-04-28T21:32:11.386Z&lt;/response-timestamp&gt;

+					&lt;/service-status&gt;

+					&lt;service-data&gt;

+						&lt;internet-evc-access-information&gt;

+							&lt;ip-version&gt;ds&lt;/ip-version&gt;

+							&lt;internet-evc-speed-value&gt;8&lt;/internet-evc-speed-value&gt;

+							&lt;internet-evc-speed-units&gt;Mbps&lt;/internet-evc-speed-units&gt;

+						&lt;/internet-evc-access-information&gt;

+						&lt;vr-lan xmlns="com:att:sdnctl:l3api"&gt;

+							&lt;vr-lan-interface&gt;

+								&lt;static-routes&gt;

+									&lt;v6-static-routes&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;

+										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;

+									&lt;/v6-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.1&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+									&lt;v6-static-routes&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;

+										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;

+									&lt;/v6-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.2&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.3&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+								&lt;/static-routes&gt;

+								&lt;dhcp&gt;

+									&lt;v6-dhcp-server-enabled&gt;N&lt;/v6-dhcp-server-enabled&gt;

+									&lt;v4-dhcp-server-enabled&gt;Y&lt;/v4-dhcp-server-enabled&gt;

+									&lt;use-v6-default-pool&gt;N&lt;/use-v6-default-pool&gt;

+									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;

+									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;

+									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v4-address&gt;192.168.1.8&lt;/excluded-v4-address&gt;

+									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;

+									&lt;v4-dhcp-pools&gt;

+										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.1&lt;/v4-dhcp-relay-next-hop-address&gt;

+										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.5&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.1&lt;/v4-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-pool-prefix&gt;192.155.2.3&lt;/v4-dhcp-pool-prefix&gt;

+									&lt;/v4-dhcp-pools&gt;

+									&lt;v4-dhcp-pools&gt;

+										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.2&lt;/v4-dhcp-relay-next-hop-address&gt;

+										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.2&lt;/v4-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-pool-prefix&gt;192.155.2.4&lt;/v4-dhcp-pool-prefix&gt;

+									&lt;/v4-dhcp-pools&gt;									

+									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;

+									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v6-address&gt;1:5&lt;/excluded-v6-address&gt;

+									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;

+									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v6-address&gt;1:6&lt;/excluded-v6-address&gt;

+									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;

+									&lt;v6-dhcp-pools&gt;

+										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;

+										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;

+									&lt;/v6-dhcp-pools&gt;

+									&lt;v6-dhcp-pools&gt;

+										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;

+										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;

+									&lt;/v6-dhcp-pools&gt;									

+								&lt;/dhcp&gt;

+								&lt;firewall-lite&gt;

+									&lt;stateful-firewall-lite-v6-enabled&gt;N&lt;/stateful-firewall-lite-v6-enabled&gt;

+									&lt;stateful-firewall-lite-v4-enabled&gt;Y&lt;/stateful-firewall-lite-v4-enabled&gt;

+									&lt;v4-firewall-packet-filters&gt;

+									  &lt;v4-firewall-prefix&gt;0.0.0.1&lt;/v4-firewall-prefix&gt;

+									  &lt;v4-firewall-prefix-length&gt;1&lt;/v4-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;1&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;1&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v4-firewall-packet-filters&gt;

+									&lt;v4-firewall-packet-filters&gt;

+									  &lt;v4-firewall-prefix&gt;0.0.0.2&lt;/v4-firewall-prefix&gt;

+									  &lt;v4-firewall-prefix-length&gt;2&lt;/v4-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;2&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;2&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v4-firewall-packet-filters&gt;

+									&lt;v6-firewall-packet-filters&gt;

+									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;

+									  &lt;v6-firewall-prefix-length&gt;0&lt;/v6-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;3&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;3&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v6-firewall-packet-filters&gt;

+									&lt;v6-firewall-packet-filters&gt;

+									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;

+									  &lt;v6-firewall-prefix-length&gt;1&lt;/v6-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;4&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;4&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v6-firewall-packet-filters&gt;

+								&lt;/firewall-lite&gt;

+								&lt;pat&gt;

+									&lt;v4-pat-pools&gt;

+										&lt;v4-pat-pool-prefix&gt;192.168.1.44&lt;/v4-pat-pool-prefix&gt;

+										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.5&lt;/v4-pat-pool-next-hop-address&gt;

+										&lt;v4-pat-pool-prefix-length&gt;0&lt;/v4-pat-pool-prefix-length&gt;

+									&lt;/v4-pat-pools&gt;

+									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;

+									&lt;v4-pat-enabled&gt;N&lt;/v4-pat-enabled&gt;

+									&lt;v4-pat-pools&gt;

+										&lt;v4-pat-pool-prefix&gt;192.168.1.45&lt;/v4-pat-pool-prefix&gt;

+										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.6&lt;/v4-pat-pool-next-hop-address&gt;

+										&lt;v4-pat-pool-prefix-length&gt;28&lt;/v4-pat-pool-prefix-length&gt;

+									&lt;/v4-pat-pools&gt;

+								&lt;/pat&gt;

+								&lt;nat&gt;

+								  &lt;v4-nat-enabled&gt;Y&lt;/v4-nat-enabled&gt;

+								  &lt;v4-nat-mapping-entries&gt;

+								    &lt;v4-nat-internal&gt;0.0.0.0&lt;/v4-nat-internal&gt;

+								    &lt;v4-nat-next-hop-address&gt;0.0.0.0&lt;/v4-nat-next-hop-address&gt;

+								    &lt;v4-nat-external&gt;0.0.0.0&lt;/v4-nat-external&gt;

+								  &lt;/v4-nat-mapping-entries&gt;

+								  &lt;v4-nat-mapping-entries&gt;

+								    &lt;v4-nat-internal&gt;0.0.0.1&lt;/v4-nat-internal&gt;

+								    &lt;v4-nat-next-hop-address&gt;0.0.0.1&lt;/v4-nat-next-hop-address&gt;

+								    &lt;v4-nat-external&gt;0.0.0.1&lt;/v4-nat-external&gt;

+								  &lt;/v4-nat-mapping-entries&gt;

+								&lt;/nat&gt;

+								&lt;vr-designation&gt;primary&lt;/vr-designation&gt;

+								&lt;v4-vce-loopback-address&gt;162.200.3.144&lt;/v4-vce-loopback-address&gt;

+								&lt;v6-vr-lan-prefix-length&gt;64&lt;/v6-vr-lan-prefix-length&gt;

+								&lt;v6-vce-wan-address&gt;2001:1890:12e3:2da::&lt;/v6-vce-wan-address&gt;

+								&lt;v6-vr-lan-prefix&gt;2620:0:10d0:f:ffff:ffff:ffff:fffe&lt;/v6-vr-lan-prefix&gt;

+								&lt;v4-vr-lan-prefix-length&gt;24&lt;/v4-vr-lan-prefix-length&gt;

+								&lt;v4-vr-lan-prefix&gt;10.192.27.254&lt;/v4-vr-lan-prefix&gt;

+								&lt;v4-public-lan-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.2&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.1&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.72&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.71&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.68&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.67&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+								&lt;/v4-public-lan-prefixes&gt;

+								&lt;v6-public-lan-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:3da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:4da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+								&lt;/v6-public-lan-prefixes&gt;

+							&lt;/vr-lan-interface&gt;

+							&lt;routing-protocol&gt;none&lt;/routing-protocol&gt;

+						&lt;/vr-lan&gt;

+&lt;ucpe-vms-service-information&gt;				

+ &lt;transport-service-information&gt;

+    &lt;transport-service-type&gt;AVPN&lt;/transport-service-type&gt;

+	&lt;access-circuit-info&gt;

+	   &lt;access-circuit-id&gt;1&lt;/access-circuit-id&gt;

+	   &lt;dual-mode&gt;Active&lt;/dual-mode&gt;

+	&lt;/access-circuit-info&gt;

+	&lt;access-circuit-info&gt;

+	   &lt;access-circuit-id&gt;2&lt;/access-circuit-id&gt;

+	   &lt;dual-mode&gt;Standby&lt;/dual-mode&gt;

+	&lt;/access-circuit-info&gt;	

+ &lt;/transport-service-information&gt;

+ &lt;ucpe-information&gt;

+    &lt;ucpe-host-name&gt;hostname&lt;/ucpe-host-name&gt;

+    &lt;ucpe-activation-code&gt;activecode&lt;/ucpe-activation-code&gt;

+    &lt;out-of-band-management-modem&gt;OOB&lt;/out-of-band-management-modem&gt;

+  &lt;/ucpe-information&gt;

+  &lt;vnf-list&gt;

+	&lt;vnf-information&gt; 

+		&lt;vnf-instance-id&gt;1&lt;/vnf-instance-id&gt; 

+		&lt;vnf-sequence-number&gt;1&lt;/vnf-sequence-number&gt;

+		&lt;vnf-type&gt;ZZ&lt;/vnf-type&gt;

+		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;

+		&lt;vnf-model&gt;MODEL1&lt;/vnf-model&gt;

+		&lt;vnf-id&gt;1&lt;/vnf-id&gt;

+		&lt;prov-status&gt;1&lt;/prov-status&gt;

+		&lt;operational-state&gt;1&lt;/operational-state&gt;

+		&lt;orchestration-status&gt;1&lt;/orchestration-status&gt;

+		&lt;equipment-role&gt;1&lt;/equipment-role&gt;

+    &lt;/vnf-information&gt;

+	&lt;vnf-information&gt; 

+		&lt;vnf-instance-id&gt;2&lt;/vnf-instance-id&gt; 

+		&lt;vnf-sequence-number&gt;2&lt;/vnf-sequence-number&gt;

+		&lt;vnf-type&gt;HY&lt;/vnf-type&gt;

+		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;

+		&lt;vnf-model&gt;MODEL2&lt;/vnf-model&gt;

+		&lt;vnf-id&gt;2&lt;/vnf-id&gt;

+		&lt;prov-status&gt;2&lt;/prov-status&gt;

+		&lt;operational-state&gt;2&lt;/operational-state&gt;

+		&lt;orchestration-status&gt;2&lt;/orchestration-status&gt;

+		&lt;equipment-role&gt;2&lt;/equipment-role&gt;

+    &lt;/vnf-information&gt;					

+  &lt;/vnf-list&gt;

+ &lt;/ucpe-vms-service-information&gt;										

+						&lt;request-information&gt;

+							&lt;request-action&gt;Layer3ServiceActivateRequest&lt;/request-action&gt;

+							&lt;order-number&gt;4281555&lt;/order-number&gt;

+							&lt;request-id&gt;155415ab-b4a7-4382-b4c6-d17d9sm42855&lt;/request-id&gt;

+							&lt;notification-url&gt;https://csi-tst-q22.it.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws&lt;/notification-url&gt;

+							&lt;source&gt;OMX&lt;/source&gt;

+							&lt;order-version&gt;1&lt;/order-version&gt;

+						&lt;/request-information&gt;

+						&lt;sdnc-request-header&gt;

+							&lt;svc-action&gt;activate&lt;/svc-action&gt;

+							&lt;svc-notification-url&gt;https://msojra.mtsnjdcp1.aic.cip.com:8443/adapters/rest/SDNCNotify&lt;/svc-notification-url&gt;

+							&lt;svc-request-id&gt;5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760&lt;/svc-request-id&gt;

+						&lt;/sdnc-request-header&gt;

+						&lt;l2-homing-information&gt;

+							&lt;topology&gt;MultiPoint&lt;/topology&gt;

+							&lt;preferred-aic-clli&gt;MTSNJA4LCP1&lt;/preferred-aic-clli&gt;

+							&lt;evc-name&gt;AS/VLXM/003717//SW&lt;/evc-name&gt;

+						&lt;/l2-homing-information&gt;

+						&lt;service-information&gt;

+							&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;

+							&lt;subscriber-name&gt;ST E2E Test42855_1300004281555&lt;/subscriber-name&gt;

+							&lt;service-type&gt;SDN-ETHERNET-INTERNET&lt;/service-type&gt;

+						&lt;/service-information&gt;

+						&lt;internet-service-change-details&gt;

+							&lt;internet-evc-speed-value&gt;10&lt;/internet-evc-speed-value&gt;

+							&lt;internet-evc-speed-units&gt;Kbps&lt;/internet-evc-speed-units&gt;

+							&lt;t-provided-v4-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+							   &lt;v4-lan-public-prefix&gt;192.168.1.15&lt;/v4-lan-public-prefix&gt;

+							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+							&lt;/t-provided-v4-lan-public-prefixes&gt;

+							&lt;t-provided-v4-lan-public-prefixes&gt;

+							   &lt;request-index&gt;2&lt;/request-index&gt;

+							   &lt;v4-next-hop-address&gt;192.168.1.16&lt;/v4-next-hop-address&gt;

+							   &lt;v4-lan-public-prefix&gt;192.168.1.16&lt;/v4-lan-public-prefix&gt;

+							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+							&lt;/t-provided-v4-lan-public-prefixes&gt;

+							&lt;t-provided-v6-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+							&lt;/t-provided-v6-lan-public-prefixes&gt;

+							&lt;t-provided-v6-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+							&lt;/t-provided-v6-lan-public-prefixes&gt;

+						&lt;/internet-service-change-details&gt;

+					&lt;/service-data&gt;

+				&lt;/layer3-service-list&gt;

+</tag0:RequestData>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+	String sdncAdapterRequest = """

+			<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

+			<SOAP-ENV:Body>

+			<aetgt:SDNCAdapterRequest xmlns:aetgt="http://org.openecomp/workflow/sdnc/adapter/schema/v1" xmlns:sdncadaptersc="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+			<sdncadapter:RequestHeader xmlns:sdncadapter="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+			<sdncadapter:RequestId>745b1b50-e39e-4685-9cc8-c71f0bde8bf0</sdncadapter:RequestId>

+			<sdncadapter:SvcAction>query</sdncadapter:SvcAction>

+			<sdncadapter:SvcOperation>services/layer3-service-list/AS%2FVLXM%2F000199%2F%2FSB_INTERNET</sdncadapter:SvcOperation>

+			<sdncadapter:CallbackUrl>http://myhost.com:28080/mso/sdncAdapterCallbackServiceImpl</sdncadapter:CallbackUrl>

+			</sdncadapter:RequestHeader>

+			<sdncadaptersc:RequestData><rest:payload xmlns:rest="http://schemas.activebpel.org/REST/2007/12/01/aeREST.xsd"

+              contentType="text/xml">

+   <service-request xmlns="http://org.openecomp/mso/request/details/schema/v1">

+      <request-information>

+         <request-id>12570a36-7388-4c0a-bec4-189ce3kg9956</request-id>

+         <request-action>GetLayer3ServiceDetailsRequest</request-action>

+         <source>OMX</source>

+      </request-information>

+      <service-information>

+         <service-type>SDN-ETHERNET-INTERNET</service-type>

+         <service-instance-id>PD/VLXM/003717//SW_INTERNET</service-instance-id>

+      </service-information>

+   </service-request>

+</rest:payload></sdncadaptersc:RequestData></aetgt:SDNCAdapterRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>"""

+	

+def sdncAdapterResponse = """<sdncadapterworkflow:SDNCAdapterWorkflowResponse 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>39542e39-ccc3-4d1a-8b79-04ce88526613</tag0:RequestId>

+   <tag0:ResponseCode>404</tag0:ResponseCode>

+   <tag0:ResponseMessage>Error processing request to SDNC. Not Found.

+			https://sdncodl.us.aic.cip.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.

+			SDNC Returned-[error-type:application, error-tag:data-missing,

+			error-message:Request could not be completed because the relevant

+			data model content does not exist.]</tag0:ResponseMessage>

+</tag0:CallbackHeader>

+</sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>

+"""

+

+def workflowErrorResponse = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+								<aetgt:ErrorMessage>Received error from SDN-C: Error processing request to SDNC. Not Found.

+			https://sdncodl.us.aic.cip.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.

+			SDNC Returned-[error-type:application, error-tag:data-missing,

+			error-message:Request could not be completed because the relevant

+			data model content does not exist.]</aetgt:ErrorMessage>

+								<aetgt:ErrorCode>5300</aetgt:ErrorCode>

+								<aetgt:SourceSystemErrorCode>404</aetgt:SourceSystemErrorCode>

+								</aetgt:WorkflowException>"""

+

+def workflowErrorResponse1 = """<aetgt:WorkflowException xmlns:aetgt="http://org.openecomp/mso/workflow/schema/v1">

+					<aetgt:ErrorMessage>Invalid Callback Response from SDNC Adapter</aetgt:ErrorMessage>

+					<aetgt:ErrorCode>5300</aetgt:ErrorCode>

+				  </aetgt:WorkflowException>"""

+			

+def     enhancedCallbackRequestData =

+    """<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">				<layer3-service-list xmlns="com:att:sdnctl:l3api">

+					<service-instance-id>FK/VLXM/003717//SW_INTERNET</service-instance-id>

+					<service-status>

+						<rpc-name>service-configuration-operation</rpc-name>

+						<rpc-action>activate</rpc-action>

+						<request-status>synccomplete</request-status>

+						<final-indicator>N</final-indicator>

+						<l3sdn-action>Layer3ServiceActivateRequest</l3sdn-action>

+						<l3sdn-subaction>SUPP</l3sdn-subaction>

+						<response-timestamp>2015-04-28T21:32:11.386Z</response-timestamp>

+					</service-status>

+					<service-data>

+						<internet-evc-access-information>

+							<ip-version>ds</ip-version>

+							<internet-evc-speed-value>8</internet-evc-speed-value>

+							<internet-evc-speed-units>Mbps</internet-evc-speed-units>

+						</internet-evc-access-information>

+						<vr-lan xmlns="com:att:sdnctl:l3api">

+							<vr-lan-interface>

+								<static-routes>

+									<v6-static-routes>

+										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+										<v6-static-route-prefix>2001:1890:12e3:2da::</v6-static-route-prefix>

+										<v6-static-route-prefix-length>28</v6-static-route-prefix-length>

+									</v6-static-routes>

+									<v4-static-routes>

+										<v4-static-route-prefix>255.255.252.1</v4-static-route-prefix>

+										<v4-next-hop-address>192.168.1.15</v4-next-hop-address>

+										<v4-static-route-prefix-length>28</v4-static-route-prefix-length>

+									</v4-static-routes>

+									<v6-static-routes>

+										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+										<v6-static-route-prefix>2001:1890:12e3:2da::</v6-static-route-prefix>

+										<v6-static-route-prefix-length>28</v6-static-route-prefix-length>

+									</v6-static-routes>

+									<v4-static-routes>

+										<v4-static-route-prefix>255.255.252.2</v4-static-route-prefix>

+										<v4-next-hop-address>192.168.1.15</v4-next-hop-address>

+										<v4-static-route-prefix-length>28</v4-static-route-prefix-length>

+									</v4-static-routes>

+									<v4-static-routes>

+										<v4-static-route-prefix>255.255.252.3</v4-static-route-prefix>

+										<v4-next-hop-address>192.168.1.15</v4-next-hop-address>

+										<v4-static-route-prefix-length>28</v4-static-route-prefix-length>

+									</v4-static-routes>

+								</static-routes>

+								<dhcp>

+									<v6-dhcp-server-enabled>N</v6-dhcp-server-enabled>

+									<v4-dhcp-server-enabled>Y</v4-dhcp-server-enabled>

+									<use-v6-default-pool>N</use-v6-default-pool>

+									<excluded-v4-dhcp-addresses-from-default-pool>

+									  <excluded-v4-address>192.168.1.7</excluded-v4-address>

+									</excluded-v4-dhcp-addresses-from-default-pool>

+									<excluded-v4-dhcp-addresses-from-default-pool>

+									  <excluded-v4-address>192.168.1.8</excluded-v4-address>

+									</excluded-v4-dhcp-addresses-from-default-pool>

+									<v4-dhcp-pools>

+										<v4-dhcp-relay-next-hop-address>1.1.1.1</v4-dhcp-relay-next-hop-address>

+										<v4-dhcp-pool-prefix-length>28</v4-dhcp-pool-prefix-length>

+										<excluded-v4-addresses>

+											<excluded-v4-address>192.168.1.5</excluded-v4-address>

+										</excluded-v4-addresses>

+										<v4-dhcp-relay-gateway-address>2.2.2.1</v4-dhcp-relay-gateway-address>

+										<excluded-v4-addresses>

+											<excluded-v4-address>192.168.1.6</excluded-v4-address>

+										</excluded-v4-addresses>

+										<v4-dhcp-pool-prefix>192.155.2.3</v4-dhcp-pool-prefix>

+									</v4-dhcp-pools>

+									<v4-dhcp-pools>

+										<v4-dhcp-relay-next-hop-address>1.1.1.2</v4-dhcp-relay-next-hop-address>

+										<v4-dhcp-pool-prefix-length>28</v4-dhcp-pool-prefix-length>

+										<excluded-v4-addresses>

+											<excluded-v4-address>192.168.1.6</excluded-v4-address>

+										</excluded-v4-addresses>

+										<v4-dhcp-relay-gateway-address>2.2.2.2</v4-dhcp-relay-gateway-address>

+										<excluded-v4-addresses>

+											<excluded-v4-address>192.168.1.7</excluded-v4-address>

+										</excluded-v4-addresses>

+										<v4-dhcp-pool-prefix>192.155.2.4</v4-dhcp-pool-prefix>

+									</v4-dhcp-pools>									

+									<use-v4-default-pool>Y</use-v4-default-pool>

+									<excluded-v6-dhcp-addresses-from-default-pool>

+									  <excluded-v6-address>1:5</excluded-v6-address>

+									</excluded-v6-dhcp-addresses-from-default-pool>

+									<excluded-v6-dhcp-addresses-from-default-pool>

+									  <excluded-v6-address>1:6</excluded-v6-address>

+									</excluded-v6-dhcp-addresses-from-default-pool>

+									<v6-dhcp-pools>

+										<v6-dhcp-relay-next-hop-address>4:4</v6-dhcp-relay-next-hop-address>

+										<v6-dhcp-pool-prefix-length>28</v6-dhcp-pool-prefix-length>

+										<excluded-v6-addresses>

+											<excluded-v6-address>1:1</excluded-v6-address>

+										</excluded-v6-addresses>

+										<v6-dhcp-relay-gateway-address>3:3</v6-dhcp-relay-gateway-address>

+										<excluded-v6-addresses>

+											<excluded-v6-address>2:2</excluded-v6-address>

+										</excluded-v6-addresses>

+										<v6-dhcp-pool-prefix>0:0</v6-dhcp-pool-prefix>

+									</v6-dhcp-pools>

+									<v6-dhcp-pools>

+										<v6-dhcp-relay-next-hop-address>4:4</v6-dhcp-relay-next-hop-address>

+										<v6-dhcp-pool-prefix-length>28</v6-dhcp-pool-prefix-length>

+										<excluded-v6-addresses>

+											<excluded-v6-address>1:1</excluded-v6-address>

+										</excluded-v6-addresses>

+										<v6-dhcp-relay-gateway-address>3:3</v6-dhcp-relay-gateway-address>

+										<excluded-v6-addresses>

+											<excluded-v6-address>2:2</excluded-v6-address>

+										</excluded-v6-addresses>

+										<v6-dhcp-pool-prefix>0:0</v6-dhcp-pool-prefix>

+									</v6-dhcp-pools>									

+								</dhcp>

+								<firewall-lite>

+									<stateful-firewall-lite-v6-enabled>N</stateful-firewall-lite-v6-enabled>

+									<stateful-firewall-lite-v4-enabled>Y</stateful-firewall-lite-v4-enabled>

+									<v4-firewall-packet-filters>

+									  <v4-firewall-prefix>0.0.0.1</v4-firewall-prefix>

+									  <v4-firewall-prefix-length>1</v4-firewall-prefix-length>

+									  <allow-icmp-ping>Y</allow-icmp-ping>

+									  <udp-ports>

+									    <port-number>1</port-number>

+									  </udp-ports>

+									  <tcp-ports>

+									    <port-number>1</port-number>

+									  </tcp-ports>

+									</v4-firewall-packet-filters>

+									<v4-firewall-packet-filters>

+									  <v4-firewall-prefix>0.0.0.2</v4-firewall-prefix>

+									  <v4-firewall-prefix-length>2</v4-firewall-prefix-length>

+									  <allow-icmp-ping>Y</allow-icmp-ping>

+									  <udp-ports>

+									    <port-number>2</port-number>

+									  </udp-ports>

+									  <tcp-ports>

+									    <port-number>2</port-number>

+									  </tcp-ports>

+									</v4-firewall-packet-filters>

+									<v6-firewall-packet-filters>

+									  <v6-firewall-prefix>:</v6-firewall-prefix>

+									  <v6-firewall-prefix-length>0</v6-firewall-prefix-length>

+									  <allow-icmp-ping>Y</allow-icmp-ping>

+									  <udp-ports>

+									    <port-number>3</port-number>

+									  </udp-ports>

+									  <tcp-ports>

+									    <port-number>3</port-number>

+									  </tcp-ports>

+									</v6-firewall-packet-filters>

+									<v6-firewall-packet-filters>

+									  <v6-firewall-prefix>:</v6-firewall-prefix>

+									  <v6-firewall-prefix-length>1</v6-firewall-prefix-length>

+									  <allow-icmp-ping>Y</allow-icmp-ping>

+									  <udp-ports>

+									    <port-number>4</port-number>

+									  </udp-ports>

+									  <tcp-ports>

+									    <port-number>4</port-number>

+									  </tcp-ports>

+									</v6-firewall-packet-filters>

+								</firewall-lite>

+								<pat>

+									<v4-pat-pools>

+										<v4-pat-pool-prefix>192.168.1.44</v4-pat-pool-prefix>

+										<v4-pat-pool-next-hop-address>192.168.1.5</v4-pat-pool-next-hop-address>

+										<v4-pat-pool-prefix-length>0</v4-pat-pool-prefix-length>

+									</v4-pat-pools>

+									<use-v4-default-pool>Y</use-v4-default-pool>

+									<v4-pat-enabled>N</v4-pat-enabled>

+									<v4-pat-pools>

+										<v4-pat-pool-prefix>192.168.1.45</v4-pat-pool-prefix>

+										<v4-pat-pool-next-hop-address>192.168.1.6</v4-pat-pool-next-hop-address>

+										<v4-pat-pool-prefix-length>28</v4-pat-pool-prefix-length>

+									</v4-pat-pools>

+								</pat>

+								<nat>

+								  <v4-nat-enabled>Y</v4-nat-enabled>

+								  <v4-nat-mapping-entries>

+								    <v4-nat-internal>0.0.0.0</v4-nat-internal>

+								    <v4-nat-next-hop-address>0.0.0.0</v4-nat-next-hop-address>

+								    <v4-nat-external>0.0.0.0</v4-nat-external>

+								  </v4-nat-mapping-entries>

+								  <v4-nat-mapping-entries>

+								    <v4-nat-internal>0.0.0.1</v4-nat-internal>

+								    <v4-nat-next-hop-address>0.0.0.1</v4-nat-next-hop-address>

+								    <v4-nat-external>0.0.0.1</v4-nat-external>

+								  </v4-nat-mapping-entries>

+								</nat>

+								<vr-designation>primary</vr-designation>

+								<v4-vce-loopback-address>162.200.3.144</v4-vce-loopback-address>

+								<v6-vr-lan-prefix-length>64</v6-vr-lan-prefix-length>

+								<v6-vce-wan-address>2001:1890:12e3:2da::</v6-vce-wan-address>

+								<v6-vr-lan-prefix>2620:0:10d0:f:ffff:ffff:ffff:fffe</v6-vr-lan-prefix>

+								<v4-vr-lan-prefix-length>24</v4-vr-lan-prefix-length>

+								<v4-vr-lan-prefix>10.192.27.254</v4-vr-lan-prefix>

+								<v4-public-lan-prefixes>

+									<t-provided-v4-lan-public-prefixes>

+										<request-index>1</request-index>

+										<v4-next-hop-address>192.168.1.2</v4-next-hop-address>

+										<v4-lan-public-prefix>192.168.1.1</v4-lan-public-prefix>

+										<v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>

+									</t-provided-v4-lan-public-prefixes>

+									<t-provided-v4-lan-public-prefixes>

+										<request-index>1</request-index>

+										<v4-next-hop-address>192.168.1.72</v4-next-hop-address>

+										<v4-lan-public-prefix>192.168.1.71</v4-lan-public-prefix>

+										<v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>

+									</t-provided-v4-lan-public-prefixes>

+									<t-provided-v4-lan-public-prefixes>

+										<request-index>1</request-index>

+										<v4-next-hop-address>192.168.1.68</v4-next-hop-address>

+										<v4-lan-public-prefix>192.168.1.67</v4-lan-public-prefix>

+										<v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>

+									</t-provided-v4-lan-public-prefixes>

+								</v4-public-lan-prefixes>

+								<v6-public-lan-prefixes>

+									<t-provided-v6-lan-public-prefixes>

+										<request-index>1</request-index>

+										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+										<v6-lan-public-prefix>2001:1890:12e3:2da::</v6-lan-public-prefix>

+										<v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>

+									</t-provided-v6-lan-public-prefixes>

+									<t-provided-v6-lan-public-prefixes>

+										<request-index>1</request-index>

+										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+										<v6-lan-public-prefix>2001:1890:12e3:3da::</v6-lan-public-prefix>

+										<v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>

+									</t-provided-v6-lan-public-prefixes>

+									<t-provided-v6-lan-public-prefixes>

+										<request-index>1</request-index>

+										<v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+										<v6-lan-public-prefix>2001:1890:12e3:4da::</v6-lan-public-prefix>

+										<v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>

+									</t-provided-v6-lan-public-prefixes>

+								</v6-public-lan-prefixes>

+							</vr-lan-interface>

+							<routing-protocol>none</routing-protocol>

+						</vr-lan>

+<ucpe-vms-service-information>				

+ <transport-service-information>

+    <transport-service-type>AVPN</transport-service-type>

+	<access-circuit-info>

+	   <access-circuit-id>1</access-circuit-id>

+	   <dual-mode>Active</dual-mode>

+	</access-circuit-info>

+	<access-circuit-info>

+	   <access-circuit-id>2</access-circuit-id>

+	   <dual-mode>Standby</dual-mode>

+	</access-circuit-info>	

+ </transport-service-information>

+ <ucpe-information>

+    <ucpe-host-name>hostname</ucpe-host-name>

+    <ucpe-activation-code>activecode</ucpe-activation-code>

+    <out-of-band-management-modem>OOB</out-of-band-management-modem>

+  </ucpe-information>

+  <vnf-list>

+	<vnf-information> 

+		<vnf-instance-id>1</vnf-instance-id> 

+		<vnf-sequence-number>1</vnf-sequence-number>

+		<vnf-type>ZZ</vnf-type>

+		<vnf-vendor>JUNIPER</vnf-vendor>

+		<vnf-model>MODEL1</vnf-model>

+		<vnf-id>1</vnf-id>

+		<prov-status>1</prov-status>

+		<operational-state>1</operational-state>

+		<orchestration-status>1</orchestration-status>

+		<equipment-role>1</equipment-role>

+    </vnf-information>

+	<vnf-information> 

+		<vnf-instance-id>2</vnf-instance-id> 

+		<vnf-sequence-number>2</vnf-sequence-number>

+		<vnf-type>HY</vnf-type>

+		<vnf-vendor>JUNIPER</vnf-vendor>

+		<vnf-model>MODEL2</vnf-model>

+		<vnf-id>2</vnf-id>

+		<prov-status>2</prov-status>

+		<operational-state>2</operational-state>

+		<orchestration-status>2</orchestration-status>

+		<equipment-role>2</equipment-role>

+    </vnf-information>					

+  </vnf-list>

+ </ucpe-vms-service-information>										

+						<request-information>

+							<request-action>Layer3ServiceActivateRequest</request-action>

+							<order-number>4281555</order-number>

+							<request-id>155415ab-b4a7-4382-b4c6-d17d9sm42855</request-id>

+							<notification-url>https://csi-tst-q22.it.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws</notification-url>

+							<source>OMX</source>

+							<order-version>1</order-version>

+						</request-information>

+						<sdnc-request-header>

+							<svc-action>activate</svc-action>

+							<svc-notification-url>https://msojra.mtsnjdcp1.aic.cip.com:8443/adapters/rest/SDNCNotify</svc-notification-url>

+							<svc-request-id>5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760</svc-request-id>

+						</sdnc-request-header>

+						<l2-homing-information>

+							<topology>MultiPoint</topology>

+							<preferred-aic-clli>MTSNJA4LCP1</preferred-aic-clli>

+							<evc-name>AS/VLXM/003717//SW</evc-name>

+						</l2-homing-information>

+						<service-information>

+							<service-instance-id>FK/VLXM/003717//SW_INTERNET</service-instance-id>

+							<subscriber-name>ST E2E Test42855_1300004281555</subscriber-name>

+							<service-type>SDN-ETHERNET-INTERNET</service-type>

+						</service-information>

+						<internet-service-change-details>

+							<internet-evc-speed-value>10</internet-evc-speed-value>

+							<internet-evc-speed-units>Kbps</internet-evc-speed-units>

+							<t-provided-v4-lan-public-prefixes>

+							   <request-index>1</request-index>

+							   <v4-next-hop-address>192.168.1.15</v4-next-hop-address>

+							   <v4-lan-public-prefix>192.168.1.15</v4-lan-public-prefix>

+							   <v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>

+							</t-provided-v4-lan-public-prefixes>

+							<t-provided-v4-lan-public-prefixes>

+							   <request-index>2</request-index>

+							   <v4-next-hop-address>192.168.1.16</v4-next-hop-address>

+							   <v4-lan-public-prefix>192.168.1.16</v4-lan-public-prefix>

+							   <v4-lan-public-prefix-length>28</v4-lan-public-prefix-length>

+							</t-provided-v4-lan-public-prefixes>

+							<t-provided-v6-lan-public-prefixes>

+							   <request-index>1</request-index>

+							   <v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+							   <v6-lan-public-prefix>2001:1890:12e3:2da::</v6-lan-public-prefix>

+							   <v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>

+							</t-provided-v6-lan-public-prefixes>

+							<t-provided-v6-lan-public-prefixes>

+							   <request-index>1</request-index>

+							   <v6-next-hop-address>2001:1890:12e3:2da::</v6-next-hop-address>

+							   <v6-lan-public-prefix>2001:1890:12e3:2da::</v6-lan-public-prefix>

+							   <v6-lan-public-prefix-length>28</v6-lan-public-prefix-length>

+							</t-provided-v6-lan-public-prefixes>

+						</internet-service-change-details>

+					</service-data>

+				</layer3-service-list>

+</tag0:RequestData>

+"""

+

+def sdncAdapterResponseEmpty =

+"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1">

+   <sdncadapterworkflow:response-data/>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+def sdncAdapterResponseError =

+"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+   <sdncadapterworkflow:response-data>

+      <tag0:CallbackHeader>

+         <tag0:RequestId>39542e39-ccc3-4d1a-8b79-04ce88526613</tag0:RequestId>

+         <tag0:ResponseCode>404</tag0:ResponseCode>

+         <tag0:ResponseMessage>Error processing request to SDNC. Not Found.

+			https://sdncodl.us.aic.cip.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.

+			SDNC Returned-[error-type:application, error-tag:data-missing,

+			error-message:Request could not be completed because the relevant

+			data model content does not exist.]</tag0:ResponseMessage>

+      </tag0:CallbackHeader>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+				  								

+	@Test

+	public void testPreProcessRequest() {

+

+		String sdncAdapterWorkflowRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1/sdncadapterworkflowrequest.xml");

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("URN_mso_adapters_po_auth")).thenReturn("3141634BF7E070AA289CF2892C986C0B")

+		when(mockExecution.getVariable("URN_mso_msoKey")).thenReturn("07a7159d3bf51a0e53be7a8f89699be7")

+		when(mockExecution.getVariable("sdncAdapterWorkflowRequest")).thenReturn(sdncAdapterWorkflowRequest)

+		when(mockExecution.getVariable("URN_mso_workflow_sdncadapter_callback")).thenReturn("http://someurl.someting.com:28080/mso/sdncAdapterCallbackServiceImpl")

+		when(mockExecution.getVariable("URN_mso_use_qualified_host")).thenReturn("true")

+		when(mockExecution.getProcessInstanceId()).thenReturn("745b1b50-e39e-4685-9cc8-c71f0bde8bf0")

+		when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")

+	

+

+		SDNCAdapter sdncAdapter = new SDNCAdapter()

+		sdncAdapter.preProcessRequest(mockExecution)

+		

+		MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+		debugger.printInvocations(mockExecution)

+		

+

+		verify(mockExecution).setVariable("prefix","SDNCA_")

+		verify(mockExecution).setVariable("sdncAdapterResponse","")

+		verify(mockExecution).setVariable("asynchronousResponseTimeout",false)

+		verify(mockExecution).setVariable("continueListening",false)

+		verify(mockExecution).setVariable("BasicAuthHeaderValue","Basic cGFzc3dvcmQ=")

+		verify(mockExecution).setVariable("serviceConfigActivate",false)

+		verify(mockExecution).setVariable("SDNCA_requestId", "745b1b50-e39e-4685-9cc8-c71f0bde8bf0")

+		verify(mockExecution).setVariable("SDNCA_SuccessIndicator",false)

+		verify(mockExecution).setVariable("source","")

+		verify(mockExecution).setVariable("sdncAdapterRequest", sdncAdapterRequest)	

+	}

+	

+	@Test

+	public void testProcessResponse()

+	{

+		String sdncAdapterCallbackResponse = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1mock/sdncadaptercallbackrequest.xml");

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(sdncAdapterCallbackResponse)

+		SDNCAdapter sdncAdapter = new SDNCAdapter()

+		sdncAdapter.postProcessResponse(mockExecution)

+		

+//		MockitoDebuggerImpl debugger = new MockitoDebuggerImpl()

+//		debugger.printInvocations(mockExecution)

+		

+		verify(mockExecution).getVariable("isDebugLogEnabled")

+		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")

+		verify(mockExecution).setVariable("sdncAdapterResponse",workflowResponse)

+		verify(mockExecution).setVariable("enhancedCallbackRequestData",enhancedCallbackRequestData)

+		verify(mockExecution).setVariable("continueListening",false)

+

+	}	

+	

+	@Test

+	public void testProcessResponse_ErrorCase_404()

+	{

+		String sdncAdapterCallbackErrorResponse = FileUtil.readResourceFile("sdncadaptercallbackrequest_404CallBack.xml");

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(sdncAdapterCallbackErrorResponse)

+		SDNCAdapter sdncAdapter = new SDNCAdapter()

+		sdncAdapter.postProcessResponse(mockExecution)

+		

+		verify(mockExecution, times(1)).getVariable("isDebugLogEnabled")

+		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")

+		verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponseError)

+		verify(mockExecution).setVariable("enhancedCallbackRequestData", "")

+		verify(mockExecution).setVariable("continueListening",false)

+		

+	}

+	

+	@Test

+	public void testProcessResponse_ErrorCase_InvalidCallback()

+	{

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn("<h1>Service Unavailable</h1>")

+		SDNCAdapter sdncAdapter = new SDNCAdapter()

+		sdncAdapter.postProcessResponse(mockExecution)

+		

+		verify(mockExecution).getVariable("isDebugLogEnabled")

+		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")

+		verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponseEmpty)

+		verify(mockExecution).setVariable("enhancedCallbackRequestData", "")

+		verify(mockExecution).setVariable("continueListening",false)

+

+	}

+	

+	@Test

+	public void postProcessResponse()

+	{

+		

+		String SDNCAdapterCallbackRequest = 

+		"""<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

+<SDNCAdapterCallbackRequest

+	xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+	<CallbackHeader>

+		<RequestId>3bb02798-b344-4d28-9bca-1f029954d1c9</RequestId>

+		<ResponseCode>404</ResponseCode>

+		<ResponseMessage>Error processing request to SDNC. Not Found.

+			https://sdncodl.us.infra.aic.net:8443/restconf/config/L3SDN-API:services/layer3-service-list/85%2FCSIP%2F141203%2FPT_CSI9999998693.

+			SDNC Returned-[error-type:application, error-tag:data-missing,

+			error-message:Request could not be completed because the relevant

+			data model content does not exist ]</ResponseMessage>

+	</CallbackHeader>

+</SDNCAdapterCallbackRequest>"""

+		

+		String sdncAdapterResponse =

+		"""<sdncadapterworkflow:SDNCAdapterWorkflowResponse xmlns:sdncadapterworkflow="http://org.openecomp/mso/workflow/schema/v1"

+                                                 xmlns:tag0="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+   <sdncadapterworkflow:response-data>

+      <tag0:CallbackHeader>

+         <tag0:RequestId>3bb02798-b344-4d28-9bca-1f029954d1c9</tag0:RequestId>

+         <tag0:ResponseCode>404</tag0:ResponseCode>

+         <tag0:ResponseMessage>Error processing request to SDNC. Not Found.

+			https://sdncodl.us.infra.aic.net:8443/restconf/config/L3SDN-API:services/layer3-service-list/85%2FCSIP%2F141203%2FPT_CSI9999998693.

+			SDNC Returned-[error-type:application, error-tag:data-missing,

+			error-message:Request could not be completed because the relevant

+			data model content does not exist ]</tag0:ResponseMessage>

+      </tag0:CallbackHeader>

+   </sdncadapterworkflow:response-data>

+</sdncadapterworkflow:SDNCAdapterWorkflowResponse>"""

+

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("sdncAdapterCallbackRequest")).thenReturn(SDNCAdapterCallbackRequest)

+		SDNCAdapter sdncAdapter = new SDNCAdapter()

+		sdncAdapter.postProcessResponse(mockExecution)

+		

+		verify(mockExecution).getVariable("isDebugLogEnabled")

+		verify(mockExecution,times(2)).getVariable("sdncAdapterCallbackRequest")

+		verify(mockExecution).setVariable("sdncAdapterResponse", sdncAdapterResponse)

+		verify(mockExecution).setVariable("enhancedCallbackRequestData", "")

+		verify(mockExecution).setVariable("continueListening",false)

+

+	}

+

 }
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/TrinityExceptionUtilTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/TrinityExceptionUtilTest.groovy
new file mode 100644
index 0000000..b525967
--- /dev/null
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/openecomp/mso/bpmn/common/scripts/TrinityExceptionUtilTest.groovy
@@ -0,0 +1,201 @@
+/*- 

+ * ============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.common.scripts

+

+import org.junit.Assert

+import org.junit.Ignore

+import org.junit.runner.RunWith;

+import org.mockito.runners.MockitoJUnitRunner;

+

+

+

+import static org.mockito.Mockito.*

+

+import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity

+import org.junit.Before

+import org.junit.runner.RunWith

+import org.mockito.MockitoAnnotations

+import org.mockito.internal.debugging.MockitoDebuggerImpl

+import org.mockito.runners.MockitoJUnitRunner

+import org.openecomp.mso.bpmn.common.scripts.TrinityExceptionUtil;

+@RunWith(MockitoJUnitRunner.class)

+import org.junit.Test

+

+class TrinityExceptionUtilTest {

+	

+	def aotsFault ="""<n1:Fault xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n1="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/SoapFault.xsd" xmlns:cer="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/ErrorResponse.xsd" xsi:schemaLocation="http://csi.cingular.com/CSI/Namespaces/OneTicketingSystem/InfrastructureCommon/Types/Public/SoapFault.xsd SoapFault-CDM.xsd">

+	<n1:faultcode>xml:space</n1:faultcode>

+	<n1:faultstring>String</n1:faultstring>

+	<n1:faultactor>http://test.com</n1:faultactor>

+	<n1:detail>

+		<n1:CSIApplicationException>

+			<cer:Response>

+				<cer:code>400</cer:code>

+				<cer:description>bad stuff</cer:description>

+			</cer:Response>

+			<cer:ServiceProviderEntity>

+				<cer:reportingServiceEntity>String</cer:reportingServiceEntity>

+				<cer:faultDate>*** ERROR ***</cer:faultDate>

+				<cer:faultSequenceNumber>String</cer:faultSequenceNumber>

+				<cer:faultLevel>String</cer:faultLevel>

+				<cer:faultCode>String</cer:faultCode>

+				<cer:faultDescription>String</cer:faultDescription>

+				<cer:ServiceProviderRawError>

+					<cer:code>String</cer:code>

+					<cer:description>String</cer:description>

+					<cer:BISError>

+						<cer:code>String</cer:code>

+						<cer:description>String</cer:description>

+						<cer:origination>String</cer:origination>

+						<cer:severity>String</cer:severity>

+					</cer:BISError>

+				</cer:ServiceProviderRawError>

+			</cer:ServiceProviderEntity>

+		</n1:CSIApplicationException>

+		<n1:CSIInternalException>

+			<cer:reportingServiceEntity>String</cer:reportingServiceEntity>

+			<cer:faultDate>*** ERROR ***</cer:faultDate>

+			<cer:faultSequenceNumber>String</cer:faultSequenceNumber>

+			<cer:faultLevel>String</cer:faultLevel>

+			<cer:faultCode>String</cer:faultCode>

+			<cer:faultDescription>String</cer:faultDescription>

+			<cer:cingularErrorCode>String</cer:cingularErrorCode>

+			<cer:cingularErrorDescription>String</cer:cingularErrorDescription>

+			<cer:cingularErrorCategory>String</cer:cingularErrorCategory>

+		</n1:CSIInternalException>

+	</n1:detail>

+</n1:Fault>"""

+

+	

+	@Before

+	public void init()

+	{

+		MockitoAnnotations.initMocks(this)

+	}

+	

+	@Test

+	@Ignore

+	public void testMapAAIExceptionTCommonException() {

+		

+		

+		

+		String restFault = """

+				<Fault>

+<requestError>

+<serviceException>

+<messageId>SVC3002</messageId>

+<text>Error writing output performing %1 on %2 (msg=%3) (ec=%4)</text>

+<variables>

+<variable>PUTcustomer</variable>

+<variable>SubName01</variable>

+<variable>Unexpected error reading/updating database:Adding this property for key [service-instance-id] and value [USSTU2CFCNC0101UJZZ01] violates a uniqueness constraint [service-instance-id]</variable>

+<variable>ERR.5.4.5105</variable>

+</variables>

+</serviceException>

+</requestError>

+</Fault>

+			"""	

+		def errorString = """<requestError>

+<serviceException>

+<messageId>SVC3002</messageId>

+<text>Error writing output performing %1 on %2 (msg=%3) (ec=%4)</text>

+<variables>

+<variable>PUTcustomer</variable>

+<variable>SubName01</variable>

+<variable>Unexpected error reading/updating database:Adding this property for key [service-instance-id] and value [USSTU2CFCNC0101UJZZ01] violates a uniqueness constraint [service-instance-id]</variable>

+<variable>ERR.5.4.5105</variable>

+</variables>

+</serviceException>

+</requestError>""" as String

+

+

+			

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+

+		TrinityExceptionUtil util = new TrinityExceptionUtil()

+		Assert.assertEquals(errorString, util.mapAAIExceptionTCommonException(restFault, mockExecution))

+	}

+	

+	

+	

+	

+	@Test

+	public void testBuildException() {				

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("prefix")).thenReturn("test_")

+		when(mockExecution.getVariable("test_ResponseCode")).thenReturn("400")

+		ArrayList msgVars = new ArrayList()

+		msgVars.add("var1")

+		msgVars.add("var2")

+		when(mockExecution.getVariable("test_errVariables")).thenReturn(msgVars)

+

+		

+		TrinityExceptionUtil util = new TrinityExceptionUtil()

+		String msg = "Bad request"

+		String errorString = """<tns:requestError xmlns:tns="http://org.openecomp/mso/request/types/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://org.openecomp/mso/request/types/v1 MsoServiceInstanceTypesV1.xsd">

+	<tns:serviceException>

+		<tns:messageId>SVC2000</tns:messageId>

+		<tns:text>The following service error occurred: %1. Error code is %2.</tns:text>

+			<tns:variables>var1</tns:variables>

+			<tns:variables>var2</tns:variables>

+	</tns:serviceException>

+</tns:requestError>"""

+		Assert.assertEquals(errorString, util.buildException(msg, mockExecution))

+	}

+	

+	@Test

+	public void testMapAOTSExecptionToCommonException() {

+		ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+		when(mockExecution.getVariable("prefix")).thenReturn("test_")

+		when(mockExecution.getVariable("test_ResponseCode")).thenReturn("400")

+		

+		TrinityExceptionUtil util = new TrinityExceptionUtil()

+		String errorString = """<tns:requestError xmlns:tns="http://org.openecomp/mso/request/types/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://org.openecomp/mso/request/types/v1 MsoServiceInstanceTypesV1.xsd">

+	<tns:serviceException>

+		<tns:messageId>SVC2000</tns:messageId>

+		<tns:text>The following service error occurred: %1. Error code is %2.</tns:text>

+			<tns:variables>Received error from AOTS: bad stuff</tns:variables>

+			<tns:variables>400</tns:variables>

+	</tns:serviceException>

+</tns:requestError>"""

+		Assert.assertEquals(errorString, util.mapAOTSExecptionToCommonException(aotsFault, mockExecution))

+	}

+	

+	

+	@Test

+	public void testParseError() {

+	ExecutionEntity mockExecution = mock(ExecutionEntity.class)

+	String errorString = "The following service error occurred: %1. Error code is %2."

+	ArrayList msgVars = new ArrayList()

+	msgVars.add("var1")

+	msgVars.add("var2")

+	when(mockExecution.getVariable("prefix")).thenReturn("test_")

+	when(mockExecution.getVariable("test_errTxt")).thenReturn(errorString)

+	when(mockExecution.getVariable("test_errVariables")).thenReturn(msgVars)

+		

+	TrinityExceptionUtil util = new TrinityExceptionUtil()

+

+	Assert.assertEquals("The following service error occurred: var1. Error code is var2.", util.parseError(mockExecution))

+}

+

+	

+	

+}

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/BPMNUtil.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/BPMNUtil.java
index 4e2b1e1..27f2479 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/BPMNUtil.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/BPMNUtil.java
@@ -1,214 +1,214 @@
-package org.openecomp.mso.bpmn.common;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-import static org.mockito.Matchers.any;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.spy;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.core.Response;
-
-import org.camunda.bpm.engine.ProcessEngineServices;
-import org.camunda.bpm.engine.history.HistoricProcessInstance;
-import org.camunda.bpm.engine.history.HistoricVariableInstance;
-import org.camunda.bpm.engine.variable.impl.VariableMapImpl;
-import org.jboss.resteasy.spi.AsynchronousResponse;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.stubbing.Answer;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowAsyncCommonResource;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResource;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
-
-/**
- * Set of utility methods used for Unit testing
- *
- */
-public class BPMNUtil {
-
-	public static String getVariable(ProcessEngineServices processEngineServices, String processDefinitionID, String name) {
-		String pID = getProcessInstanceId(processEngineServices,
-				processDefinitionID);
-		assertProcessInstanceFinished(processEngineServices, pID);
-		HistoricVariableInstance responseData = processEngineServices.getHistoryService()
-			    .createHistoricVariableInstanceQuery().processInstanceId(pID)
-			    .variableName(name)
-			    .singleResult();
-		
-		if (responseData != null) {
-			return (responseData.getValue() != null ? responseData.getValue().toString(): null); 
-		}
-		return null;
-	}
-
-	@SuppressWarnings("unchecked")
-	public static <T extends Object> T getRawVariable(ProcessEngineServices processEngineServices, String processDefinitionID, String name) {
-		String pID = getProcessInstanceId(processEngineServices,
-				processDefinitionID);
-		assertProcessInstanceFinished(processEngineServices, pID);
-		Object responseData = processEngineServices.getHistoryService()
-			    .createHistoricVariableInstanceQuery().processInstanceId(pID)
-			    .variableName(name)
-			    .singleResult()
-			    .getValue();
-		return (T) responseData;
-	}
-	
-	
-	public static void assertProcessInstanceFinished(ProcessEngineServices processEngineServices, String pid) {
-	    assertEquals(1, processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count());
-	}
-	
-	public static void assertProcessInstanceNotFinished(ProcessEngineServices processEngineServices, String processDefinitionID) {
-		String pID = getProcessInstanceId(processEngineServices,
-				processDefinitionID);		
-	    assertEquals(0, processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pID).finished().count());
-	}
-
-	private static String getProcessInstanceId(
-			ProcessEngineServices processEngineServices, String processDefinitionID) {
-		List<HistoricProcessInstance> historyList =  processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().list();
-		String pID = null;
-		for (HistoricProcessInstance hInstance: historyList) {
-			if (hInstance.getProcessDefinitionKey().equals(processDefinitionID)) {
-				pID = hInstance.getId();
-				break;
-			}
-		}
-		return pID;
-	}
-
-	public static boolean isProcessInstanceFinished(ProcessEngineServices processEngineServices, String pid) {
-	    return processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count() == 1 ? true: false;
-	}
-
-	
-	private static void buildVariable(String key, String value, Map<String,Object> variableValueType) {
-		Map<String, Object> host = new HashMap<String, Object>();
-		host.put("value", value);
-		host.put("type", "String");
-		variableValueType.put(key, host);
-	}
-	
-	public static WorkflowResponse executeWorkFlow(ProcessEngineServices processEngineServices, String processKey, Map<String,String> variables) {
-		WorkflowResource workflowResource = new WorkflowResource();
-		VariableMapImpl variableMap = new VariableMapImpl();
-
-		Map<String, Object> variableValueType = new HashMap<String, Object>();
-		for (String key : variables.keySet()) {
-			buildVariable(key, variables.get(key), variableValueType);
-		}
-		buildVariable("mso-service-request-timeout","600", variableValueType);
-		variableMap.put("variables", variableValueType);
-		
-		workflowResource.setProcessEngineServices4junit(processEngineServices);
-		Response response = workflowResource.startProcessInstanceByKey(
-					processKey, variableMap);
-		WorkflowResponse workflowResponse = (WorkflowResponse) response.getEntity();
-		return workflowResponse;
-	}
-
-	//Check the runtime service to see whether the process is completed
-	public static void waitForWorkflowToFinish(ProcessEngineServices processEngineServices, String pid) throws InterruptedException {
-		// Don't wait forever
-		long waitTime = 120000;
-		long endTime = System.currentTimeMillis() + waitTime;
-
-		while (true) {
-			if (processEngineServices.getRuntimeService().createProcessInstanceQuery().processInstanceId(pid).singleResult() == null) {
-				break;
-			}
-
-			if (System.currentTimeMillis() >= endTime) {
-				fail("Process " + pid + " did not finish in " + waitTime + "ms");
-			}
-
-			Thread.sleep(200);
-		}
-	}
-	
-	/**
-	 * Executes the Asynchronous workflow in synchronous fashion and returns the WorkflowResponse object
-	 * @param processEngineServices
-	 * @param processKey
-	 * @param variables
-	 * @return
-	 * @throws InterruptedException
-	 */
-	public static WorkflowResponse executeAsyncWorkflow(ProcessEngineServices processEngineServices, String processKey, Map<String,String> variables) throws InterruptedException {
-		ProcessThread pthread = new ProcessThread(processKey, processEngineServices, variables);
-		pthread.start();
-		BPMNUtil.assertProcessInstanceNotFinished(processEngineServices, processKey);
-		String pid = getProcessInstanceId(processEngineServices, processKey);
-		//Caution: If there is a problem with workflow, this may wait for ever
-		while (true) {
-			pid = getProcessInstanceId(processEngineServices, processKey);
-			if (!isProcessInstanceFinished(processEngineServices,pid)) {
-				Thread.sleep(200);
-			} else{
-				break;
-			}
-		}
-		//need to retrieve for second time ?
-		pid = getProcessInstanceId(processEngineServices, processKey);
-		waitForWorkflowToFinish(processEngineServices, pid);
-		return pthread.workflowResponse;
-	}
-
-	/**
-	 * Execute workflow using async resource
-	 * @param processEngineServices
-	 * @param processKey
-	 * @param asyncResponse
-	 * @param variables
-	 */
-	private static void executeAsyncFlow(ProcessEngineServices processEngineServices, String processKey, AsynchronousResponse asyncResponse, Map<String,String> variables) {
-		WorkflowAsyncCommonResource workflowResource = new WorkflowAsyncCommonResource();
-		VariableMapImpl variableMap = new VariableMapImpl();
-
-		Map<String, Object> variableValueType = new HashMap<String, Object>();
-		for (String key : variables.keySet()) {
-			buildVariable(key, variables.get(key), variableValueType);
-		}
-		buildVariable("mso-service-request-timeout","600", variableValueType);
-		variableMap.put("variables", variableValueType);
-		
-		workflowResource.setProcessEngineServices4junit(processEngineServices);
-		workflowResource.startProcessInstanceByKey(asyncResponse, processKey, variableMap);
-	}
-	
-	/**
-	 * Helper class which executes workflow in a thread
-	 *
-	 */
-	static class ProcessThread extends Thread {
-		
-		public WorkflowResponse workflowResponse = null;
-		public String processKey;
-		public AsynchronousResponse asyncResponse = spy(AsynchronousResponse.class);
-		public boolean started;
-		public ProcessEngineServices processEngineServices;
-		public Map<String,String> variables;
-		
-		public ProcessThread(String processKey, ProcessEngineServices processEngineServices, Map<String,String> variables) {
-			this.processKey = processKey;
-			this.processEngineServices = processEngineServices;
-			this.variables = variables;
-		}
-		
-		public void run() {
-			started = true;
-			doAnswer(new Answer<Void>() {
-			    public Void answer(InvocationOnMock invocation) {
-			      Response response = (Response) invocation.getArguments()[0];
-			      workflowResponse = (WorkflowResponse) response.getEntity();
-			      return null;
-			    }
-			}).when(asyncResponse).setResponse(any(Response.class));		
-			executeAsyncFlow(processEngineServices, processKey, asyncResponse, variables);
-		}
-	}
-}
+package org.openecomp.mso.bpmn.common;

+

+import static org.junit.Assert.assertEquals;

+import static org.junit.Assert.fail;

+import static org.mockito.Matchers.any;

+import static org.mockito.Mockito.doAnswer;

+import static org.mockito.Mockito.spy;

+

+import java.util.HashMap;

+import java.util.List;

+import java.util.Map;

+

+import javax.ws.rs.core.Response;

+

+import org.camunda.bpm.engine.ProcessEngineServices;

+import org.camunda.bpm.engine.history.HistoricProcessInstance;

+import org.camunda.bpm.engine.history.HistoricVariableInstance;

+import org.camunda.bpm.engine.variable.impl.VariableMapImpl;

+import org.jboss.resteasy.spi.AsynchronousResponse;

+import org.mockito.invocation.InvocationOnMock;

+import org.mockito.stubbing.Answer;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowAsyncCommonResource;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResource;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+

+/**

+ * Set of utility methods used for Unit testing

+ *

+ */

+public class BPMNUtil {

+

+	public static String getVariable(ProcessEngineServices processEngineServices, String processDefinitionID, String name) {

+		String pID = getProcessInstanceId(processEngineServices,

+				processDefinitionID);

+		assertProcessInstanceFinished(processEngineServices, pID);

+		HistoricVariableInstance responseData = processEngineServices.getHistoryService()

+			    .createHistoricVariableInstanceQuery().processInstanceId(pID)

+			    .variableName(name)

+			    .singleResult();

+		

+		if (responseData != null) {

+			return (responseData.getValue() != null ? responseData.getValue().toString(): null); 

+		}

+		return null;

+	}

+

+	@SuppressWarnings("unchecked")

+	public static <T extends Object> T getRawVariable(ProcessEngineServices processEngineServices, String processDefinitionID, String name) {

+		String pID = getProcessInstanceId(processEngineServices,

+				processDefinitionID);

+		assertProcessInstanceFinished(processEngineServices, pID);

+		Object responseData = processEngineServices.getHistoryService()

+			    .createHistoricVariableInstanceQuery().processInstanceId(pID)

+			    .variableName(name)

+			    .singleResult()

+			    .getValue();

+		return (T) responseData;

+	}

+	

+	

+	public static void assertProcessInstanceFinished(ProcessEngineServices processEngineServices, String pid) {

+	    assertEquals(1, processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count());

+	}

+	

+	public static void assertProcessInstanceNotFinished(ProcessEngineServices processEngineServices, String processDefinitionID) {

+		String pID = getProcessInstanceId(processEngineServices,

+				processDefinitionID);		

+	    assertEquals(0, processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pID).finished().count());

+	}

+

+	private static String getProcessInstanceId(

+			ProcessEngineServices processEngineServices, String processDefinitionID) {

+		List<HistoricProcessInstance> historyList =  processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().list();

+		String pID = null;

+		for (HistoricProcessInstance hInstance: historyList) {

+			if (hInstance.getProcessDefinitionKey().equals(processDefinitionID)) {

+				pID = hInstance.getId();

+				break;

+			}

+		}

+		return pID;

+	}

+

+	public static boolean isProcessInstanceFinished(ProcessEngineServices processEngineServices, String pid) {

+	    return processEngineServices.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count() == 1 ? true: false;

+	}

+

+	

+	private static void buildVariable(String key, String value, Map<String,Object> variableValueType) {

+		Map<String, Object> host = new HashMap<String, Object>();

+		host.put("value", value);

+		host.put("type", "String");

+		variableValueType.put(key, host);

+	}

+	

+	public static WorkflowResponse executeWorkFlow(ProcessEngineServices processEngineServices, String processKey, Map<String,String> variables) {

+		WorkflowResource workflowResource = new WorkflowResource();

+		VariableMapImpl variableMap = new VariableMapImpl();

+

+		Map<String, Object> variableValueType = new HashMap<String, Object>();

+		for (String key : variables.keySet()) {

+			buildVariable(key, variables.get(key), variableValueType);

+		}

+		buildVariable("mso-service-request-timeout","600", variableValueType);

+		variableMap.put("variables", variableValueType);

+		

+		workflowResource.setProcessEngineServices4junit(processEngineServices);

+		Response response = workflowResource.startProcessInstanceByKey(

+					processKey, variableMap);

+		WorkflowResponse workflowResponse = (WorkflowResponse) response.getEntity();

+		return workflowResponse;

+	}

+

+	//Check the runtime service to see whether the process is completed

+	public static void waitForWorkflowToFinish(ProcessEngineServices processEngineServices, String pid) throws InterruptedException {

+		// Don't wait forever

+		long waitTime = 120000;

+		long endTime = System.currentTimeMillis() + waitTime;

+

+		while (true) {

+			if (processEngineServices.getRuntimeService().createProcessInstanceQuery().processInstanceId(pid).singleResult() == null) {

+				break;

+			}

+

+			if (System.currentTimeMillis() >= endTime) {

+				fail("Process " + pid + " did not finish in " + waitTime + "ms");

+			}

+

+			Thread.sleep(200);

+		}

+	}

+	

+	/**

+	 * Executes the Asynchronous workflow in synchronous fashion and returns the WorkflowResponse object

+	 * @param processEngineServices

+	 * @param processKey

+	 * @param variables

+	 * @return

+	 * @throws InterruptedException

+	 */

+	public static WorkflowResponse executeAsyncWorkflow(ProcessEngineServices processEngineServices, String processKey, Map<String,String> variables) throws InterruptedException {

+		ProcessThread pthread = new ProcessThread(processKey, processEngineServices, variables);

+		pthread.start();

+		BPMNUtil.assertProcessInstanceNotFinished(processEngineServices, processKey);

+		String pid = getProcessInstanceId(processEngineServices, processKey);

+		//Caution: If there is a problem with workflow, this may wait for ever

+		while (true) {

+			pid = getProcessInstanceId(processEngineServices, processKey);

+			if (!isProcessInstanceFinished(processEngineServices,pid)) {

+				Thread.sleep(200);

+			} else{

+				break;

+			}

+		}

+		//need to retrieve for second time ?

+		pid = getProcessInstanceId(processEngineServices, processKey);

+		waitForWorkflowToFinish(processEngineServices, pid);

+		return pthread.workflowResponse;

+	}

+

+	/**

+	 * Execute workflow using async resource

+	 * @param processEngineServices

+	 * @param processKey

+	 * @param asyncResponse

+	 * @param variables

+	 */

+	private static void executeAsyncFlow(ProcessEngineServices processEngineServices, String processKey, AsynchronousResponse asyncResponse, Map<String,String> variables) {

+		WorkflowAsyncCommonResource workflowResource = new WorkflowAsyncCommonResource();

+		VariableMapImpl variableMap = new VariableMapImpl();

+

+		Map<String, Object> variableValueType = new HashMap<String, Object>();

+		for (String key : variables.keySet()) {

+			buildVariable(key, variables.get(key), variableValueType);

+		}

+		buildVariable("mso-service-request-timeout","600", variableValueType);

+		variableMap.put("variables", variableValueType);

+		

+		workflowResource.setProcessEngineServices4junit(processEngineServices);

+		workflowResource.startProcessInstanceByKey(asyncResponse, processKey, variableMap);

+	}

+	

+	/**

+	 * Helper class which executes workflow in a thread

+	 *

+	 */

+	static class ProcessThread extends Thread {

+		

+		public WorkflowResponse workflowResponse = null;

+		public String processKey;

+		public AsynchronousResponse asyncResponse = spy(AsynchronousResponse.class);

+		public boolean started;

+		public ProcessEngineServices processEngineServices;

+		public Map<String,String> variables;

+		

+		public ProcessThread(String processKey, ProcessEngineServices processEngineServices, Map<String,String> variables) {

+			this.processKey = processKey;

+			this.processEngineServices = processEngineServices;

+			this.variables = variables;

+		}

+		

+		public void run() {

+			started = true;

+			doAnswer(new Answer<Void>() {

+			    public Void answer(InvocationOnMock invocation) {

+			      Response response = (Response) invocation.getArguments()[0];

+			      workflowResponse = (WorkflowResponse) response.getEntity();

+			      return null;

+			    }

+			}).when(asyncResponse).setResponse(any(Response.class));		

+			executeAsyncFlow(processEngineServices, processKey, asyncResponse, variables);

+		}

+	}

+}

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CompleteMsoProcessTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CompleteMsoProcessTest.java
index 5cd59f3..e99f2a8 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CompleteMsoProcessTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CompleteMsoProcessTest.java
@@ -1,207 +1,217 @@
-/*- 
- * ============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.common;
-
-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 java.util.HashMap;
-import java.util.Map;
-
-import org.camunda.bpm.engine.test.Deployment;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
-
-/**
- * Unit test for CompleteMsoProcess.bpmn.
- */
-public class CompleteMsoProcessTest extends WorkflowTest {
-	
-	private void executeFlow(String inputRequestFile) throws InterruptedException {
-		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");
-		
-		//String changeFeatureActivateRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/ChangeFeatureActivateV1/" + inputRequestFile);
-		Map<String, String> variables = new HashMap<String, String>();		
-		variables.put("CompleteMsoProcessRequest",inputRequestFile);
-		
-		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CompleteMsoProcess", variables);
-		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
-		logEnd();
-	}	
-	
-	@Test		
-	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn"})
-	public void msoCompletionRequestWithNotificationurl_200() throws Exception {
-		logStart();	
-		
-		//Execute Flow
-		executeFlow(gMsoCompletionRequestWithNotificationurl());
-		
-		//Verify Error
-		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");
-		Assert.assertEquals("200", CMSO_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));
-		logEnd();
-	}
-	
-	@Test		
-	@Ignore // BROKEN TEST
-	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn"})
-	public void msoCompletionRequestWithNotificationurl_500() throws Exception {
-		logStart();
-		
-		//Execute Flow
-		executeFlow(gMsoCompletionRequestWithNotificationurl());
-		
-		//Verify Error
-		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");
-		Assert.assertEquals("500", CMSO_ResponseCode);
-		Assert.assertFalse((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));
-		logEnd();
-	}	
-
-	@Test		
-	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn"})
-	public void msoCompletionRequestWithNoNotificationurl() throws Exception {
-		logStart();	
-		
-		//Execute Flow
-		executeFlow(gMsoCompletionRequestWithNoNotificationurl());
-		
-		//Verify Error
-		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");
-		Assert.assertEquals("200", CMSO_ResponseCode);	
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));
-		logEnd();
-	}
-
-	@Test		
-	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn"})
-	public void msoCompletionRequestWithNotificationurlNoRequestId() throws Exception {
-		logStart();	
-		
-		//Execute Flow
-		executeFlow(gMsoCompletionRequestWithNotificationurlNoRequestId());
-		
-		//Verify Error
-		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");
-		Assert.assertEquals("200", CMSO_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));
-		logEnd();	
-	}
-	
-	@Test		
-	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn"})
-	public void msoCompletionRequestWithNoNotificationurlNoRequestId() throws Exception {
-		logStart();
-		
-		//Execute Flow
-		executeFlow(gMsoCompletionRequestWithNoNotificationurlNoRequestId());
-		
-		//Verify Error
-		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");
-		Assert.assertEquals("200", CMSO_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));
-		logEnd();
-	}	
-
-	public String gMsoCompletionRequestWithNotificationurl() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://ecomp.openecomp.org.com/mso/workflow/schema/v1\">"
-				+ "		<ns:request-information>"
-				+ "			<ns:request-id>uCPE1020_STUW105_5002</ns:request-id>"
-				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"				
-				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"
-				+ "			<ns:source>OMX</ns:source>"
-				+ "			<ns:notification-url>https://t3nap1a1.snt.bst.bls.com:9004/sdncontroller-sdncontroller-inbound-ws-war/sdncontroller-sdncontroller-inbound-ws.wsdl</ns:notification-url>"				
-				+ "			<ns:order-number>10205000</ns:order-number>"				
-				+ "			<ns:order-version>1</ns:order-version>"
-				+ "		</ns:request-information>"				
-				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"
-				+ "</sdncadapterworkflow:MsoCompletionRequest>";
-		
-		return xml;
-	}
-		
-
-
-	public String gMsoCompletionRequestWithNoNotificationurl() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://openecomp.org/mso/workflow/schema/v1\">"
-				+ "		<ns:request-information>"
-				+ "			<ns:request-id>uCPE1020_STUW105_5002</ns:request-id>"
-				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"				
-				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"
-				+ "			<ns:source>OMX</ns:source>"
-				+ "			<ns:notification-url></ns:notification-url>"				
-				+ "			<ns:order-number>10205000</ns:order-number>"				
-				+ "			<ns:order-version>1</ns:order-version>"
-				+ "		</ns:request-information>"				
-				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"
-				+ "</sdncadapterworkflow:MsoCompletionRequest>";
-		
-		return xml;
-	}
-	
-	public String gMsoCompletionRequestWithNoNotificationurlNoRequestId() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://openecomp.org/mso/workflow/schema/v1\">"
-				+ "		<ns:request-information>"
-				+ "			<ns:request-id></ns:request-id>"
-				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"
-				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"
-				+ "			<ns:source>OMX</ns:source>"
-				+ "			<ns:notification-url></ns:notification-url>"				
-				+ "			<ns:order-number>10205000</ns:order-number>"				
-				+ "			<ns:order-version>1</ns:order-version>"
-				+ "		</ns:request-information>"				
-				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"
-				+ "</sdncadapterworkflow:MsoCompletionRequest>";
-		
-		return xml;
-	}	
-	
-	public String gMsoCompletionRequestWithNotificationurlNoRequestId() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://openecomp.org/mso/workflow/schema/v1\">"
-				+ "		<ns:request-information>"
-				+ "			<ns:request-id></ns:request-id>"
-				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"				
-				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"
-				+ "			<ns:source>OMX</ns:source>"
-				+ "			<ns:notification-url>https://t3nap1a1.snt.bst.bls.com:9004/sdncontroller-sdncontroller-inbound-ws-war/sdncontroller-sdncontroller-inbound-ws.wsdl</ns:notification-url>"				
-				+ "			<ns:order-number>10205000</ns:order-number>"				
-				+ "			<ns:order-version>1</ns:order-version>"
-				+ "		</ns:request-information>"				
-				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"
-				+ "</sdncadapterworkflow:MsoCompletionRequest>";
-		
-		return xml;
-	}	
-}
-
+/*- 

+ * ============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.common;

+

+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 java.util.HashMap;

+import java.util.Map;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Ignore;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+

+/**

+ * Unit test for CompleteMsoProcess.bpmn.

+ */

+public class CompleteMsoProcessTest extends WorkflowTest {

+	

+	private void executeFlow(String inputRequestFile) throws InterruptedException {

+		mockUpdateRequestDB(200, "Database/DBUpdateResponse.xml");

+		

+		//String changeFeatureActivateRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/ChangeFeatureActivateV1/" + inputRequestFile);

+		Map<String, String> variables = new HashMap<String, String>();		

+		variables.put("CompleteMsoProcessRequest",inputRequestFile);

+		

+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "CompleteMsoProcess", variables);

+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());

+		logEnd();

+	}	

+	

+	@Test		

+	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoCompletionRequestWithNotificationurl_200() throws Exception {

+		logStart();	

+		

+		//Execute Flow

+		executeFlow(gMsoCompletionRequestWithNotificationurl());

+		

+		//Verify Error

+		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");

+		Assert.assertEquals("200", CMSO_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));

+		logEnd();

+	}

+	

+	@Test		

+	@Ignore // BROKEN TEST

+	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoCompletionRequestWithNotificationurl_500() throws Exception {

+		logStart();

+		

+		//Execute Flow

+		executeFlow(gMsoCompletionRequestWithNotificationurl());

+		

+		//Verify Error

+		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");

+		Assert.assertEquals("500", CMSO_ResponseCode);

+		Assert.assertFalse((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));

+		logEnd();

+	}	

+

+	@Test		

+	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoCompletionRequestWithNoNotificationurl() throws Exception {

+		logStart();	

+		

+		//Execute Flow

+		executeFlow(gMsoCompletionRequestWithNoNotificationurl());

+		

+		//Verify Error

+		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");

+		Assert.assertEquals("200", CMSO_ResponseCode);	

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));

+		logEnd();

+	}

+

+	@Test		

+	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoCompletionRequestWithNotificationurlNoRequestId() throws Exception {

+		logStart();	

+		

+		//Execute Flow

+		executeFlow(gMsoCompletionRequestWithNotificationurlNoRequestId());

+		

+		//Verify Error

+		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");

+		Assert.assertEquals("200", CMSO_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));

+		logEnd();	

+	}

+	

+	@Test		

+	@Deployment(resources = {"subprocess/CompleteMsoProcess.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoCompletionRequestWithNoNotificationurlNoRequestId() throws Exception {

+		logStart();

+		

+		//Execute Flow

+		executeFlow(gMsoCompletionRequestWithNoNotificationurlNoRequestId());

+		

+		//Verify Error

+		String CMSO_ResponseCode = BPMNUtil.getVariable(processEngineRule, "CompleteMsoProcess", "CMSO_ResponseCode");

+		Assert.assertEquals("200", CMSO_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "CompleteMsoProcess", "CMSO_SuccessIndicator"));

+		logEnd();

+	}	

+

+	public String gMsoCompletionRequestWithNotificationurl() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://ecomp.openecomp.org.com/mso/workflow/schema/v1\">"

+				+ "		<ns:request-information>"

+				+ "			<ns:request-id>uCPE1020_STUW105_5002</ns:request-id>"

+				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"				

+				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"

+				+ "			<ns:source>OMX</ns:source>"

+				+ "			<ns:notification-url>https://t3nap1a1.snt.bst.bls.com:9004/sdncontroller-sdncontroller-inbound-ws-war/sdncontroller-sdncontroller-inbound-ws.wsdl</ns:notification-url>"				

+				+ "			<ns:order-number>10205000</ns:order-number>"				

+				+ "			<ns:order-version>1</ns:order-version>"

+				+ "		</ns:request-information>"				

+				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"

+				+ "</sdncadapterworkflow:MsoCompletionRequest>";

+		

+		return xml;

+	}

+		

+

+

+	public String gMsoCompletionRequestWithNoNotificationurl() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://openecomp.org/mso/workflow/schema/v1\">"

+				+ "		<ns:request-information>"

+				+ "			<ns:request-id>uCPE1020_STUW105_5002</ns:request-id>"

+				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"				

+				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"

+				+ "			<ns:source>OMX</ns:source>"

+				+ "			<ns:notification-url></ns:notification-url>"				

+				+ "			<ns:order-number>10205000</ns:order-number>"				

+				+ "			<ns:order-version>1</ns:order-version>"

+				+ "		</ns:request-information>"				

+				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"

+				+ "</sdncadapterworkflow:MsoCompletionRequest>";

+		

+		return xml;

+	}

+	

+	public String gMsoCompletionRequestWithNoNotificationurlNoRequestId() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://openecomp.org/mso/workflow/schema/v1\">"

+				+ "		<ns:request-information>"

+				+ "			<ns:request-id></ns:request-id>"

+				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"

+				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"

+				+ "			<ns:source>OMX</ns:source>"

+				+ "			<ns:notification-url></ns:notification-url>"				

+				+ "			<ns:order-number>10205000</ns:order-number>"				

+				+ "			<ns:order-version>1</ns:order-version>"

+				+ "		</ns:request-information>"				

+				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"

+				+ "</sdncadapterworkflow:MsoCompletionRequest>";

+		

+		return xml;

+	}	

+	

+	public String gMsoCompletionRequestWithNotificationurlNoRequestId() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:MsoCompletionRequest xmlns:ns=\"http://openecomp.org/mso/request/types/v1\" xmlns:sdncadapterworkflow=\"http://openecomp.org/mso/workflow/schema/v1\">"

+				+ "		<ns:request-information>"

+				+ "			<ns:request-id></ns:request-id>"

+				+ "			<ns:request-action>Layer3ServiceActivateRequest</ns:request-action>"				

+				+ "			<ns:request-sub-action>COMPLETE</ns:request-sub-action>"

+				+ "			<ns:source>OMX</ns:source>"

+				+ "			<ns:notification-url>https://t3nap1a1.snt.bst.bls.com:9004/sdncontroller-sdncontroller-inbound-ws-war/sdncontroller-sdncontroller-inbound-ws.wsdl</ns:notification-url>"				

+				+ "			<ns:order-number>10205000</ns:order-number>"				

+				+ "			<ns:order-version>1</ns:order-version>"

+				+ "		</ns:request-information>"				

+				+ "		<sdncadapterworkflow:mso-bpel-name>UCPELayer3ServiceActivateV1</sdncadapterworkflow:mso-bpel-name>"

+				+ "</sdncadapterworkflow:MsoCompletionRequest>";

+		

+		return xml;

+	}	

+}

+

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CreateAAIVfModuleTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CreateAAIVfModuleTest.java
index b41d2d2..63b1f77 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CreateAAIVfModuleTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/CreateAAIVfModuleTest.java
@@ -1,277 +1,277 @@
-/*- 
- * ============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.common;
-
-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.put;
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
-import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.camunda.bpm.engine.RuntimeService;
-import org.camunda.bpm.engine.test.Deployment;
-import org.junit.Assert;
-import org.junit.Test;
-import org.openecomp.mso.bpmn.core.WorkflowException;
-
-/**
- * Unit test for CreateAAIVfModule.bpmn.
- */
-public class CreateAAIVfModuleTest extends WorkflowTest {
-	
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateGenericVnfSuccess_200() {
-
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("isVidRequest", "false");
-		variables.put("vnfName", "STMTN5MMSC22");
-		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC22-MMSC::module-0-0");
-		variables.put("vfModuleModelName", "MMSC::module-0");
-		
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		String response = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
-		String responseCode = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
-		Assert.assertEquals("201", responseCode);
-		System.out.println(response);
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateVfModuleSuccess_200() {
-		// create Add-on VF Module for existing Generic VNF
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("isVidRequest", "false");
-		variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
-		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-1-0");
-		variables.put("vfModuleModelName", "STMTN5MMSC21-MMSC::model-1-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		String response = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
-		String responseCode = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");
-		Assert.assertEquals("201", responseCode);
-		System.out.println(response);
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestQueryGenericVnfFailure_5000() {
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");		
-		variables.put("isVidRequest", "false");
-		variables.put("vnfName", "STMTN5MMSC23");
-		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC23-MMSC::module-0-0");
-		variables.put("vfModuleModelName", "MMSC::module-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);		
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
-		Assert.assertEquals(5000, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateDupGenericVnfFailure_1002() {
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");		
-		variables.put("isVidRequest", "false");
-		variables.put("vnfName", "STMTN5MMSC21");
-		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-0-0");
-		variables.put("vfModuleModelName", "MMSC::module-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
-		Assert.assertEquals(1002, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("Invalid request for new Generic VNF which already exists"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateDupVfModuleFailure_1002() {
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");		
-		variables.put("isVidRequest", "false");
-		variables.put("vnfId", "2f6aee38-1e2a-11e6-82d1-ffc7d9ee8aa4");
-		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC20-MMSC::module-1-0");
-		variables.put("vfModuleModelName", "STMTN5MMSC20-MMSC::model-1-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
-		Assert.assertEquals(1002, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("already exists for Generic VNF"));
-		System.out.println(exception.getErrorMessage());
-	}
-	
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateGenericVnfFailure_5000() {
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");		
-		variables.put("isVidRequest", "false");
-		variables.put("vnfName", "STMTN5MMSC22");
-		variables.put("serviceId", "99999999-9999-9999-9999-999999999999");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC22-PCRF::module-1-0");
-		variables.put("vfModuleModelName", "PCRF::module-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
-		Assert.assertEquals(5000, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateGenericVnfFailure_1002() {
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");		
-		variables.put("isVidRequest", "false");
-		variables.put("vnfId", "768073c7-f41f-4822-9323-b75962763d74");
-		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC22-PCRF::module-1-0");
-		variables.put("vfModuleModelName", "PCRF::module-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
-		Assert.assertEquals(1002, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("Generic VNF Not Found"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/CreateAAIVfModule.bpmn"
-		})
-	public void  TestCreateVfModuleFailure_5000() {
-		MockAAIGenericVnfSearch();
-		MockAAICreateGenericVnf();
-		MockAAIVfModulePUT(true);
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");		
-		variables.put("isVidRequest", "false");
-		variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");
-		variables.put("serviceId", "99999999-9999-9999-9999-999999999999");
-		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");
-		variables.put("personaModelVersion", "1.0");
-		variables.put("vfModuleName", "STMTN5MMSC21-PCRF::module-1-0");
-		variables.put("vfModuleModelName", "STMTN5MMSC21-PCRF::model-1-0");
-		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");
-		Assert.assertEquals(5000, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	public static void MockAAICreateGenericVnf(){
-		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*"))
-				.withRequestBody(containing("<service-id>00000000-0000-0000-0000-000000000000</service-id>"))
-				.willReturn(aResponse()
-						.withStatus(201)));
-		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*"))
-				.withRequestBody(containing("<service-id>99999999-9999-9999-9999-999999999999</service-id>"))
-				.willReturn(aResponse()
-						.withStatus(500)
-						.withHeader("Content-Type", "text/xml")
-						.withBodyFile("aaiFault.xml")));
-	}
-	
-	// 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)));
-	}
-	
+/*- 

+ * ============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.common;

+

+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.put;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;

+import static org.openecomp.mso.bpmn.common.DeleteAAIVfModuleTest.MockAAIGenericVnfSearch;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.camunda.bpm.engine.RuntimeService;

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.core.WorkflowException;

+

+/**

+ * Unit test for CreateAAIVfModule.bpmn.

+ */

+public class CreateAAIVfModuleTest extends WorkflowTest {

+	

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateGenericVnfSuccess_200() {

+

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("isVidRequest", "false");

+		variables.put("vnfName", "STMTN5MMSC22");

+		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC22-MMSC::module-0-0");

+		variables.put("vfModuleModelName", "MMSC::module-0");

+		

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		String response = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");

+		String responseCode = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");

+		Assert.assertEquals("201", responseCode);

+		System.out.println(response);

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateVfModuleSuccess_200() {

+		// create Add-on VF Module for existing Generic VNF

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("isVidRequest", "false");

+		variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-1-0");

+		variables.put("vfModuleModelName", "STMTN5MMSC21-MMSC::model-1-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		String response = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");

+		String responseCode = BPMNUtil.getVariable(processEngineRule, "CreateAAIVfModule", "CAAIVfMod_createVfModuleResponseCode");

+		Assert.assertEquals("201", responseCode);

+		System.out.println(response);

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestQueryGenericVnfFailure_5000() {

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");		

+		variables.put("isVidRequest", "false");

+		variables.put("vnfName", "STMTN5MMSC23");

+		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC23-MMSC::module-0-0");

+		variables.put("vfModuleModelName", "MMSC::module-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);		

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");

+		Assert.assertEquals(500, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("Error occurred attempting to query AAI"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateDupGenericVnfFailure_1002() {

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");		

+		variables.put("isVidRequest", "false");

+		variables.put("vnfName", "STMTN5MMSC21");

+		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC21-MMSC::module-0-0");

+		variables.put("vfModuleModelName", "MMSC::module-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");

+		Assert.assertEquals(1002, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("Invalid request for new Generic VNF which already exists"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateDupVfModuleFailure_1002() {

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");		

+		variables.put("isVidRequest", "false");

+		variables.put("vnfId", "2f6aee38-1e2a-11e6-82d1-ffc7d9ee8aa4");

+		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC20-MMSC::module-1-0");

+		variables.put("vfModuleModelName", "STMTN5MMSC20-MMSC::model-1-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");

+		Assert.assertEquals(1002, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("already exists for Generic VNF"));

+		System.out.println(exception.getErrorMessage());

+	}

+	

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateGenericVnfFailure_5000() {

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");		

+		variables.put("isVidRequest", "false");

+		variables.put("vnfName", "STMTN5MMSC22");

+		variables.put("serviceId", "99999999-9999-9999-9999-999999999999");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC22-PCRF::module-1-0");

+		variables.put("vfModuleModelName", "PCRF::module-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");

+		Assert.assertEquals(5000, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateGenericVnfFailure_1002() {

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");		

+		variables.put("isVidRequest", "false");

+		variables.put("vnfId", "768073c7-f41f-4822-9323-b75962763d74");

+		variables.put("serviceId", "00000000-0000-0000-0000-000000000000");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC22-PCRF::module-1-0");

+		variables.put("vfModuleModelName", "PCRF::module-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");

+		Assert.assertEquals(1002, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("Generic VNF Not Found"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/CreateAAIVfModule.bpmn"

+		})

+	public void  TestCreateVfModuleFailure_5000() {

+		MockAAIGenericVnfSearch();

+		MockAAICreateGenericVnf();

+		MockAAIVfModulePUT(true);

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");		

+		variables.put("isVidRequest", "false");

+		variables.put("vnfId", "a27ce5a9-29c4-4c22-a017-6615ac73c721");

+		variables.put("serviceId", "99999999-9999-9999-9999-999999999999");

+		variables.put("personaModelId", "973ed047-d251-4fb9-bf1a-65b8949e0a73");

+		variables.put("personaModelVersion", "1.0");

+		variables.put("vfModuleName", "STMTN5MMSC21-PCRF::module-1-0");

+		variables.put("vfModuleModelName", "STMTN5MMSC21-PCRF::model-1-0");

+		runtimeService.startProcessInstanceByKey("CreateAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "CreateAAIVfModule", "WorkflowException");

+		Assert.assertEquals(5000, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	public static void MockAAICreateGenericVnf(){

+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*"))

+				.withRequestBody(containing("<service-id>00000000-0000-0000-0000-000000000000</service-id>"))

+				.willReturn(aResponse()

+						.withStatus(201)));

+		stubFor(put(urlMatching("/aai/v[0-9]+/network/generic-vnfs/generic-vnf/.*"))

+				.withRequestBody(containing("<service-id>99999999-9999-9999-9999-999999999999</service-id>"))

+				.willReturn(aResponse()

+						.withStatus(500)

+						.withHeader("Content-Type", "text/xml")

+						.withBodyFile("aaiFault.xml")));

+	}

+	

+	// 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)));

+	}

+	

 }
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/DeleteAAIVfModuleTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/DeleteAAIVfModuleTest.java
index 0136b67..d8e0037 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/DeleteAAIVfModuleTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/DeleteAAIVfModuleTest.java
@@ -1,643 +1,643 @@
-/*- 
- * ============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.common;
-
-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.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.camunda.bpm.engine.RuntimeService;
-import org.camunda.bpm.engine.test.Deployment;
-import org.junit.Assert;
-import org.junit.Test;
-import org.openecomp.mso.bpmn.core.WorkflowException;
-
-/**
- * Unit test for DeleteAAIVfModule.bpmn.
- */
-public class DeleteAAIVfModuleTest extends WorkflowTest {
-	private static final String EOL = "\n";
-	
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestDeleteGenericVnfSuccess_200() {
-		// delete the Base Module and Generic Vnf
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest","<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\"> <request-info> <action>DELETE_VF_MODULE</action> <source>PORTAL</source> </request-info> <vnf-inputs> <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id> <vnf-name>STMTN5MMSC21</vnf-name> <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id> <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name> </vnf-inputs> <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/> </vnf-request>");
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		String response = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteGenericVnfResponseCode");
-		String responseCode = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteGenericVnfResponseCode");
-		Assert.assertEquals("200", responseCode);
-		System.out.println(response);
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestDeleteVfModuleSuccess_200() {
-		// delete Add-on Vf Module for existing Generic Vnf
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c720, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a75
-		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-6615ac73c720</vnf-id>" + EOL +
-			"    <vnf-name>STMTN5MMSC20</vnf-name>" + 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 +
-			"  </vnf-inputs>" + EOL +
-			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
-			"</vnf-request>" + EOL;
-
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest",request);
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		String response = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteVfModuleResponseCode");
-		String responseCode = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteVfModuleResponseCode");
-		Assert.assertEquals("200", responseCode);
-		System.out.println(response);
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestQueryGenericVnfFailure_5000() {
-		// query Generic Vnf failure (non-404) with A&AI
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c723, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a71
-		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-6615ac73c723</vnf-id>" + EOL +
-			"    <vnf-name>STMTN5MMSC23</vnf-name>" + EOL +
-			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a71</vf-module-id>" + EOL +
-			"    <vf-module-name>STMTN5MMSC20-MMSC::module-1-0</vf-module-name>" + EOL +
-			"  </vnf-inputs>" + EOL +
-			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
-			"</vnf-request>" + EOL;
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest",request);
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");
-		Assert.assertEquals(5000, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestQueryGenericVnfFailure_1002() {
-		// attempt to delete Vf Module for Generic Vnf that does not exist (A&AI returns 404)
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c722, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a72
-		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-6615ac73c722</vnf-id>" + EOL +
-			"    <vnf-name>STMTN5MMSC22</vnf-name>" + EOL +
-			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a72</vf-module-id>" + EOL +
-			"    <vf-module-name>STMTN5MMSC22-MMSC::module-1-0</vf-module-name>" + EOL +
-			"  </vnf-inputs>" + EOL +
-			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
-			"</vnf-request>" + EOL;
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest",request);
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");
-		Assert.assertEquals(1002, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("Generic VNF Not Found"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestDeleteGenericVnfFailure_5000() {
-		// A&AI failure (non-200) when attempting to delete a Generic Vnf
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c718, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a78
-		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-6615ac73c718</vnf-id>" + EOL +
-			"    <vnf-name>STMTN5MMSC18</vnf-name>" + 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 +
-			"  </vnf-inputs>" + EOL +
-			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
-			"</vnf-request>" + EOL;
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest",request);
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");
-		Assert.assertEquals(5000, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
-		System.out.println(exception.getErrorMessage());
-	}
-	
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestDeleteVfModuleFailure_5000() {
-		// A&AI failure (non-200) when attempting to delete a Vf Module
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c719, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a77
-		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-6615ac73c719</vnf-id>" + EOL +
-			"    <vnf-name>STMTN5MMSC19</vnf-name>" + 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 +
-			"  </vnf-inputs>" + EOL +
-			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
-			"</vnf-request>" + EOL;
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest",request);
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");
-		Assert.assertEquals(5000, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));
-		System.out.println(exception.getErrorMessage());
-	}
-	
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestDeleteVfModuleFailure_1002_1() {
-		// failure attempting to delete Base Module when not the last Vf Module
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c720, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a74
-		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-6615ac73c720</vnf-id>" + EOL +
-			"    <vnf-name>STMTN5MMSC20</vnf-name>" + 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 +
-			"  </vnf-inputs>" + EOL +
-			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +
-			"</vnf-request>" + EOL;
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest",request);
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");
-		Assert.assertEquals(1002, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("is Base Module, not Last Module"));
-		System.out.println(exception.getErrorMessage());
-	}
-
-	@Test	
-	@Deployment(resources = {
-			"subprocess/DeleteAAIVfModule.bpmn"
-		})
-	public void  TestDeleteVfModuleFailure_1002_2() {
-		// failure attempting to delete a Vf Module that does not exist (A&AI returns 404)
-		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c720, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a76
-		MockAAIGenericVnfSearch();
-		MockAAIDeleteGenericVnf();
-		MockAAIDeleteVfModule();
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();				
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("isDebugLogEnabled","true");
-		variables.put("DeleteAAIVfModuleRequest","<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\"> <request-info> <action>DELETE_VF_MODULE</action> <source>PORTAL</source> </request-info> <vnf-inputs> <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c720</vnf-id> <vnf-name>STMTN5MMSC20</vnf-name> <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a76</vf-module-id> <vf-module-name>STMTN5MMSC20-MMSC::module-2-0</vf-module-name> </vnf-inputs> <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/> </vnf-request>");
-		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);
-		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");
-		Assert.assertEquals(1002, exception.getErrorCode());
-		Assert.assertEquals(true, exception.getErrorMessage().contains("does not exist for Generic Vnf Id"));
-		System.out.println(exception.getErrorMessage());
-	}
-	
-	// Start of VF Modularization A&AI mocks
-	
-	public static void MockAAIGenericVnfSearch(){
-		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://com.att.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://com.att.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://com.att.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://com.att.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://com.att.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://com.att.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://com.att.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)));
-	}
-	public static void MockAAIDeleteGenericVnf(){
-		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")));
-	}
-
-	public static void MockAAIDeleteVfModule(){
-		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)));
-	}
-}
-
+/*- 

+ * ============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.common;

+

+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.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlMatching;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.camunda.bpm.engine.RuntimeService;

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.core.WorkflowException;

+

+/**

+ * Unit test for DeleteAAIVfModule.bpmn.

+ */

+public class DeleteAAIVfModuleTest extends WorkflowTest {

+	private static final String EOL = "\n";

+	

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDeleteGenericVnfSuccess_200() {

+		// delete the Base Module and Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c721, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a73

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest","<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\"> <request-info> <action>DELETE_VF_MODULE</action> <source>PORTAL</source> </request-info> <vnf-inputs> <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c721</vnf-id> <vnf-name>STMTN5MMSC21</vnf-name> <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a73</vf-module-id> <vf-module-name>STMTN5MMSC21-MMSC::module-0-0</vf-module-name> </vnf-inputs> <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/> </vnf-request>");

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		String response = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteGenericVnfResponseCode");

+		String responseCode = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteGenericVnfResponseCode");

+		Assert.assertEquals("200", responseCode);

+		System.out.println(response);

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDeleteVfModuleSuccess_200() {

+		// delete Add-on Vf Module for existing Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c720, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a75

+		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-6615ac73c720</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC20</vnf-name>" + 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 +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest",request);

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		String response = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteVfModuleResponseCode");

+		String responseCode = BPMNUtil.getVariable(processEngineRule, "DeleteAAIVfModule", "DAAIVfMod_deleteVfModuleResponseCode");

+		Assert.assertEquals("200", responseCode);

+		System.out.println(response);

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestQueryGenericVnfFailure_5000() {

+		// query Generic Vnf failure (non-404) with A&AI

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c723, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a71

+		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-6615ac73c723</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC23</vnf-name>" + EOL +

+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a71</vf-module-id>" + EOL +

+			"    <vf-module-name>STMTN5MMSC20-MMSC::module-1-0</vf-module-name>" + EOL +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest",request);

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");

+		Assert.assertEquals(5000, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestQueryGenericVnfFailure_1002() {

+		// attempt to delete Vf Module for Generic Vnf that does not exist (A&AI returns 404)

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c722, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a72

+		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-6615ac73c722</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC22</vnf-name>" + EOL +

+			"    <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a72</vf-module-id>" + EOL +

+			"    <vf-module-name>STMTN5MMSC22-MMSC::module-1-0</vf-module-name>" + EOL +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest",request);

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");

+		Assert.assertEquals(1002, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("Generic VNF Not Found"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDeleteGenericVnfFailure_5000() {

+		// A&AI failure (non-200) when attempting to delete a Generic Vnf

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c718, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a78

+		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-6615ac73c718</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC18</vnf-name>" + 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 +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest",request);

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");

+		Assert.assertEquals(5000, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));

+		System.out.println(exception.getErrorMessage());

+	}

+	

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDeleteVfModuleFailure_5000() {

+		// A&AI failure (non-200) when attempting to delete a Vf Module

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c719, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a77

+		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-6615ac73c719</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC19</vnf-name>" + 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 +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest",request);

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");

+		Assert.assertEquals(5000, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("<messageId>SVC3002</messageId>"));

+		System.out.println(exception.getErrorMessage());

+	}

+	

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDeleteVfModuleFailure_1002_1() {

+		// failure attempting to delete Base Module when not the last Vf Module

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c720, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a74

+		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-6615ac73c720</vnf-id>" + EOL +

+			"    <vnf-name>STMTN5MMSC20</vnf-name>" + 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 +

+			"  </vnf-inputs>" + EOL +

+			"  <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/>" + EOL +

+			"</vnf-request>" + EOL;

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest",request);

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");

+		Assert.assertEquals(1002, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("is Base Module, not Last Module"));

+		System.out.println(exception.getErrorMessage());

+	}

+

+	@Test	

+	@Deployment(resources = {

+			"subprocess/DeleteAAIVfModule.bpmn"

+		})

+	public void  TestDeleteVfModuleFailure_1002_2() {

+		// failure attempting to delete a Vf Module that does not exist (A&AI returns 404)

+		// vnf-id=a27ce5a9-29c4-4c22-a017-6615ac73c720, vf-module-id=973ed047-d251-4fb9-bf1a-65b8949e0a76

+		MockAAIGenericVnfSearch();

+		MockAAIDeleteGenericVnf();

+		MockAAIDeleteVfModule();

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();				

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("isDebugLogEnabled","true");

+		variables.put("DeleteAAIVfModuleRequest","<vnf-request xmlns=\"http://openecomp.org/mso/infra/vnf-request/v1\"> <request-info> <action>DELETE_VF_MODULE</action> <source>PORTAL</source> </request-info> <vnf-inputs> <vnf-id>a27ce5a9-29c4-4c22-a017-6615ac73c720</vnf-id> <vnf-name>STMTN5MMSC20</vnf-name> <vf-module-id>973ed047-d251-4fb9-bf1a-65b8949e0a76</vf-module-id> <vf-module-name>STMTN5MMSC20-MMSC::module-2-0</vf-module-name> </vnf-inputs> <vnf-params xmlns:tns=\"http://openecomp.org/mso/infra/vnf-request/v1\"/> </vnf-request>");

+		runtimeService.startProcessInstanceByKey("DeleteAAIVfModule", variables);

+		WorkflowException exception = BPMNUtil.getRawVariable(processEngineRule, "DeleteAAIVfModule", "WorkflowException");

+		Assert.assertEquals(1002, exception.getErrorCode());

+		Assert.assertEquals(true, exception.getErrorMessage().contains("does not exist for Generic Vnf Id"));

+		System.out.println(exception.getErrorMessage());

+	}

+	

+	// Start of VF Modularization A&AI mocks

+	

+	public static void MockAAIGenericVnfSearch(){

+		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://com.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)));

+	}

+	public static void MockAAIDeleteGenericVnf(){

+		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")));

+	}

+

+	public static void MockAAIDeleteVfModule(){

+		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)));

+	}

+}

+

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/FalloutHandlerTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/FalloutHandlerTest.java
index 7732075..5223bca 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/FalloutHandlerTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/FalloutHandlerTest.java
@@ -1,226 +1,230 @@
-/*- 
- * ============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.common;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.post;
-import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
-import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;
-import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.camunda.bpm.engine.test.Deployment;
-import org.junit.Assert;
-import org.junit.Test;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
-
-/**
- * Unit test for FalloutHandler.bpmn.
- */
-public class FalloutHandlerTest extends WorkflowTest {
-	private void setupMocks() {
-		stubFor(post(urlEqualTo("/dbadapters/RequestsDbAdapter"))
-				.willReturn(aResponse()
-				.withStatus(200)
-				.withHeader("Content-Type", "text/xml")
-				.withBody("<DbTag>Notified</DbTag>")));
-	}	
-	
-	private void executeFlow(String inputRequestFile) throws InterruptedException {
-		String method = getClass().getSimpleName() + "." + new Object() {
-		}.getClass().getEnclosingMethod().getName();
-		System.out.println("STARTED TEST: " + method);
-        
-		//String changeFeatureActivateRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/ChangeFeatureActivateV1/" + inputRequestFile);
-		Map<String, String> variables = new HashMap<String, String>();		
-		variables.put("FalloutHandlerRequest",inputRequestFile);
-		
-		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "FalloutHandler", variables);
-		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());
-		System.out.println("ENDED TEST: " + method);
-	}	
-	
-	@Test		
-	@Deployment(resources = {"subprocess/FalloutHandler.bpmn"})
-	public void msoFalloutHandlerWithNotificationurl_200() throws Exception{
-		String method = getClass().getSimpleName() + "." + new Object() {
-		}.getClass().getEnclosingMethod().getName();
-		System.out.println("STARTED TEST: " + method);
-		
-		//Setup Mocks
-		setupMocks();
-		//Execute Flow
-		executeFlow(gMsoFalloutHandlerWithNotificationurl());
-		//Verify Error
-		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");
-		Assert.assertEquals("200", FH_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 
-	}
-	
-	public String gMsoFalloutHandlerWithNotificationurl() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"
-				+ "		<ns7:request-information>"
-				+ "			<ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>"
-				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"
-				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"
-				+ "			<ns7:source>OMX</ns7:source>"
-				+ "			<ns7:notification-url>http://localhost:28090/CCD/StatusNotification</ns7:notification-url>"
-				+ "			<ns7:order-number>10205000</ns7:order-number>"
-				+ "			<ns7:order-version>1</ns7:order-version>"
-				+ "		</ns7:request-information>"
-				+ "		<sdncadapterworkflow:WorkflowException>"
-				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"
-				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"
-				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"
-				+ "		</sdncadapterworkflow:WorkflowException>"
-				+ "</sdncadapterworkflow:FalloutHandlerRequest>";
-		
-		return xml;
-
-	}	
-	
-
-
-
-	@Test		
-	@Deployment(resources = {"subprocess/FalloutHandler.bpmn"})
-	public void msoFalloutHandlerWithNoNotificationurl() throws Exception{
-		String method = getClass().getSimpleName() + "." + new Object() {
-		}.getClass().getEnclosingMethod().getName();
-		System.out.println("STARTED TEST: " + method);		
-		//Setup Mocks
-		setupMocks();
-		//Execute Flow
-		executeFlow(gMsoFalloutHandlerWithNoNotificationurl());
-		//Verify Error
-		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");
-		Assert.assertEquals("200", FH_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 
-	}
-	
-	public String gMsoFalloutHandlerWithNoNotificationurl() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"
-				+ "		<ns7:request-information>"
-				+ "			<ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>"
-				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"
-				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"
-				+ "			<ns7:source>OMX</ns7:source>"
-				+ "			<ns7:notification-url></ns7:notification-url>"
-				+ "			<ns7:order-number>10205000</ns7:order-number>"
-				+ "			<ns7:order-version>1</ns7:order-version>"
-				+ "		</ns7:request-information>"
-				+ "		<sdncadapterworkflow:WorkflowException>"
-				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"
-				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"
-				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"
-				+ "		</sdncadapterworkflow:WorkflowException>"
-				+ "</sdncadapterworkflow:FalloutHandlerRequest>";
-		
-		return xml;
-	}	
-	
-	@Test		
-	@Deployment(resources = {"subprocess/FalloutHandler.bpmn"})
-	public void msoFalloutHandlerWithNotificationurlNoRequestId() throws Exception{
-		String method = getClass().getSimpleName() + "." + new Object() {
-		}.getClass().getEnclosingMethod().getName();
-		System.out.println("STARTED TEST: " + method);		
-		//Setup Mocks
-		setupMocks();
-		//Execute Flow
-		executeFlow(gMsoFalloutHandlerWithNotificationurlNoRequestId());
-		//Verify Error		
-		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");
-		Assert.assertEquals("200", FH_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 
-	}
-
-	public String gMsoFalloutHandlerWithNotificationurlNoRequestId() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"
-				+ "		<ns7:request-information>"
-				+ "			<ns7:request-id></ns7:request-id>"
-				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"
-				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"
-				+ "			<ns7:source>OMX</ns7:source>"
-				+ "			<ns7:notification-url>www.att.com</ns7:notification-url>"
-				+ "			<ns7:order-number>10205000</ns7:order-number>"
-				+ "			<ns7:order-version>1</ns7:order-version>"
-				+ "		</ns7:request-information>"
-				+ "		<sdncadapterworkflow:WorkflowException>"
-				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"
-				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"
-				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"
-				+ "		</sdncadapterworkflow:WorkflowException>"
-				+ "</sdncadapterworkflow:FalloutHandlerRequest>";
-		
-		return xml;
-	}		
-	
-	@Test		
-	@Deployment(resources = {"subprocess/FalloutHandler.bpmn"})
-	public void msoFalloutHandlerWithNoNotificationurlNoRequestId() throws Exception{
-		String method = getClass().getSimpleName() + "." + new Object() {
-		}.getClass().getEnclosingMethod().getName();
-		System.out.println("STARTED TEST: " + method);		
-		//Setup Mocks
-		setupMocks();
-		//Execute Flow
-		executeFlow(gMsoFalloutHandlerWithNoNotificationurlNoRequestId());
-		//Verify Error
-		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");
-		Assert.assertEquals("200", FH_ResponseCode);
-		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 
-	}	
-	
-	public String gMsoFalloutHandlerWithNoNotificationurlNoRequestId() {
-		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS
-		String xml = ""
-				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"
-				+ "		<ns7:request-information>"
-				+ "			<ns7:request-id></ns7:request-id>"
-				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"
-				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"
-				+ "			<ns7:source>OMX</ns7:source>"
-				+ "			<ns7:notification-url></ns7:notification-url>"
-				+ "			<ns7:order-number>10205000</ns7:order-number>"
-				+ "			<ns7:order-version>1</ns7:order-version>"
-				+ "		</ns7:request-information>"
-				+ "		<sdncadapterworkflow:WorkflowException>"
-				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"
-				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"
-				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"
-				+ "		</sdncadapterworkflow:WorkflowException>"
-				+ "</sdncadapterworkflow:FalloutHandlerRequest>";
-		
-		return xml;
-	}	
-	
-}
-
+/*- 

+ * ============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.common;

+

+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;

+import static com.github.tomakehurst.wiremock.client.WireMock.post;

+import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;

+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;

+import static org.openecomp.mso.bpmn.common.BPMNUtil.executeWorkFlow;

+import static org.openecomp.mso.bpmn.common.BPMNUtil.waitForWorkflowToFinish;

+

+import java.util.HashMap;

+import java.util.Map;

+

+import org.camunda.bpm.engine.test.Deployment;

+import org.junit.Assert;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+

+/**

+ * Unit test for FalloutHandler.bpmn.

+ */

+public class FalloutHandlerTest extends WorkflowTest {

+	private void setupMocks() {

+		stubFor(post(urlEqualTo("/dbadapters/RequestsDbAdapter"))

+				.willReturn(aResponse()

+				.withStatus(200)

+				.withHeader("Content-Type", "text/xml")

+				.withBody("<DbTag>Notified</DbTag>")));

+	}	

+	

+	private void executeFlow(String inputRequestFile) throws InterruptedException {

+		String method = getClass().getSimpleName() + "." + new Object() {

+		}.getClass().getEnclosingMethod().getName();

+		System.out.println("STARTED TEST: " + method);

+        

+		//String changeFeatureActivateRequest = FileUtil.readResourceFile("__files/SDN-ETHERNET-INTERNET/ChangeFeatureActivateV1/" + inputRequestFile);

+		Map<String, String> variables = new HashMap<String, String>();		

+		variables.put("FalloutHandlerRequest",inputRequestFile);

+		

+		WorkflowResponse workflowResponse = executeWorkFlow(processEngineRule, "FalloutHandler", variables);

+		waitForWorkflowToFinish(processEngineRule, workflowResponse.getProcessInstanceID());

+		System.out.println("ENDED TEST: " + method);

+	}	

+	

+	@Test		

+	@Deployment(resources = {"subprocess/FalloutHandler.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoFalloutHandlerWithNotificationurl_200() throws Exception{

+		String method = getClass().getSimpleName() + "." + new Object() {

+		}.getClass().getEnclosingMethod().getName();

+		System.out.println("STARTED TEST: " + method);

+		

+		//Setup Mocks

+		setupMocks();

+		//Execute Flow

+		executeFlow(gMsoFalloutHandlerWithNotificationurl());

+		//Verify Error

+		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");

+		Assert.assertEquals("200", FH_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 

+	}

+	

+	public String gMsoFalloutHandlerWithNotificationurl() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"

+				+ "		<ns7:request-information>"

+				+ "			<ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>"

+				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"

+				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"

+				+ "			<ns7:source>OMX</ns7:source>"

+				+ "			<ns7:notification-url>http://localhost:28090/CCD/StatusNotification</ns7:notification-url>"

+				+ "			<ns7:order-number>10205000</ns7:order-number>"

+				+ "			<ns7:order-version>1</ns7:order-version>"

+				+ "		</ns7:request-information>"

+				+ "		<sdncadapterworkflow:WorkflowException>"

+				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"

+				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"

+				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"

+				+ "		</sdncadapterworkflow:WorkflowException>"

+				+ "</sdncadapterworkflow:FalloutHandlerRequest>";

+		

+		return xml;

+

+	}	

+	

+

+

+

+	@Test		

+	@Deployment(resources = {"subprocess/FalloutHandler.bpmn"})

+	public void msoFalloutHandlerWithNoNotificationurl() throws Exception{

+		String method = getClass().getSimpleName() + "." + new Object() {

+		}.getClass().getEnclosingMethod().getName();

+		System.out.println("STARTED TEST: " + method);		

+		//Setup Mocks

+		setupMocks();

+		//Execute Flow

+		executeFlow(gMsoFalloutHandlerWithNoNotificationurl());

+		//Verify Error

+		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");

+		Assert.assertEquals("200", FH_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 

+	}

+	

+	public String gMsoFalloutHandlerWithNoNotificationurl() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"

+				+ "		<ns7:request-information>"

+				+ "			<ns7:request-id>uCPE1020_STUW105_5002</ns7:request-id>"

+				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"

+				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"

+				+ "			<ns7:source>OMX</ns7:source>"

+				+ "			<ns7:notification-url></ns7:notification-url>"

+				+ "			<ns7:order-number>10205000</ns7:order-number>"

+				+ "			<ns7:order-version>1</ns7:order-version>"

+				+ "		</ns7:request-information>"

+				+ "		<sdncadapterworkflow:WorkflowException>"

+				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"

+				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"

+				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"

+				+ "		</sdncadapterworkflow:WorkflowException>"

+				+ "</sdncadapterworkflow:FalloutHandlerRequest>";

+		

+		return xml;

+	}	

+	

+	@Test		

+	@Deployment(resources = {"subprocess/FalloutHandler.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void msoFalloutHandlerWithNotificationurlNoRequestId() throws Exception{

+		String method = getClass().getSimpleName() + "." + new Object() {

+		}.getClass().getEnclosingMethod().getName();

+		System.out.println("STARTED TEST: " + method);		

+		//Setup Mocks

+		setupMocks();

+		//Execute Flow

+		executeFlow(gMsoFalloutHandlerWithNotificationurlNoRequestId());

+		//Verify Error		

+		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");

+		Assert.assertEquals("200", FH_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 

+	}

+

+	public String gMsoFalloutHandlerWithNotificationurlNoRequestId() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"

+				+ "		<ns7:request-information>"

+				+ "			<ns7:request-id></ns7:request-id>"

+				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"

+				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"

+				+ "			<ns7:source>OMX</ns7:source>"

+				+ "			<ns7:notification-url>www.test.com</ns7:notification-url>"

+				+ "			<ns7:order-number>10205000</ns7:order-number>"

+				+ "			<ns7:order-version>1</ns7:order-version>"

+				+ "		</ns7:request-information>"

+				+ "		<sdncadapterworkflow:WorkflowException>"

+				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"

+				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"

+				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"

+				+ "		</sdncadapterworkflow:WorkflowException>"

+				+ "</sdncadapterworkflow:FalloutHandlerRequest>";

+		

+		return xml;

+	}		

+	

+	@Test		

+	@Deployment(resources = {"subprocess/FalloutHandler.bpmn"})

+	public void msoFalloutHandlerWithNoNotificationurlNoRequestId() throws Exception{

+		String method = getClass().getSimpleName() + "." + new Object() {

+		}.getClass().getEnclosingMethod().getName();

+		System.out.println("STARTED TEST: " + method);		

+		//Setup Mocks

+		setupMocks();

+		//Execute Flow

+		executeFlow(gMsoFalloutHandlerWithNoNotificationurlNoRequestId());

+		//Verify Error

+		String FH_ResponseCode = BPMNUtil.getVariable(processEngineRule, "FalloutHandler", "FH_ResponseCode");

+		Assert.assertEquals("200", FH_ResponseCode);

+		Assert.assertTrue((boolean) BPMNUtil.getRawVariable(processEngineRule, "FalloutHandler", "FH_SuccessIndicator")); 

+	}	

+	

+	public String gMsoFalloutHandlerWithNoNotificationurlNoRequestId() {

+		//Generated the below XML from ActiveVOS moduler ... Using the generate sample XML feature in ActiveVOS

+		String xml = ""

+				+ "<sdncadapterworkflow:FalloutHandlerRequest xmlns:sdncadapterworkflow=\"http://org.openecomp/mso/workflow/schema/v1\" xmlns:ns7=\"http://org.openecomp/mso/request/types/v1\">"

+				+ "		<ns7:request-information>"

+				+ "			<ns7:request-id></ns7:request-id>"

+				+ "			<ns7:request-action>Layer3ServiceActivateRequest</ns7:request-action>"

+				+ "			<ns7:request-sub-action>CANCEL</ns7:request-sub-action>"

+				+ "			<ns7:source>OMX</ns7:source>"

+				+ "			<ns7:notification-url></ns7:notification-url>"

+				+ "			<ns7:order-number>10205000</ns7:order-number>"

+				+ "			<ns7:order-version>1</ns7:order-version>"

+				+ "		</ns7:request-information>"

+				+ "		<sdncadapterworkflow:WorkflowException>"

+				+ "			<sdncadapterworkflow:ErrorMessage>Some Error Message - Fallout Handler</sdncadapterworkflow:ErrorMessage>"

+				+ "			<sdncadapterworkflow:ErrorCode>Some Error Code - Fallout Handler</sdncadapterworkflow:ErrorCode>"

+				+ "			<sdncadapterworkflow:SourceSystemErrorCode>Some Source System Error Code- Fallout Handler</sdncadapterworkflow:SourceSystemErrorCode>"

+				+ "		</sdncadapterworkflow:WorkflowException>"

+				+ "</sdncadapterworkflow:FalloutHandlerRequest>";

+		

+		return xml;

+	}	

+	

+}

+

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/PrepareUpdateAAIVfModuleTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/PrepareUpdateAAIVfModuleTest.java
index cb5f722..6fe6df6 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/PrepareUpdateAAIVfModuleTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/PrepareUpdateAAIVfModuleTest.java
@@ -1,208 +1,210 @@
-/*- 
- * ============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.common;
-
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
-
-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.core.WorkflowException;
-import org.openecomp.mso.bpmn.mock.FileUtil;
-
-/**
- * Unit tests for PrepareUpdateAAIVfModule.bpmn.
- */
-public class PrepareUpdateAAIVfModuleTest extends WorkflowTest {
-	
-	/**
-	 * Test the happy path through the flow.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/PrepareUpdateAAIVfModule.bpmn"
-		})
-	public void happyPath() throws IOException {
-		
-		logStart();
-		
-		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml"); 
-		
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
-		MockPutGenericVnf("/skask/vf-modules/vf-module/supercool", "PCRF", 200);
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);
-		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(200, responseCode.intValue());
-		String heatStackId = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_heatStackId");
-		System.out.println("Ouput heat-stack-id:" + heatStackId);
-		Assert.assertEquals("slowburn", heatStackId);
-		
-		logEnd();
-	}
-	
-	/**
-	 * Test the case where the GET to AAI returns a 404.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/PrepareUpdateAAIVfModule.bpmn"
-		})
-	public void badGet() throws IOException {
-		
-		logStart();
-		
-		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml"); 
-		MockGetGenericVnfById_404("skask[?]depth=1");
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);
-		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_getVnfResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "PUAAIVfMod_getVnfResponseCode");
-		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(404, responseCode.intValue());
-		Assert.assertNotNull(workflowException);
-		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());
-		
-		logEnd();
-	}
-	
-	/**
-	 * Test the case where the validation of the VF Module fails.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/PrepareUpdateAAIVfModule.bpmn"
-		})
-	public void failValidation1() throws IOException {
-		
-		logStart();
-		
-		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml").replaceFirst("supercool", "lukewarm");
-		
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);
-		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);
-		
-		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
-		Assert.assertNotNull(workflowException);
-		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());
-		Assert.assertTrue(workflowException.getErrorMessage().startsWith("VF Module validation error: Orchestration"));
-		
-		logEnd();
-	}
-	
-	/**
-	 * Test the case where the validation of the VF Module fails.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/PrepareUpdateAAIVfModule.bpmn"
-		})
-	public void failValidation2() throws IOException {
-		
-		logStart();
-		
-		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml").replaceFirst("supercool", "notsocool");
-		
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");		
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);
-		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);
-			
-		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
-		Assert.assertNotNull(workflowException);
-		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());
-		Assert.assertTrue(workflowException.getErrorMessage().startsWith("VF Module validation error: VF Module"));
-		
-		logEnd();
-	}
-
-	/**
-	 * Test the case where the GET to AAI is successful, but the subsequent PUT returns 404.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/PrepareUpdateAAIVfModule.bpmn"
-		})
-	public void badPut() throws IOException {
-		
-		logStart();
-		
-		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml"); 
-		
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
-			
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();		
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);
-		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponseCode");
-		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(404, responseCode.intValue());
-		Assert.assertNotNull(workflowException);
-		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());
-		
-		logEnd();
-	}
-}
-
+/*- 

+ * ============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.common;

+

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+

+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.core.WorkflowException;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit tests for PrepareUpdateAAIVfModule.bpmn.

+ */

+public class PrepareUpdateAAIVfModuleTest extends WorkflowTest {

+	

+	/**

+	 * Test the happy path through the flow.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/PrepareUpdateAAIVfModule.bpmn"

+		})

+	public void happyPath() throws IOException {

+		

+		logStart();

+		

+		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml"); 

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutGenericVnf("/skask/vf-modules/vf-module/supercool", "PCRF", 200);

+		MockPatchVfModuleId("skask", "supercool");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);

+		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(200, responseCode.intValue());

+		String heatStackId = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_heatStackId");

+		System.out.println("Ouput heat-stack-id:" + heatStackId);

+		Assert.assertEquals("slowburn", heatStackId);

+		

+		logEnd();

+	}

+	

+	/**

+	 * Test the case where the GET to AAI returns a 404.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/PrepareUpdateAAIVfModule.bpmn"

+		})

+	public void badGet() throws IOException {

+		

+		logStart();

+		

+		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml"); 

+		MockGetGenericVnfById_404("skask[?]depth=1");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);

+		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_getVnfResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "PUAAIVfMod_getVnfResponseCode");

+		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(404, responseCode.intValue());

+		Assert.assertNotNull(workflowException);

+		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());

+		

+		logEnd();

+	}

+	

+	/**

+	 * Test the case where the validation of the VF Module fails.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/PrepareUpdateAAIVfModule.bpmn"

+		})

+	public void failValidation1() throws IOException {

+		

+		logStart();

+		

+		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml").replaceFirst("supercool", "lukewarm");

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);

+		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);

+		

+		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		Assert.assertNotNull(workflowException);

+		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());

+		Assert.assertTrue(workflowException.getErrorMessage().startsWith("VF Module validation error: Orchestration"));

+		

+		logEnd();

+	}

+	

+	/**

+	 * Test the case where the validation of the VF Module fails.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/PrepareUpdateAAIVfModule.bpmn"

+		})

+	public void failValidation2() throws IOException {

+		

+		logStart();

+		

+		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml").replaceFirst("supercool", "notsocool");

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");		

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);

+		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);

+			

+		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		Assert.assertNotNull(workflowException);

+		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());

+		Assert.assertTrue(workflowException.getErrorMessage().startsWith("VF Module validation error: VF Module"));

+		

+		logEnd();

+	}

+

+	/**

+	 * Test the case where the GET to AAI is successful, but the subsequent PUT returns 404.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/PrepareUpdateAAIVfModule.bpmn"

+		})

+	public void badPut() throws IOException {

+		

+		logStart();

+		

+		String prepareUpdateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/PrepareUpdateAAIVfModuleRequest.xml"); 

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+			

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();		

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("PrepareUpdateAAIVfModuleRequest", prepareUpdateAAIVfModuleRequest);

+		invokeSubProcess("PrepareUpdateAAIVfModule", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "PUAAIVfMod_updateVfModuleResponseCode");

+		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(404, responseCode.intValue());

+		Assert.assertNotNull(workflowException);

+		System.out.println("Subflow WorkflowException error message: " + workflowException.getErrorMessage());

+		

+		logEnd();

+	}

+}

+

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/SDNCAdapterV1Test.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/SDNCAdapterV1Test.java
index b0e1dc9..846a14f 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/SDNCAdapterV1Test.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/SDNCAdapterV1Test.java
@@ -1,389 +1,403 @@
-/*- 
- * ============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.common;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-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 javax.ws.rs.core.Response;
-
-import org.camunda.bpm.engine.MismatchingMessageCorrelationException;
-import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;
-import org.camunda.bpm.engine.runtime.Job;
-import org.camunda.bpm.engine.test.Deployment;
-import org.camunda.bpm.engine.variable.impl.VariableMapImpl;
-import org.junit.Assert;
-import org.junit.Test;
-import org.openecomp.mso.bpmn.common.adapter.sdnc.CallbackHeader;
-import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterCallbackRequest;
-import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterResponse;
-import org.openecomp.mso.bpmn.common.workflow.service.SDNCAdapterCallbackServiceImpl;
-import org.openecomp.mso.bpmn.common.workflow.service.SDNCAdapterCallbackServiceImpl.SDNCAdapterExceptionResponse;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResource;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
-import org.openecomp.mso.bpmn.mock.FileUtil;
-
-/**
- * Unit test cases for SDNCAdapterV1.bpmn
- */
-public class SDNCAdapterV1Test extends WorkflowTest {
-
-	private String sdncAdapterWorkflowRequest;
-	private String sdncAdapterWorkflowRequestAct;
-	private String sdncAdapterCallbackRequestData;
-	private String sdncAdapterCallbackRequestDataNonfinal;
-
-	public SDNCAdapterV1Test() throws IOException {
-		sdncAdapterWorkflowRequest = FileUtil.readResourceFile("sdncadapterworkflowrequest.xml");
-		sdncAdapterWorkflowRequestAct = FileUtil.readResourceFile("sdncadapterworkflowrequest-act.xml");
-		sdncAdapterCallbackRequestData = FileUtil.readResourceFile("sdncadaptercallbackrequestdata.text");
-		sdncAdapterCallbackRequestDataNonfinal = FileUtil.readResourceFile("sdncadaptercallbackrequestdata-nonfinal.text");
-	}
-
-	/**
-	 * End-to-End flow - Unit test for SDNCAdapterV1.bpmn
-	 *  - String input & String response
-	 */
-
-	private WorkflowResponse invokeFlow(String workflowRequest) {
-
-		Map<String, Object>valueMap = new HashMap<String, Object>();
-		valueMap.put("value", workflowRequest);
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("sdncAdapterWorkflowRequest", valueMap);
-
-		Map<String, Object> valueMap2 = new HashMap<String, Object>();
-		valueMap2.put("value", "true");
-		variables.put("isDebugLogEnabled", valueMap2);
-
-		VariableMapImpl varMap = new VariableMapImpl();
-		varMap.put("variables", variables);
-
-		//System.out.println("Invoking the flow");
-
-		WorkflowResource workflowResource = new WorkflowResource();
-		workflowResource.setProcessEngineServices4junit(processEngineRule);
-
-		Response response = workflowResource.startProcessInstanceByKey("sdncAdapter", varMap);
-		WorkflowResponse workflowResponse = (WorkflowResponse) response.getEntity();
-
-		//String pid = workflowResponse.getProcessInstanceID();
-		//System.out.println("Back from executing process instance with pid=" + pid);
-		return workflowResponse;
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void sunnyDay() throws InterruptedException {
-
-		mockSDNCAdapter(200);
-
-		//System.out.println("SDNCAdapter sunny day flow Started!");
-
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);
-		thread.start();
-		waitForExecutionToStart("sdncAdapter", 3);
-		String pid = getPid();
-
-		assertProcessInstanceNotFinished(pid);
-
-		System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");
-		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");
-		CallbackHeader callbackHeader = new CallbackHeader();
-		callbackHeader.setRequestId(generatedRequestId);
-		callbackHeader.setResponseCode("200");
-		callbackHeader.setResponseMessage("OK");
-		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();
-		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);
-		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestData);
-		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();
-		callbackService.setProcessEngineServices4junit(processEngineRule);
-		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		//System.out.println("Back from executing process again");
-
-		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);
-		assertProcessInstanceFinished(pid);
-
-		//System.out.println("SDNCAdapter sunny day flow Completed!");
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void nonFinalWithTimeout() throws InterruptedException {
-
-		mockSDNCAdapter(200);
-		mockUpdateRequestDB(200, "Database/DBAdapter.xml");
-
-		//System.out.println("SDNCAdapter interim status processing flow Started!");
-
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequestAct);
-		thread.start();
-		waitForExecutionToStart("sdncAdapter", 3);
-		String pid = getPid();
-
-		assertProcessInstanceNotFinished(pid);
-
-		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");
-		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");
-		CallbackHeader callbackHeader = new CallbackHeader();
-		callbackHeader.setRequestId(generatedRequestId);
-		callbackHeader.setResponseCode("200");
-		callbackHeader.setResponseMessage("OK");
-		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();
-		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);
-		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestDataNonfinal);
-		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();
-		callbackService.setProcessEngineServices4junit(processEngineRule);
-		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		//System.out.println("Back from executing process again");
-
-		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);
-		assertProcessInstanceNotFinished(pid);
-
-		checkForTimeout(pid);
-
-		assertEquals(true, (Boolean) (getVariable(pid, "continueListening")));
-
-
-		//System.out.println("SDNCAdapter interim status processing flow Completed!");
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void nonFinalThenFinal() throws InterruptedException {
-
-		mockSDNCAdapter(200);
-		mockUpdateRequestDB(200, "Database/DBAdapter.xml");
-
-		//System.out.println("SDNCAdapter non-final then final processing flow Started!");
-
-		// Start the flow
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequestAct);
-		thread.start();
-		waitForExecutionToStart("sdncAdapter", 3);
-		String pid = getPid();
-
-		assertProcessInstanceNotFinished(pid);
-
-		// Inject a "non-final" SDNC Adapter asynchronous callback message
-		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");
-		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");
-		CallbackHeader callbackHeader = new CallbackHeader();
-		callbackHeader.setRequestId(generatedRequestId);
-		callbackHeader.setResponseCode("200");
-		callbackHeader.setResponseMessage("OK");
-		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();
-		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);
-		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestDataNonfinal);
-		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();
-		callbackService.setProcessEngineServices4junit(processEngineRule);
-		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		//System.out.println("Back from executing process again");
-
-		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);
-		assertProcessInstanceNotFinished(pid);
-		assertEquals(true, (Boolean) (getVariable(pid, "continueListening")));
-
-		// Inject a "final" SDNC Adapter asynchronous callback message
-		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestData);
-		sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		//System.out.println("Back from executing process again");
-
-		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);
-		assertProcessInstanceFinished(pid);
-		assertEquals(false, (Boolean) (getVariable(pid, "continueListening")));
-
-		//System.out.println("SDNCAdapter non-final then final processing flow Completed!");
-	}
-
-	
-
-	private void waitForExecutionToStart(String processDefintion, int count) throws InterruptedException {
-		//System.out.println(processEngineRule.getRuntimeService().createExecutionQuery().processDefinitionKey(processDefintion).count());
-		while (processEngineRule.getRuntimeService().createExecutionQuery().processDefinitionKey(processDefintion).count() != count) {
-			Thread.sleep(200);
-		}
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void badCorrelationIdTest() throws InterruptedException {
-
-		mockSDNCAdapter(200);
-
-		//System.out.println("SDNCAdapter bad RequestId test Started!");
-
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);
-		thread.start();
-		waitForExecutionToStart("sdncAdapter", 3);
-		String pid = getPid();
-		assertProcessInstanceNotFinished(pid);
-
-		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");
-		String badRequestId = "This is not the RequestId that was used";
-		CallbackHeader callbackHeader = new CallbackHeader();
-		callbackHeader.setRequestId(badRequestId);
-		callbackHeader.setResponseCode("200");
-		callbackHeader.setResponseMessage("OK");
-		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();
-		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);
-		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestData);
-		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();
-		callbackService.setProcessEngineServices4junit(processEngineRule);
-		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		//System.out.println("Back from executing process again");
-
-		assertTrue(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);
-		assertTrue(((SDNCAdapterExceptionResponse) sdncAdapterResponse).getException() instanceof MismatchingMessageCorrelationException);
-		assertProcessInstanceNotFinished(pid);
-
-		//System.out.println("SDNCAdapter bad RequestId test Completed!");
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void badSynchronousResponse() throws IOException, InterruptedException {
-
-		mockSDNCAdapter(404);
-
-		//System.out.println("SDNCAdapter bad synchronous response flow Started!");
-
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);
-		thread.start();
-		while (thread.isAlive()) {
-			Thread.sleep(200);
-		}
-		WorkflowResponse response = thread.workflowResponse;
-		Assert.assertNotNull(response);
-		Assert.assertEquals("404 error", response.getMessageCode(),7000);
-//		assertProcessInstanceFinished(response.getProcessInstanceID());
-		//System.out.println("SDNCAdapter bad synchronous response flow Completed!");
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void sdncNotFound() throws IOException, InterruptedException {
-		mockSDNCAdapter(200);
-		mockSDNCAdapter("/sdncAdapterMock/404", 400, "sdncCallbackErrorResponse.xml");
-
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);
-		thread.start();
-		waitForExecutionToStart("sdncAdapter", 3);
-		String pid = getPid();
-
-		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");
-		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");
-		CallbackHeader callbackHeader = new CallbackHeader();
-		callbackHeader.setRequestId(generatedRequestId);
-		callbackHeader.setResponseCode("404");
-		callbackHeader.setResponseMessage("Error processing request to SDNC. Not Found. https://sdncodl.it.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/AS%2FVLXM%2F000199%2F%2FSB_INTERNET. SDNC Returned-[error-type:application, error-tag:data-missing, error-message:Request could not be completed because the relevant data model content does not exist.]");
-		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();
-		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);
-		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();
-		callbackService.setProcessEngineServices4junit(processEngineRule);
-		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		//System.out.println("Back from executing process again");
-
-		assertProcessInstanceFinished(pid);
-		assertNotNull(sdncAdapterResponse);
-		//TODO query history to see SDNCA_ResponseCode, SDNCA_ErrorResponse
-		//System.out.println("SDNCAdapter SDNC Notfound test Completed!");
-	}
-
-	@Test
-	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn"})
-	public void asynchronousMessageTimeout() throws IOException, InterruptedException {
-		mockSDNCAdapter(200);
-		//System.out.println("SDNCAdapter asynchronous message timeout flow Started!");
-		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);
-		thread.start();
-		waitForExecutionToStart("sdncAdapter", 3);
-		checkForTimeout(getPid());
-	}
-
-	private void checkForTimeout(String pid) throws InterruptedException {
-
-		assertProcessInstanceNotFinished(pid);
-
-		ProcessEngineConfigurationImpl processEngineConfiguration =
-			(ProcessEngineConfigurationImpl) processEngineRule.getProcessEngine().getProcessEngineConfiguration();
-		assertTrue(processEngineConfiguration.getJobExecutor().isActive());
-
-	    Job timerJob = processEngineRule.getManagementService().createJobQuery().processInstanceId(pid).singleResult();
-	    assertNotNull(timerJob);
-
-	    processEngineRule.getManagementService().executeJob(timerJob.getId());
-
-	    assertProcessInstanceFinished(pid);
-
-		//System.out.println("SDNCAdapter asynchronous message timeout flow Completed!");
-	}
-
-	class ProcessExecutionThread extends Thread {
-
-		private String workflowRequest;
-		private WorkflowResponse workflowResponse;
-
-		public ProcessExecutionThread(String workflowRequest) {
-			this.workflowRequest = workflowRequest;
-		}
-
-		public void run() {
-			workflowResponse = invokeFlow(workflowRequest);
-			workflowResponse.getProcessInstanceID();
-		}
-	}
-
-	private String getPid() {
-		return processEngineRule.getHistoryService().createHistoricProcessInstanceQuery().list().get(0).getId();
-	}
-
-	private Object getVariable(String pid, String variableName) {
-		try {
-			return
-				processEngineRule
-					.getHistoryService()
-					.createHistoricVariableInstanceQuery()
-					.processInstanceId(pid).variableName(variableName)
-					.singleResult()
-					.getValue();
-		} catch(Exception ex) {
-			return null;
-		}
-	}
-
-	private void assertProcessInstanceFinished(String pid) {
-	    assertEquals(1, processEngineRule.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count());
-	}
-
-	private void assertProcessInstanceNotFinished(String pid) {
-	    assertEquals(0, processEngineRule.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count());
-	}
-
-}
+/*- 

+ * ============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.common;

+

+import static org.junit.Assert.assertEquals;

+import static org.junit.Assert.assertFalse;

+import static org.junit.Assert.assertNotNull;

+import static org.junit.Assert.assertTrue;

+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 javax.ws.rs.core.Response;

+

+import org.camunda.bpm.engine.MismatchingMessageCorrelationException;

+import org.camunda.bpm.engine.impl.cfg.ProcessEngineConfigurationImpl;

+import org.camunda.bpm.engine.runtime.Job;

+import org.camunda.bpm.engine.test.Deployment;

+import org.camunda.bpm.engine.variable.impl.VariableMapImpl;

+import org.junit.Assert;

+import org.junit.Test;

+import org.openecomp.mso.bpmn.common.adapter.sdnc.CallbackHeader;

+import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterCallbackRequest;

+import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterResponse;

+import org.openecomp.mso.bpmn.common.workflow.service.SDNCAdapterCallbackServiceImpl;

+import org.openecomp.mso.bpmn.common.workflow.service.SDNCAdapterCallbackServiceImpl.SDNCAdapterExceptionResponse;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResource;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit test cases for SDNCAdapterV1.bpmn

+ */

+public class SDNCAdapterV1Test extends WorkflowTest {

+

+	private String sdncAdapterWorkflowRequest;

+	private String sdncAdapterWorkflowRequestAct;

+	private String sdncAdapterCallbackRequestData;

+	private String sdncAdapterCallbackRequestDataNonfinal;

+

+	public SDNCAdapterV1Test() throws IOException {

+		sdncAdapterWorkflowRequest = FileUtil.readResourceFile("sdncadapterworkflowrequest.xml");

+		sdncAdapterWorkflowRequestAct = FileUtil.readResourceFile("sdncadapterworkflowrequest-act.xml");

+		sdncAdapterCallbackRequestData = FileUtil.readResourceFile("sdncadaptercallbackrequestdata.text");

+		sdncAdapterCallbackRequestDataNonfinal = FileUtil.readResourceFile("sdncadaptercallbackrequestdata-nonfinal.text");

+	}

+

+	/**

+	 * End-to-End flow - Unit test for SDNCAdapterV1.bpmn

+	 *  - String input & String response

+	 */

+

+	private WorkflowResponse invokeFlow(String workflowRequest) {

+

+		Map<String, Object>valueMap = new HashMap<String, Object>();

+		valueMap.put("value", workflowRequest);

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("sdncAdapterWorkflowRequest", valueMap);

+

+		Map<String, Object> valueMap2 = new HashMap<String, Object>();

+		valueMap2.put("value", "true");

+		variables.put("isDebugLogEnabled", valueMap2);

+

+		VariableMapImpl varMap = new VariableMapImpl();

+		varMap.put("variables", variables);

+

+		//System.out.println("Invoking the flow");

+

+		WorkflowResource workflowResource = new WorkflowResource();

+		workflowResource.setProcessEngineServices4junit(processEngineRule);

+

+		Response response = workflowResource.startProcessInstanceByKey("sdncAdapter", varMap);

+		WorkflowResponse workflowResponse = (WorkflowResponse) response.getEntity();

+

+		//String pid = workflowResponse.getProcessInstanceID();

+		//System.out.println("Back from executing process instance with pid=" + pid);

+		return workflowResponse;

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void sunnyDay() throws InterruptedException {

+

+		mockSDNCAdapter(200);

+

+		//System.out.println("SDNCAdapter sunny day flow Started!");

+

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);

+		thread.start();

+		waitForExecutionToStart("sdncAdapter", 3);

+		String pid = getPid();

+

+		assertProcessInstanceNotFinished(pid);

+

+		System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");

+		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");

+		CallbackHeader callbackHeader = new CallbackHeader();

+		callbackHeader.setRequestId(generatedRequestId);

+		callbackHeader.setResponseCode("200");

+		callbackHeader.setResponseMessage("OK");

+		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();

+		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);

+		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestData);

+		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();

+		callbackService.setProcessEngineServices4junit(processEngineRule);

+		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		//System.out.println("Back from executing process again");

+

+		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);

+		assertProcessInstanceFinished(pid);

+

+		//System.out.println("SDNCAdapter sunny day flow Completed!");

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void nonFinalWithTimeout() throws InterruptedException {

+

+		mockSDNCAdapter(200);

+		mockUpdateRequestDB(200, "Database/DBAdapter.xml");

+

+		//System.out.println("SDNCAdapter interim status processing flow Started!");

+

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequestAct);

+		thread.start();

+		waitForExecutionToStart("sdncAdapter", 3);

+		String pid = getPid();

+

+		assertProcessInstanceNotFinished(pid);

+

+		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");

+		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");

+		CallbackHeader callbackHeader = new CallbackHeader();

+		callbackHeader.setRequestId(generatedRequestId);

+		callbackHeader.setResponseCode("200");

+		callbackHeader.setResponseMessage("OK");

+		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();

+		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);

+		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestDataNonfinal);

+		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();

+		callbackService.setProcessEngineServices4junit(processEngineRule);

+		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		//System.out.println("Back from executing process again");

+

+		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);

+		assertProcessInstanceNotFinished(pid);

+

+		checkForTimeout(pid);

+

+		assertEquals(true, (Boolean) (getVariable(pid, "continueListening")));

+

+

+		//System.out.println("SDNCAdapter interim status processing flow Completed!");

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void nonFinalThenFinal() throws InterruptedException {

+

+		mockSDNCAdapter(200);

+		mockUpdateRequestDB(200, "Database/DBAdapter.xml");

+

+		//System.out.println("SDNCAdapter non-final then final processing flow Started!");

+

+		// Start the flow

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequestAct);

+		thread.start();

+		waitForExecutionToStart("sdncAdapter", 3);

+		String pid = getPid();

+

+		assertProcessInstanceNotFinished(pid);

+

+		// Inject a "non-final" SDNC Adapter asynchronous callback message

+		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");

+		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");

+		CallbackHeader callbackHeader = new CallbackHeader();

+		callbackHeader.setRequestId(generatedRequestId);

+		callbackHeader.setResponseCode("200");

+		callbackHeader.setResponseMessage("OK");

+		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();

+		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);

+		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestDataNonfinal);

+		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();

+		callbackService.setProcessEngineServices4junit(processEngineRule);

+		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		//System.out.println("Back from executing process again");

+

+		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);

+		assertProcessInstanceNotFinished(pid);

+		assertEquals(true, (Boolean) (getVariable(pid, "continueListening")));

+

+		// Inject a "final" SDNC Adapter asynchronous callback message

+		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestData);

+		sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		//System.out.println("Back from executing process again");

+

+		assertFalse(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);

+		assertProcessInstanceFinished(pid);

+		assertEquals(false, (Boolean) (getVariable(pid, "continueListening")));

+

+		//System.out.println("SDNCAdapter non-final then final processing flow Completed!");

+	}

+

+	

+

+	private void waitForExecutionToStart(String processDefintion, int count) throws InterruptedException {

+		//System.out.println(processEngineRule.getRuntimeService().createExecutionQuery().processDefinitionKey(processDefintion).count());

+		while (processEngineRule.getRuntimeService().createExecutionQuery().processDefinitionKey(processDefintion).count() != count) {

+			Thread.sleep(200);

+		}

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void badCorrelationIdTest() throws InterruptedException {

+

+		mockSDNCAdapter(200);

+

+		//System.out.println("SDNCAdapter bad RequestId test Started!");

+

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);

+		thread.start();

+		waitForExecutionToStart("sdncAdapter", 3);

+		String pid = getPid();

+		assertProcessInstanceNotFinished(pid);

+

+		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");

+		String badRequestId = "This is not the RequestId that was used";

+		CallbackHeader callbackHeader = new CallbackHeader();

+		callbackHeader.setRequestId(badRequestId);

+		callbackHeader.setResponseCode("200");

+		callbackHeader.setResponseMessage("OK");

+		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();

+		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);

+		sdncAdapterCallbackRequest.setRequestData(sdncAdapterCallbackRequestData);

+		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();

+		callbackService.setProcessEngineServices4junit(processEngineRule);

+		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		//System.out.println("Back from executing process again");

+

+		assertTrue(sdncAdapterResponse instanceof SDNCAdapterExceptionResponse);

+		assertTrue(((SDNCAdapterExceptionResponse) sdncAdapterResponse).getException() instanceof IllegalStateException);

+		assertProcessInstanceNotFinished(pid);

+

+		//System.out.println("SDNCAdapter bad RequestId test Completed!");

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void badSynchronousResponse() throws IOException, InterruptedException {

+

+		mockSDNCAdapter(404);

+

+		//System.out.println("SDNCAdapter bad synchronous response flow Started!");

+

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);

+		thread.start();

+		while (thread.isAlive()) {

+			Thread.sleep(200);

+		}

+		WorkflowResponse response = thread.workflowResponse;

+		Assert.assertNotNull(response);

+		Assert.assertEquals("404 error", response.getMessageCode(),7000);

+//		assertProcessInstanceFinished(response.getProcessInstanceID());

+		//System.out.println("SDNCAdapter bad synchronous response flow Completed!");

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void sdncNotFound() throws IOException, InterruptedException {

+		mockSDNCAdapter(200);

+		mockSDNCAdapter("/sdncAdapterMock/404", 400, "sdncCallbackErrorResponse.xml");

+

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);

+		thread.start();

+		waitForExecutionToStart("sdncAdapter", 3);

+		String pid = getPid();

+

+		//System.out.println("Injecting SDNC Adapter asynchronous callback message to continue processing");

+		String generatedRequestId = (String) processEngineRule.getRuntimeService().getVariable(pid, "SDNCA_requestId");

+		CallbackHeader callbackHeader = new CallbackHeader();

+		callbackHeader.setRequestId(generatedRequestId);

+		callbackHeader.setResponseCode("404");

+		callbackHeader.setResponseMessage("Error processing request to SDNC. Not Found. https://sdncodl.it.us.aic.cip.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/AS%2FVLXM%2F000199%2F%2FSB_INTERNET. SDNC Returned-[error-type:application, error-tag:data-missing, error-message:Request could not be completed because the relevant data model content does not exist.]");

+		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();

+		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);

+		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();

+		callbackService.setProcessEngineServices4junit(processEngineRule);

+		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		//System.out.println("Back from executing process again");

+

+		assertProcessInstanceFinished(pid);

+		assertNotNull(sdncAdapterResponse);

+		//TODO query history to see SDNCA_ResponseCode, SDNCA_ErrorResponse

+		//System.out.println("SDNCAdapter SDNC Notfound test Completed!");

+	}

+

+	@Test

+	@Deployment(resources = {"subprocess/SDNCAdapterV1.bpmn",

+			"subprocess/GenericNotificationService.bpmn"

+			})

+	public void asynchronousMessageTimeout() throws IOException, InterruptedException {

+		mockSDNCAdapter(200);

+		//System.out.println("SDNCAdapter asynchronous message timeout flow Started!");

+		ProcessExecutionThread thread = new ProcessExecutionThread(sdncAdapterWorkflowRequest);

+		thread.start();

+		waitForExecutionToStart("sdncAdapter", 3);

+		checkForTimeout(getPid());

+	}

+

+	private void checkForTimeout(String pid) throws InterruptedException {

+

+		assertProcessInstanceNotFinished(pid);

+

+		ProcessEngineConfigurationImpl processEngineConfiguration =

+			(ProcessEngineConfigurationImpl) processEngineRule.getProcessEngine().getProcessEngineConfiguration();

+		assertTrue(processEngineConfiguration.getJobExecutor().isActive());

+

+	    Job timerJob = processEngineRule.getManagementService().createJobQuery().processInstanceId(pid).singleResult();

+	    assertNotNull(timerJob);

+

+	    processEngineRule.getManagementService().executeJob(timerJob.getId());

+

+	    assertProcessInstanceFinished(pid);

+

+		//System.out.println("SDNCAdapter asynchronous message timeout flow Completed!");

+	}

+

+	class ProcessExecutionThread extends Thread {

+

+		private String workflowRequest;

+		private WorkflowResponse workflowResponse;

+

+		public ProcessExecutionThread(String workflowRequest) {

+			this.workflowRequest = workflowRequest;

+		}

+

+		public void run() {

+			workflowResponse = invokeFlow(workflowRequest);

+			workflowResponse.getProcessInstanceID();

+		}

+	}

+

+	private String getPid() {

+		return processEngineRule.getHistoryService().createHistoricProcessInstanceQuery().list().get(0).getId();

+	}

+

+	private Object getVariable(String pid, String variableName) {

+		try {

+			return

+				processEngineRule

+					.getHistoryService()

+					.createHistoricVariableInstanceQuery()

+					.processInstanceId(pid).variableName(variableName)

+					.singleResult()

+					.getValue();

+		} catch(Exception ex) {

+			return null;

+		}

+	}

+

+	private void assertProcessInstanceFinished(String pid) {

+	    assertEquals(1, processEngineRule.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count());

+	}

+

+	private void assertProcessInstanceNotFinished(String pid) {

+	    assertEquals(0, processEngineRule.getHistoryService().createHistoricProcessInstanceQuery().processInstanceId(pid).finished().count());

+	}

+

+}

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIGenericVnfTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIGenericVnfTest.java
index 4ae7620..18fb5ac 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIGenericVnfTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIGenericVnfTest.java
@@ -1,171 +1,173 @@
-/*- 
- * ============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.common;
-
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf_Bad;
-
-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.core.WorkflowException;
-import org.openecomp.mso.bpmn.mock.FileUtil;
-
-/**
- * Unit tests for UpdateAAIGenericVnf bpmn.
- */
-public class UpdateAAIGenericVnfTest extends WorkflowTest {
-		
-	/**
-	 * Test the happy path through the flow.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIGenericVnf.bpmn"
-		})
-	public void happyPath() throws IOException {
-		logStart();
-		
-		String updateAAIGenericVnfRequest =	FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
-		MockPutGenericVnf("/skask", 200);
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);
-		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(200, responseCode.intValue());
-		
-		logEnd();
-	}
-
-	/**
-	 * Test the happy path through the flow.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIGenericVnf.bpmn"
-		})
-	public void personaMismatch() throws IOException {
-		
-		logStart();
-		
-		String updateAAIGenericVnfRequest =	FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 
-		updateAAIGenericVnfRequest = updateAAIGenericVnfRequest.replaceFirst("introvert", "extrovert");
-		
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);
-		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");
-		System.out.println("Workflow Exception: " + workflowException);
-		Assert.assertNotNull(workflowException);
-		
-		logEnd();
-	}
-
-	/**
-	 * Test the case where the GET to AAI returns a 404.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIGenericVnf.bpmn"
-		})
-	public void badGet() throws IOException {
-		
-		logStart();
-		
-		String updateAAIGenericVnfRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 
-		
-		MockGetGenericVnfById_404("skask[?]depth=1");
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);
-		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "UAAIGenVnf_getGenericVnfResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIGenVnf_getGenericVnfResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(404, responseCode.intValue());
-		
-		logEnd();
-	}
-
-	/**
-	 * Test the case where the GET to AAI is successful, but he subsequent PUT returns 404.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIGenericVnf.bpmn"
-		})
-	public void badPut() throws IOException {
-		
-		logStart();
-		
-		String updateAAIGenericVnfRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 
-		
-		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");
-		MockPutGenericVnf_Bad("skask", 404);
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);
-		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(404, responseCode.intValue());
-		
-		logEnd();
-	}
-}
-
+/*- 

+ * ============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.common;

+

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithDepth;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf_Bad;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchGenericVnf;

+

+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.core.WorkflowException;

+import org.openecomp.mso.bpmn.mock.FileUtil;

+

+/**

+ * Unit tests for UpdateAAIGenericVnf bpmn.

+ */

+public class UpdateAAIGenericVnfTest extends WorkflowTest {

+		

+	/**

+	 * Test the happy path through the flow.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIGenericVnf.bpmn"

+		})

+	public void happyPath() throws IOException {

+		logStart();

+		

+		String updateAAIGenericVnfRequest =	FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutGenericVnf("/skask", 200);

+		MockPatchGenericVnf("skask");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);

+		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(200, responseCode.intValue());

+		

+		logEnd();

+	}

+

+	/**

+	 * Test the happy path through the flow.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIGenericVnf.bpmn"

+		})

+	public void personaMismatch() throws IOException {

+		

+		logStart();

+		

+		String updateAAIGenericVnfRequest =	FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 

+		updateAAIGenericVnfRequest = updateAAIGenericVnfRequest.replaceFirst("introvert", "extrovert");

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);

+		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		WorkflowException workflowException = (WorkflowException) getVariableFromHistory(businessKey, "WorkflowException");

+		System.out.println("Workflow Exception: " + workflowException);

+		Assert.assertNotNull(workflowException);

+		

+		logEnd();

+	}

+

+	/**

+	 * Test the case where the GET to AAI returns a 404.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIGenericVnf.bpmn"

+		})

+	public void badGet() throws IOException {

+		

+		logStart();

+		

+		String updateAAIGenericVnfRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 

+		

+		MockGetGenericVnfById_404("skask[?]depth=1");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);

+		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "UAAIGenVnf_getGenericVnfResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIGenVnf_getGenericVnfResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(404, responseCode.intValue());

+		

+		logEnd();

+	}

+

+	/**

+	 * Test the case where the GET to AAI is successful, but he subsequent PUT returns 404.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIGenericVnf.bpmn"

+		})

+	public void badPut() throws IOException {

+		

+		logStart();

+		

+		String updateAAIGenericVnfRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIGenericVnfRequest.xml"); 

+		

+		MockGetGenericVnfByIdWithDepth("skask", 1, "VfModularity/GenericVnf.xml");

+		MockPutGenericVnf_Bad("skask", 404);

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIGenericVnfRequest", updateAAIGenericVnfRequest);

+		invokeSubProcess("UpdateAAIGenericVnf", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIGenVnf_updateGenericVnfResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(404, responseCode.intValue());

+		

+		logEnd();

+	}

+}

+

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIVfModuleTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIVfModuleTest.java
index 8691ae8..035f097 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIVfModuleTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/UpdateAAIVfModuleTest.java
@@ -1,137 +1,139 @@
-/*- 
- * ============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.common;
-
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;
-import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;
-
-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.mock.FileUtil;
-
-/**
- * Unit tests for UpdateAAIVfModuleTest.bpmn.
- */
-public class UpdateAAIVfModuleTest extends WorkflowTest {
-		
-	/**
-	 * Test the happy path through the flow.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIVfModule.bpmn"
-		})
-	public void happyPath() throws IOException {
-		logStart();
-		
-		String updateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIVfModuleRequest.xml"); 
-		MockGetGenericVnfByIdWithPriority("/skask/vf-modules/vf-module/supercool", 200, "VfModularity/VfModule-supercool.xml");
-		MockPutGenericVnf("/skask/vf-modules/vf-module/supercool", "PCRF", 200);
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIVfModuleRequest", updateAAIVfModuleRequest);
-		invokeSubProcess("UpdateAAIVfModule", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(200, responseCode.intValue());
-		
-		logEnd();
-	}
-
-	/**
-	 * Test the case where the GET to AAI returns a 404.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIVfModule.bpmn"
-		})
-	public void badGet() throws IOException {
-		
-		logStart();
-		
-		String updateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIVfModuleRequest.xml"); 
-		MockGetGenericVnfById("/skask/vf-modules/vf-module/.*", "VfModularity/VfModule-supercool.xml", 404);
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIVfModuleRequest", updateAAIVfModuleRequest);
-		invokeSubProcess("UpdateAAIVfModule", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "UAAIVfMod_getVfModuleResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIVfMod_getVfModuleResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(404, responseCode.intValue());
-		
-		logEnd();
-	}
-
-	/**
-	 * Test the case where the GET to AAI is successful, but he subsequent PUT returns 404.
-	 */
-	@Test	
-	@Deployment(resources = {
-			"subprocess/UpdateAAIVfModule.bpmn"
-		})
-	public void badPut() throws IOException {
-		
-		logStart();
-		
-		String updateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIVfModuleRequest.xml"); 
-		MockGetGenericVnfById_404("/skask/vf-modules/vf-module/supercool");
-		MockGetGenericVnfById("/skask/vf-modules/vf-module/supercool", "VfModularity/VfModule-supercool.xml", 200);
-		
-		String businessKey = UUID.randomUUID().toString();
-		Map<String, Object> variables = new HashMap<String, Object>();
-		variables.put("mso-request-id", "999-99-9999");
-		variables.put("isDebugLogEnabled","true");
-		variables.put("UpdateAAIVfModuleRequest", updateAAIVfModuleRequest);
-		invokeSubProcess("UpdateAAIVfModule", businessKey, variables);
-		
-		Assert.assertTrue(isProcessEnded(businessKey));
-		String response = (String) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponse");
-		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponseCode");
-		System.out.println("Subflow response code: " + responseCode);
-		System.out.println("Subflow response: " + response);
-		Assert.assertEquals(404, responseCode.intValue());
-		
-		logEnd();
-	}
-}
-
+/*- 

+ * ============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.common;

+

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfByIdWithPriority;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockGetGenericVnfById_404;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPutGenericVnf;

+import static org.openecomp.mso.bpmn.mock.StubResponseAAI.MockPatchVfModuleId;

+

+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.mock.FileUtil;

+

+/**

+ * Unit tests for UpdateAAIVfModuleTest.bpmn.

+ */

+public class UpdateAAIVfModuleTest extends WorkflowTest {

+		

+	/**

+	 * Test the happy path through the flow.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIVfModule.bpmn"

+		})

+	public void happyPath() throws IOException {

+		logStart();

+		

+		String updateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIVfModuleRequest.xml"); 

+		MockGetGenericVnfByIdWithPriority("/skask/vf-modules/vf-module/supercool", 200, "VfModularity/VfModule-supercool.xml");

+		MockPutGenericVnf("/skask/vf-modules/vf-module/supercool", "PCRF", 200);

+		MockPatchVfModuleId("skask", "supercool");

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIVfModuleRequest", updateAAIVfModuleRequest);

+		invokeSubProcess("UpdateAAIVfModule", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(200, responseCode.intValue());

+		

+		logEnd();

+	}

+

+	/**

+	 * Test the case where the GET to AAI returns a 404.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIVfModule.bpmn"

+		})

+	public void badGet() throws IOException {

+		

+		logStart();

+		

+		String updateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIVfModuleRequest.xml"); 

+		MockGetGenericVnfById("/skask/vf-modules/vf-module/.*", "VfModularity/VfModule-supercool.xml", 404);

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIVfModuleRequest", updateAAIVfModuleRequest);

+		invokeSubProcess("UpdateAAIVfModule", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "UAAIVfMod_getVfModuleResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIVfMod_getVfModuleResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(404, responseCode.intValue());

+		

+		logEnd();

+	}

+

+	/**

+	 * Test the case where the GET to AAI is successful, but he subsequent PUT returns 404.

+	 */

+	@Test	

+	@Deployment(resources = {

+			"subprocess/UpdateAAIVfModule.bpmn"

+		})

+	public void badPut() throws IOException {

+		

+		logStart();

+		

+		String updateAAIVfModuleRequest = FileUtil.readResourceFile("__files/VfModularity/UpdateAAIVfModuleRequest.xml"); 

+		MockGetGenericVnfById_404("/skask/vf-modules/vf-module/supercool");

+		MockGetGenericVnfById("/skask/vf-modules/vf-module/supercool", "VfModularity/VfModule-supercool.xml", 200);

+		

+		String businessKey = UUID.randomUUID().toString();

+		Map<String, Object> variables = new HashMap<String, Object>();

+		variables.put("mso-request-id", "999-99-9999");

+		variables.put("isDebugLogEnabled","true");

+		variables.put("UpdateAAIVfModuleRequest", updateAAIVfModuleRequest);

+		invokeSubProcess("UpdateAAIVfModule", businessKey, variables);

+		

+		Assert.assertTrue(isProcessEnded(businessKey));

+		String response = (String) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponse");

+		Integer responseCode = (Integer) getVariableFromHistory(businessKey, "UAAIVfMod_updateVfModuleResponseCode");

+		System.out.println("Subflow response code: " + responseCode);

+		System.out.println("Subflow response: " + response);

+		Assert.assertEquals(404, responseCode.intValue());

+		

+		logEnd();

+	}

+}

+

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java
index c475213..46bbb72 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTest.java
@@ -1,1796 +1,1796 @@
-/*- 
- * ============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.common;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.fail;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.lang.management.ManagementFactory;
-import java.lang.management.RuntimeMXBean;
-import java.lang.reflect.Field;
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.ws.rs.core.Response;
-import javax.xml.bind.JAXBException;
-import javax.xml.namespace.NamespaceContext;
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.xpath.XPath;
-import javax.xml.xpath.XPathConstants;
-import javax.xml.xpath.XPathExpression;
-import javax.xml.xpath.XPathExpressionException;
-import javax.xml.xpath.XPathFactory;
-
-import org.camunda.bpm.engine.RuntimeService;
-import org.camunda.bpm.engine.history.HistoricProcessInstance;
-import org.camunda.bpm.engine.history.HistoricVariableInstance;
-import org.camunda.bpm.engine.runtime.ProcessInstance;
-import org.camunda.bpm.engine.test.ProcessEngineRule;
-import org.camunda.bpm.engine.variable.impl.VariableMapImpl;
-import org.custommonkey.xmlunit.DetailedDiff;
-import org.custommonkey.xmlunit.XMLUnit;
-import org.jboss.resteasy.spi.AsynchronousResponse;
-import org.junit.Before;
-import org.junit.Rule;
-import org.openecomp.mso.bpmn.common.adapter.sdnc.CallbackHeader;
-import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterCallbackRequest;
-import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterResponse;
-import org.openecomp.mso.bpmn.common.adapter.vnf.CreateVnfNotification;
-import org.openecomp.mso.bpmn.common.adapter.vnf.DeleteVnfNotification;
-import org.openecomp.mso.bpmn.common.adapter.vnf.MsoExceptionCategory;
-import org.openecomp.mso.bpmn.common.adapter.vnf.MsoRequest;
-import org.openecomp.mso.bpmn.common.adapter.vnf.UpdateVnfNotification;
-import org.openecomp.mso.bpmn.common.adapter.vnf.VnfRollback;
-import org.openecomp.mso.bpmn.common.workflow.service.SDNCAdapterCallbackServiceImpl;
-import org.openecomp.mso.bpmn.common.workflow.service.VnfAdapterNotifyServiceImpl;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowAsyncCommonResource;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowMessageResource;
-import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;
-import org.openecomp.mso.bpmn.core.CamundaDBSetup;
-import org.openecomp.mso.bpmn.core.PropertyConfigurationSetup;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
-import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
-import com.github.tomakehurst.wiremock.junit.WireMockRule;
-
-
-
-/**
- * A base class for Workflow tests.
- * <p>
- * WireMock response transformers may be specified by declaring public
- * static fields with the @WorkflowTestTransformer annotation. For example:
- * <pre>
- *     @WorkflowTestTransformer
- *     public static final ResponseTransformer sdncAdapterMockTransformer =
- *         new SDNCAdapterMockTransformer();
- * </pre>
- */
-public class WorkflowTest {
-	@Rule
-	public final ProcessEngineRule processEngineRule = new ProcessEngineRule();
-
-	@Rule
-	public final WireMockRule wireMockRule;
-
-	/**
-	 * Constructor.
-	 */
-	public WorkflowTest() throws RuntimeException {
-		// Process WorkflowTestTransformer annotations
-		List<ResponseTransformer> transformerList = new ArrayList<ResponseTransformer>();
-
-		for (Field field : getClass().getFields()) {
-			WorkflowTestTransformer annotation = (WorkflowTestTransformer)
-				field.getAnnotation(WorkflowTestTransformer.class);
-
-			if (annotation == null) {
-				continue;
-			}
-
-			if (!Modifier.isStatic(field.getModifiers())) {
-				throw new RuntimeException(field.getDeclaringClass().getName()
-					+ "#" + field.getName() + " has a @WorkflowTestTransformer "
-					+ " annotation but it is not declared static");
-			}
-
-			ResponseTransformer transformer;
-
-			try {
-				transformer = (ResponseTransformer) field.get(null);
-			} catch (IllegalAccessException e) {
-				throw new RuntimeException(field.getDeclaringClass().getName()
-					+ "#" + field.getName() + " is not accessible", e);
-			} catch (ClassCastException e) {
-				throw new RuntimeException(field.getDeclaringClass().getName()
-					+ "#" + field.getName() + " is not a ResponseTransformer", e);
-			}
-
-			if (transformer == null) {
-				continue;
-			}
-
-			transformerList.add(transformer);
-		}
-
-		ResponseTransformer[] transformerArray =
-			transformerList.toArray(new ResponseTransformer[transformerList.size()]);
-
-		wireMockRule = new WireMockRule(WireMockConfiguration.wireMockConfig()
-			.port(28090).extensions(transformerArray));
-	}
-
-	@Before
-	public void testSetup() throws Exception {
-		CamundaDBSetup.configure();
-		PropertyConfigurationSetup.init();
-	}
-
-	/**
-	 * The current request ID.  Normally set when an "invoke" method is called.
-	 */
-	protected volatile String msoRequestId = null;
-
-	/**
-	 * The current service instance ID.  Normally set when an "invoke" method
-	 * is called.
-	 */
-	protected volatile String msoServiceInstanceId = null;
-
-	/**
-	 * Logs a test start method.
-	 */
-	protected void logStart() {
-		StackTraceElement[] st = Thread.currentThread().getStackTrace();
-		String method = st[2].getMethodName();
-		System.out.println("STARTED TEST: " + method);
-	}
-
-	/**
-	 * Logs a test end method.
-	 */
-	protected void logEnd() {
-		StackTraceElement[] st = Thread.currentThread().getStackTrace();
-		String method = st[2].getMethodName();
-		System.out.println("ENDED TEST: " + method);
-	}
-
-	/**
-	 * Invokes a subprocess.
-	 * @param processKey the process key
-	 * @param businessKey a unique key that will identify the process instance
-	 * @param injectedVariables variables to inject into the process
-	 */
-	protected void invokeSubProcess(String processKey, String businessKey,
-			Map<String, Object> injectedVariables) {
-		RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
-		List<String> arguments = runtimeMxBean.getInputArguments();
-		System.out.println("JVM args = " + arguments);
-
-		msoRequestId = (String) injectedVariables.get("mso-request-id");
-
-		if (msoRequestId == null) {
-			String msg = "mso-request-id variable was not provided";
-			System.out.println(msg);
-			fail(msg);
-		}
-
-		// Note: some scenarios don't have a service-instance-id, may be null
-		msoServiceInstanceId = (String) injectedVariables.get("mso-service-instance-id");
-
-		RuntimeService runtimeService = processEngineRule.getRuntimeService();
-		runtimeService.startProcessInstanceByKey(processKey, businessKey, injectedVariables);
-	}
-
-	/**
-	 * Invokes an asynchronous process.
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param processKey the process key
-	 * @param schemaVersion the API schema version, e.g. "v1"
-	 * @param businessKey a unique key that will identify the process instance
-	 * @param request the request
-	 * @return a TestAsyncResponse object associated with the test
-	 */
-	protected TestAsyncResponse invokeAsyncProcess(String processKey,
-			String schemaVersion, String businessKey, String request) {
-		return invokeAsyncProcess(processKey, schemaVersion, businessKey, request, null);
-	}
-
-	/**
-	 * Invokes an asynchronous process.
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param processKey the process key
-	 * @param schemaVersion the API schema version, e.g. "v1"
-	 * @param businessKey a unique key that will identify the process instance
-	 * @param request the request
-	 * @param injectedVariables optional variables to inject into the process
-	 * @return a TestAsyncResponse object associated with the test
-	 */
-	public TestAsyncResponse invokeAsyncProcess(String processKey,
-			String schemaVersion, String businessKey, String request,
-			Map<String, Object> injectedVariables) {
-
-		RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
-		List<String> arguments = runtimeMxBean.getInputArguments();
-		System.out.println("JVM args = " + arguments);
-
-		Map<String, Object> variables = createVariables(schemaVersion, businessKey,
-			request, injectedVariables, false);
-		VariableMapImpl variableMapImpl = createVariableMapImpl(variables);
-
-		System.out.println("Sending " + request + " to " + processKey + " process");
-		WorkflowAsyncCommonResource workflowResource = new WorkflowAsyncCommonResource();
-		workflowResource.setProcessEngineServices4junit(processEngineRule);
-
-		TestAsyncResponse asyncResponse = new TestAsyncResponse();
-		workflowResource.startProcessInstanceByKey(asyncResponse, processKey, variableMapImpl);
-		return asyncResponse;
-	}
-
-	/**
-	 * Invokes an asynchronous process.
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param processKey the process key
-	 * @param schemaVersion the API schema version, e.g. "v1"
-	 * @param businessKey a unique key that will identify the process instance
-	 * @param request the request
-	 * @param injectedVariables optional variables to inject into the process
-	 * @param serviceInstantiationModel indicates whether this method is being
-	 * invoked for a flow that is designed using the service instantiation model
-	 * @return a TestAsyncResponse object associated with the test
-	 */
-	protected TestAsyncResponse invokeAsyncProcess(String processKey,
-			String schemaVersion, String businessKey, String request,
-			Map<String, Object> injectedVariables, boolean serviceInstantiationModel) {
-
-		RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();
-		List<String> arguments = runtimeMxBean.getInputArguments();
-		System.out.println("JVM args = " + arguments);
-
-		Map<String, Object> variables = createVariables(schemaVersion, businessKey,
-			request, injectedVariables, serviceInstantiationModel);
-		VariableMapImpl variableMapImpl = createVariableMapImpl(variables);
-
-		System.out.println("Sending " + request + " to " + processKey + " process");
-		WorkflowAsyncCommonResource workflowResource = new WorkflowAsyncCommonResource();
-		workflowResource.setProcessEngineServices4junit(processEngineRule);
-
-		TestAsyncResponse asyncResponse = new TestAsyncResponse();
-		workflowResource.startProcessInstanceByKey(asyncResponse, processKey, variableMapImpl);
-		return asyncResponse;
-	}
-
-	/**
-	 * Private helper method that creates a variable map for a request.
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param schemaVersion the API schema version, e.g. "v1"
-	 * @param businessKey a unique key that will identify the process instance
-	 * @param request the request
-	 * @param injectedVariables optional variables to inject into the process
-	 * @param serviceInstantiationModel indicates whether this method is being
-	 * invoked for a flow that is designed using the service instantiation model
-	 * @return a variable map
-	 */
-	private Map<String, Object> createVariables(String schemaVersion,
-			String businessKey, String request, Map<String, Object> injectedVariables,
-			boolean serviceInstantiationModel) {
-
-		Map<String, Object> variables = new HashMap<String, Object>();
-
-		// These variables may be overridded by injected variables.
-		variables.put("mso-service-request-timeout", "180");
-		variables.put("isDebugLogEnabled", "true");
-
-		// These variables may not be overridded by injected variables.
-		String[] notAllowed = new String[] {
-				"mso-schema-version",
-				"mso-business-key",
-				"bpmnRequest",
-				"mso-request-id",
-				"mso-service-instance-id"
-		};
-
-		if (injectedVariables != null) {
-			for (String key : injectedVariables.keySet()) {
-				for (String var : notAllowed) {
-					if (var.equals(key)) {
-						String msg = "Cannot specify " + var + " in injected variables";
-						System.out.println(msg);
-						fail(msg);
-					}
-				}
-
-				variables.put(key, injectedVariables.get(key));
-			}
-		}
-
-		variables.put("mso-schema-version", schemaVersion);
-		variables.put("mso-business-key", businessKey);
-		variables.put("bpmnRequest", request);
-
-		if (serviceInstantiationModel) {
-
-			/*
-			 * The request ID and the service instance ID are generated for flows
-			 * that follow the service instantiation model unless "requestId" and
-			 * "serviceInstanceId" are injected variables.
-			 */
-
-			try {
-				msoRequestId = (String) injectedVariables.get("requestId");
-				variables.put("mso-request-id", msoRequestId);
-				msoServiceInstanceId = (String) injectedVariables.get("serviceInstanceId");
-				variables.put("mso-service-instance-id", msoServiceInstanceId);
-			}
-			catch(Exception e) {
-			}
-			if (msoRequestId == null || msoRequestId.trim().equals("")) {
-				System.out.println("No requestId element in injectedVariables");
-				variables.put("mso-request-id", UUID.randomUUID().toString());
-			}
-			if (msoServiceInstanceId == null || msoServiceInstanceId.trim().equals("")) {
-				System.out.println("No seviceInstanceId element in injectedVariables");
-				variables.put("mso-service-instance-id", UUID.randomUUID().toString());
-			}
-
-		} else {
-			msoRequestId = getXMLTextElement(request, "request-id");
-
-			if (msoRequestId == null) {
-				//check in injected variables
-				try {
-					msoRequestId = (String) injectedVariables.get("requestId");
-				}
-				catch(Exception e) {
-				}
-				if (msoRequestId == null || msoRequestId.trim().equals("")) {
-					String msg = "No request-id element in " + request;
-					System.out.println(msg);
-					fail(msg);
-				}
-			}
-
-			variables.put("mso-request-id", msoRequestId);
-
-			// Note: some request types don't have a service-instance-id
-			msoServiceInstanceId = getXMLTextElement(request, "service-instance-id");
-
-			if (msoServiceInstanceId != null) {
-				variables.put("mso-service-instance-id", msoServiceInstanceId);
-			}
-		}
-
-		return variables;
-	}
-
-	/**
-	 * Private helper method that creates a camunda VariableMapImpl from a simple
-	 * variable map.
-	 * @param variables the simple variable map
-	 * @return a VariableMap
-	 */
-	private VariableMapImpl createVariableMapImpl(Map<String, Object> variables) {
-		Map<String, Object> wrappedVariables = new HashMap<String, Object>();
-
-		for (String key : variables.keySet()) {
-			Object value = variables.get(key);
-			wrappedVariables.put(key, wrapVariableValue(value));
-		}
-
-		VariableMapImpl variableMapImpl = new VariableMapImpl();
-		variableMapImpl.put("variables", wrappedVariables);
-		return variableMapImpl;
-	}
-
-	/**
-	 * Private helper method that wraps a variable value for inclusion in a
-	 * camunda VariableMapImpl.
-	 * @param value the variable value
-	 * @return the wrapped variable
-	 */
-	private Map<String, Object> wrapVariableValue(Object value) {
-		HashMap<String, Object> valueMap = new HashMap<String, Object>();
-		valueMap.put("value", value);
-		return valueMap;
-	}
-
-	/**
-	 * Receives a response from an asynchronous process.
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param businessKey the process business key
-	 * @param asyncResponse the TestAsyncResponse object associated with the test
-	 * @param timeout the timeout in milliseconds
-	 * @return the WorkflowResponse
-	 */
-	public WorkflowResponse receiveResponse(String businessKey,
-			TestAsyncResponse asyncResponse, long timeout) {
-		System.out.println("Waiting " + timeout + "ms for process with business key " + businessKey
-			+ " to send a response");
-
-		long now = System.currentTimeMillis() + timeout;
-		long endTime = now + timeout;
-
-		while (now <= endTime) {
-			Response response = asyncResponse.getResponse();
-
-			if (response != null) {
-				System.out.println("Received a response from process with business key " + businessKey);
-
-				Object entity = response.getEntity();
-
-				if (!(entity instanceof WorkflowResponse)) {
-					String msg = "Response entity is " +
-						(entity == null ? "null" : entity.getClass().getName()) +
-						", expected WorkflowResponse";
-					System.out.println(msg);
-					fail(msg);
-					return null; // unreachable
-				}
-
-				return (WorkflowResponse) entity;
-			}
-
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				String msg = "Interrupted waiting for a response from process with business key " +
-					businessKey;
-				System.out.println(msg);
-				fail(msg);
-				return null; // unreachable
-			}
-
-			now = System.currentTimeMillis();
-		}
-
-		String msg = "No response received from process with business key " + businessKey +
-			" within " + timeout + "ms";
-		System.out.println(msg);
-		fail("Process with business key " + businessKey + " did not end within 10000ms");
-		return null; // unreachable
-	}
-
-	/**
-	 * Runs a program to inject SDNC callback data into the test environment.
-	 * A program is essentially just a list of keys that identify callback data
-	 * to be injected, in sequence. An example program:
-	 * <pre>
-	 *     reserve, assign, delete:ERR
-	 * </pre>
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param callbacks an object containing callback data for the program
-	 * @param program the program to execute
-	 */
-	protected void injectSDNCRestCallbacks(CallbackSet callbacks, String program) {
-
-		String[] cmds = program.replaceAll("\\s+", "").split(",");
-
-		for (String cmd : cmds) {
-			String action = cmd;
-			String modifier = "STD";
-
-			if (cmd.contains(":")) {
-				String[] parts = cmd.split(":");
-				action = parts[0];
-				modifier = parts[1];
-			}
-
-			String content = null;
-
-			if ("STD".equals(modifier)) {
-				content = callbacks.get(action);
-
-				if (content == null) {
-					String msg = "No callback defined for '" + action + "' SDNC request";
-					System.out.println(msg);
-					fail(msg);
-				}
-			} else if ("ERR".equals(modifier)) {
-				content = "{\"SDNCServiceError\":{\"sdncRequestId\":\"((REQUEST-ID))\",\"responseCode\":\"500\",\"responseMessage\":\"SIMULATED ERROR FROM SDNC ADAPTER\",\"ackFinalIndicator\":\"Y\"}}";
-			} else {
-				String msg = "Invalid SDNC program modifier: '" + modifier + "'";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			if (!injectSDNCRestCallback(content, 10000)) {
-				fail("Failed to inject SDNC '" + action + "' callback");
-			}
-
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-				fail("Interrupted after injection of SDNC '" + action + "' callback");
-			}
-		}
-	}
-
-	/**
-	 * Runs a program to inject SDNC events into the test environment.
-	 * A program is essentially just a list of keys that identify event data
-	 * to be injected, in sequence. An example program:
-	 * <pre>
-	 *     event1, event2
-	 * </pre>
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * Defaults the Event Type to "SDNCAEvent" for backward compatibility.
-	 * @param callbacks an object containing event data for the program
-	 * @param program the program to execute
-	 */
-	protected void injectSDNCEvents(CallbackSet callbacks, String program) {
-		injectSDNCEvents(callbacks, program, "SDNCAEvent");
-	}
-
-	/**
-	 * Runs a program to inject SDNC events into the test environment.
-	 * A program is essentially just a list of keys that identify event data
-	 * to be injected, in sequence. An example program:
-	 * <pre>
-	 *     event1, event2
-	 * </pre>
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param callbacks an object containing event data for the program
-	 * @param program the program to execute
-	 * @param eventType (i.e. "SDNCAEvent", "SNIROResponse", etc.)
-	 */
-	protected void injectSDNCEvents(CallbackSet callbacks, String program, String eventType) {
-
-		String[] cmds = program.replaceAll("\\s+", "").split(",");
-
-		for (String cmd : cmds) {
-			String action = cmd;
-			String modifier = "STD";
-
-			if (cmd.contains(":")) {
-				String[] parts = cmd.split(":");
-				action = parts[0];
-				modifier = parts[1];
-			}
-
-			String content = null;
-
-			if ("STD".equals(modifier)) {
-				content = callbacks.get(action);
-
-				if (content == null) {
-					String msg = "No SDNC event callback defined for '" + action + "'";
-					System.out.println(msg);
-					fail(msg);
-				}
-			} else {
-				String msg = "Invalid SDNC program modifier: '" + modifier + "'";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			if (!injectWorkflowMessage(eventType, content, 10000)) {
-				fail("Failed to inject SDNC '" + action + "' event");
-			}
-
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-				fail("Interrupted after injection of SDNC '" + action + "' event");
-			}
-		}
-	}
-
-	/**
-	 * Runs a program to inject SDNC callback data into the test environment.
-	 * A program is essentially just a list of keys that identify callback data
-	 * to be injected, in sequence. An example program:
-	 * <pre>
-	 *     reserve, assign, delete:ERR
-	 * </pre>
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param callbacks an object containing callback data for the program
-	 * @param program the program to execute
-	 */
-	public void injectSDNCCallbacks(CallbackSet callbacks, String program) {
-
-		String[] cmds = program.replaceAll("\\s+", "").split(",");
-
-		for (String cmd : cmds) {
-			String action = cmd;
-			String modifier = "STD";
-
-			if (cmd.contains(":")) {
-				String[] parts = cmd.split(":");
-				action = parts[0];
-				modifier = parts[1];
-			}
-
-			String content = null;
-			int respCode = 200;
-			String respMsg = "OK";
-
-			if ("STD".equals(modifier)) {
-				content = callbacks.get(action);
-
-				if (content == null) {
-					String msg = "No callback defined for '" + action + "' SDNC request";
-					System.out.println(msg);
-					fail(msg);
-				}
-
-				respCode = 200;
-				respMsg = "OK";
-			} else if ("ERR".equals(modifier)) {
-				content = "<svc-request-id>((REQUEST-ID))</svc-request-id><response-code>500</response-code><response-message>SIMULATED ERROR FROM SDNC ADAPTER</response-message>";
-				respCode = 500;
-				respMsg = "SERVER ERROR";
-			} else {
-				String msg = "Invalid SDNC program modifier: '" + modifier + "'";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			if (!injectSDNCCallback(respCode, respMsg, content, 10000)) {
-				fail("Failed to inject SDNC '" + action + "' callback");
-			}
-
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-				fail("Interrupted after injection of SDNC '" + action + "' callback");
-			}
-		}
-	}
-
-	/**
-	 * Runs a program to inject VNF adapter REST callback data into the test environment.
-	 * A program is essentially just a list of keys that identify callback data
-	 * to be injected, in sequence. An example program:
-	 * <pre>
-	 *     create, rollback
-	 * </pre>
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param callbacks an object containing callback data for the program
-	 * @param program the program to execute
-	 */
-	public void injectVNFRestCallbacks(CallbackSet callbacks, String program) {
-
-		String[] cmds = program.replaceAll("\\s+", "").split(",");
-
-		for (String cmd : cmds) {
-			String action = cmd;
-			String modifier = "STD";
-
-			if (cmd.contains(":")) {
-				String[] parts = cmd.split(":");
-				action = parts[0];
-				modifier = parts[1];
-			}
-
-			String content = null;
-
-			if ("STD".equals(modifier)) {
-				content = callbacks.get(action);
-
-				if (content == null) {
-					String msg = "No callback defined for '" + action + "' VNF REST request";
-					System.out.println(msg);
-					fail(msg);
-				}
-			} else if ("ERR".equals(modifier)) {
-				content = "SIMULATED ERROR FROM VNF ADAPTER";
-			} else {
-				String msg = "Invalid VNF REST program modifier: '" + modifier + "'";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			if (!injectVnfAdapterRestCallback(content, 10000)) {
-				fail("Failed to inject VNF REST '" + action + "' callback");
-			}
-
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-				fail("Interrupted after injection of VNF REST '" + action + "' callback");
-			}
-		}
-	}
-
-	/**
-	 * Runs a program to inject VNF callback data into the test environment.
-	 * A program is essentially just a list of keys that identify callback data
-	 * to be injected, in sequence. An example program:
-	 * <pre>
-	 *     createVnf, deleteVnf
-	 * </pre>
-	 * Errors are handled with junit assertions and will cause the test to fail.
-	 * @param callbacks an object containing callback data for the program
-	 * @param program the program to execute
-	 */
-	protected void injectVNFCallbacks(CallbackSet callbacks, String program) {
-
-		String[] cmds = program.replaceAll("\\s+", "").split(",");
-
-		for (String cmd : cmds) {
-			String action = cmd;
-			String modifier = "STD";
-
-			if (cmd.contains(":")) {
-				String[] parts = cmd.split(":");
-				action = parts[0];
-				modifier = parts[1];
-			}
-
-			String content = null;
-
-			if ("STD".equals(modifier)) {
-				content = callbacks.get(action);
-
-				if (content == null) {
-					String msg = "No callback defined for '" + action + "' VNF request";
-					System.out.println(msg);
-					fail(msg);
-				}
-
-			} else if ("ERR".equals(modifier)) {
-				String msg = "Currently unsupported VNF program modifier: '" + modifier + "'";
-				System.out.println(msg);
-				fail(msg);
-			} else {
-				String msg = "Invalid VNF program modifier: '" + modifier + "'";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			boolean injected = false;
-
-			if (content.contains("createVnfNotification")) {
-				injected = injectCreateVNFCallback(content, 10000);
-			} else if (content.contains("deleteVnfNotification")) {
-				injected = injectDeleteVNFCallback(content, 10000);
-			} else if (content.contains("updateVnfNotification")) {
-				injected = injectUpdateVNFCallback(content, 10000);
-			}
-
-			if (!injected) {
-				String msg = "Failed to inject VNF '" + action + "' callback";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			try {
-				Thread.sleep(1000);
-			} catch (InterruptedException e) {
-				fail("Interrupted after injection of VNF '" + action + "' callback");
-			}
-		}
-	}
-
-	/**
-	 * Waits for the number of running processes with the specified process
-	 * definition key to equal a particular count.
-	 * @param processKey the process definition key
-	 * @param count the desired count
-	 * @param timeout the timeout in milliseconds
-	 */
-	public void waitForRunningProcessCount(String processKey, int count, long timeout) {
-		System.out.println("Waiting " + timeout + "ms for there to be " + count + " "
-			+ processKey + " instances");
-
-		long now = System.currentTimeMillis() + timeout;
-		long endTime = now + timeout;
-		int last = -1;
-
-		while (now <= endTime) {
-			int actual = processEngineRule.getRuntimeService()
-				.createProcessInstanceQuery()
-				.processDefinitionKey(processKey)
-				.list().size();
-
-			if (actual != last) {
-				System.out.println("There are now " + actual + " "
-					+ processKey + " instances");
-				last = actual;
-			}
-
-			if (actual == count) {
-				return;
-			}
-
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				String msg = "Interrupted waiting for there to be " + count + " "
-					+ processKey + " instances";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			now = System.currentTimeMillis();
-		}
-
-		String msg = "Timed out waiting for there to be " + count + " "
-			+ processKey + " instances";
-		System.out.println(msg);
-		fail(msg);
-	}
-
-	/**
-	 * Waits for the specified process variable to be set.
-	 * @param processKey the process definition key
-	 * @param variable the variable name
-	 * @param timeout the timeout in milliseconds
-	 * @return the variable value, or null if it cannot be obtained
-	 *         in the specified time
-	 */
-	protected Object getProcessVariable(String processKey, String variable,
-			long timeout) {
-
-		System.out.println("Waiting " + timeout + "ms for "
-			+ processKey + "." + variable + " to be set");
-
-		long now = System.currentTimeMillis() + timeout;
-		long endTime = now + timeout;
-
-		ProcessInstance processInstance = null;
-		Object value = null;
-
-		while (value == null) {
-			if (now > endTime) {
-				if (processInstance == null) {
-					System.out.println("Timed out waiting for "
-						+ processKey + " to start");
-				} else {
-					System.out.println("Timed out waiting for "
-						+ processKey + "[" + processInstance.getId()
-						+ "]." + variable + " to be set");
-				}
-
-				return null;
-			}
-
-			if (processInstance == null) {
-				processInstance = processEngineRule.getRuntimeService()
-					.createProcessInstanceQuery()
-					.processDefinitionKey(processKey)
-					.singleResult();
-			}
-
-			if (processInstance != null) {
-				value = processEngineRule.getRuntimeService()
-					.getVariable(processInstance.getId(), variable);
-			}
-
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				System.out.println("Interrupted waiting for "
-					+ processKey + "." + variable + " to be set");
-				return null;
-			}
-
-			now = System.currentTimeMillis();
-		}
-
-		System.out.println(processKey + "["
-			+ processInstance.getId() + "]." + variable + "="
-			+ value);
-
-		return value;
-	}
-
-	/**
-	 * Injects a single SDNC adapter callback request. The specified callback data
-	 * may contain the placeholder string ((REQUEST-ID)) which is replaced with
-	 * the actual SDNC request ID. Note: this is not the requestId in the original
-	 * MSO request.
-	 * @param content the content of the callback
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the callback could be injected, false otherwise
-	 */
-	protected boolean injectSDNCRestCallback(String content, long timeout) {
-		String sdncRequestId = (String) getProcessVariable("SDNCAdapterRestV1",
-			"SDNCAResponse_CORRELATOR", timeout);
-
-		if (sdncRequestId == null) {
-			return false;
-		}
-
-		content = content.replace("((REQUEST-ID))", sdncRequestId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{REQUEST-ID}}", sdncRequestId);
-
-		System.out.println("Injecting SDNC adapter callback");
-		WorkflowMessageResource workflowMessageResource = new WorkflowMessageResource();
-		workflowMessageResource.setProcessEngineServices4junit(processEngineRule);
-		Response response = workflowMessageResource.deliver("SDNCAResponse", sdncRequestId, content);
-		System.out.println("Workflow response to SDNC adapter callback: " + response);
-		return true;
-	}
-
-	/**
-	 * Injects a single SDNC adapter callback request. The specified callback data
-	 * may contain the placeholder string ((REQUEST-ID)) which is replaced with
-	 * the actual SDNC request ID. Note: this is not the requestId in the original
-	 * MSO request.
-	 * @param content the content of the callback
-	 * @param respCode the response code (normally 200)
-	 * @param respMsg the response message (normally "OK")
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the callback could be injected, false otherwise
-	 */
-	protected boolean injectSDNCCallback(int respCode, String respMsg,
-			String content, long timeout) {
-
-		String sdncRequestId = (String) getProcessVariable("sdncAdapter",
-			"SDNCA_requestId", timeout);
-
-		if (sdncRequestId == null) {
-			return false;
-		}
-
-		content = content.replace("((REQUEST-ID))", sdncRequestId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{REQUEST-ID}}", sdncRequestId);
-
-		System.out.println("Injecting SDNC adapter callback");
-		CallbackHeader callbackHeader = new CallbackHeader();
-		callbackHeader.setRequestId(sdncRequestId);
-		callbackHeader.setResponseCode(String.valueOf(respCode));
-		callbackHeader.setResponseMessage(respMsg);
-		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();
-		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);
-		sdncAdapterCallbackRequest.setRequestData(content);
-		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();
-		callbackService.setProcessEngineServices4junit(processEngineRule);
-		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);
-		System.out.println("Workflow response to SDNC adapter callback: " + sdncAdapterResponse);
-
-		return true;
-	}
-
-	/**
-	 * Injects a single VNF adapter callback request. The specified callback data
-	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with
-	 * the actual message ID. Note: this is not the requestId in the original
-	 * MSO request.
-	 * @param content the content of the callback
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the callback could be injected, false otherwise
-	 */
-	protected boolean injectVnfAdapterRestCallback(String content, long timeout) {
-		String messageId = (String) getProcessVariable("vnfAdapterRestV1",
-			"VNFAResponse_CORRELATOR", timeout);
-
-		if (messageId == null) {
-			return false;
-		}
-
-		content = content.replace("((MESSAGE-ID))", messageId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{MESSAGE-ID}}", messageId);
-
-		System.out.println("Injecting VNF adapter callback");
-		WorkflowMessageResource workflowMessageResource = new WorkflowMessageResource();
-		workflowMessageResource.setProcessEngineServices4junit(processEngineRule);
-		Response response = workflowMessageResource.deliver("VNFAResponse", messageId, content);
-		System.out.println("Workflow response to VNF adapter callback: " + response);
-		return true;
-	}
-
-	/**
-	 * Injects a Create VNF adapter callback request. The specified callback data
-	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with
-	 * the actual message ID.  It may also contain the placeholder string
-	 * ((REQUEST-ID)) which is replaced request ID of the original MSO request.
-	 * @param content the content of the callback
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the callback could be injected, false otherwise
-	 * @throws JAXBException if the content does not adhere to the schema
-	 */
-	protected boolean injectCreateVNFCallback(String content, long timeout) {
-
-		String messageId = (String) getProcessVariable("vnfAdapterCreateV1",
-			"VNFC_messageId", timeout);
-
-		if (messageId == null) {
-			return false;
-		}
-
-		content = content.replace("((MESSAGE-ID))", messageId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{MESSAGE-ID}}", messageId);
-
-		if(content.contains("((REQUEST-ID))")){
-			content = content.replace("((REQUEST-ID))", msoRequestId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-			content = content.replace("{{REQUEST-ID}}", msoRequestId);
-		}
-
-		System.out.println("Injecting VNF adapter callback");
-
-		// Is it possible to unmarshal this with JAXB?  I couldn't.
-
-		CreateVnfNotification createVnfNotification = new CreateVnfNotification();
-		XPathTool xpathTool = new VnfNotifyXPathTool();
-		xpathTool.setXML(content);
-
-		try {
-			String completed = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:completed/text()");
-			createVnfNotification.setCompleted("true".equals(completed));
-
-			String vnfId = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:vnfId/text()");
-			createVnfNotification.setVnfId(vnfId);
-
-			NodeList entries = (NodeList) xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:outputs/tns:entry",
-				XPathConstants.NODESET);
-
-			CreateVnfNotificationOutputs outputs = new CreateVnfNotificationOutputs();
-
-			for (int i = 0; i < entries.getLength(); i++) {
-				Node node = entries.item(i);
-
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					Element entry = (Element) node;
-					String key = entry.getElementsByTagNameNS("*", "key").item(0).getTextContent();
-					String value = entry.getElementsByTagNameNS("*", "value").item(0).getTextContent();
-					outputs.add(key, value);
-				}
-			}
-
-			createVnfNotification.setOutputs(outputs);
-
-			VnfRollback rollback = new VnfRollback();
-
-			String cloudSiteId = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:cloudSiteId/text()");
-			rollback.setCloudSiteId(cloudSiteId);
-
-			String requestId = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:msoRequest/tns:requestId/text()");
-			String serviceInstanceId = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:msoRequest/tns:serviceInstanceId/text()");
-
-			if (requestId != null || serviceInstanceId != null) {
-				MsoRequest msoRequest = new MsoRequest();
-				msoRequest.setRequestId(requestId);
-				msoRequest.setServiceInstanceId(serviceInstanceId);
-				rollback.setMsoRequest(msoRequest);
-			}
-
-			String tenantCreated = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:tenantCreated/text()");
-			rollback.setTenantCreated("true".equals(tenantCreated));
-
-			String tenantId = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:tenantId/text()");
-			rollback.setTenantId(tenantId);
-
-			String vnfCreated = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:vnfCreated/text()");
-			rollback.setVnfCreated("true".equals(vnfCreated));
-
-			String rollbackVnfId = xpathTool.evaluate(
-				"/tns:createVnfNotification/tns:rollback/tns:vnfId/text()");
-			rollback.setVnfId(rollbackVnfId);
-
-			createVnfNotification.setRollback(rollback);
-
-		} catch (Exception e) {
-			System.out.println("Failed to unmarshal VNF callback content:");
-			System.out.println(content);
-			return false;
-		}
-
-		VnfAdapterNotifyServiceImpl notifyService = new VnfAdapterNotifyServiceImpl();
-		notifyService.setProcessEngineServices4junit(processEngineRule);
-
-		notifyService.createVnfNotification(
-			messageId,
-			createVnfNotification.isCompleted(),
-			createVnfNotification.getException(),
-			createVnfNotification.getErrorMessage(),
-			createVnfNotification.getVnfId(),
-			createVnfNotification.getOutputs(),
-			createVnfNotification.getRollback());
-
-		return true;
-	}
-
-	/**
-	 * Injects a Delete VNF adapter callback request. The specified callback data
-	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with
-	 * the actual message ID.  It may also contain the placeholder string
-	 * ((REQUEST-ID)) which is replaced request ID of the original MSO request.
-	 * @param content the content of the callback
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the callback could be injected, false otherwise
-	 * @throws JAXBException if the content does not adhere to the schema
-	 */
-	protected boolean injectDeleteVNFCallback(String content, long timeout) {
-
-		String messageId = (String) getProcessVariable("vnfAdapterDeleteV1",
-			"VNFDEL_uuid", timeout);
-
-		if (messageId == null) {
-			return false;
-		}
-
-		content = content.replace("((MESSAGE-ID))", messageId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{MESSAGE-ID}}", messageId);
-
-		System.out.println("Injecting VNF adapter delete callback");
-
-		// Is it possible to unmarshal this with JAXB?  I couldn't.
-
-		DeleteVnfNotification deleteVnfNotification = new DeleteVnfNotification();
-		XPathTool xpathTool = new VnfNotifyXPathTool();
-		xpathTool.setXML(content);
-
-		try {
-			String completed = xpathTool.evaluate(
-				"/tns:deleteVnfNotification/tns:completed/text()");
-			deleteVnfNotification.setCompleted("true".equals(completed));
-			// if notification failure, set the exception and error message
-			if (deleteVnfNotification.isCompleted() == false) {
-				deleteVnfNotification.setException(MsoExceptionCategory.INTERNAL);
-				deleteVnfNotification.setErrorMessage(xpathTool.evaluate(
-						"/tns:deleteVnfNotification/tns:errorMessage/text()")) ;
-			}
-
-		} catch (Exception e) {
-			System.out.println("Failed to unmarshal VNF Delete callback content:");
-			System.out.println(content);
-			return false;
-		}
-
-		VnfAdapterNotifyServiceImpl notifyService = new VnfAdapterNotifyServiceImpl();
-		notifyService.setProcessEngineServices4junit(processEngineRule);
-
-		notifyService.deleteVnfNotification(
-			messageId,
-			deleteVnfNotification.isCompleted(),
-			deleteVnfNotification.getException(),
-			deleteVnfNotification.getErrorMessage());
-
-		return true;
-	}
-
-	/**
-	 * Injects a Update VNF adapter callback request. The specified callback data
-	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with
-	 * the actual message ID.  It may also contain the placeholder string
-	 * ((REQUEST-ID)) which is replaced request ID of the original MSO request.
-	 * @param content the content of the callback
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the callback could be injected, false otherwise
-	 * @throws JAXBException if the content does not adhere to the schema
-	 */
-	protected boolean injectUpdateVNFCallback(String content, long timeout) {
-
-		String messageId = (String) getProcessVariable("vnfAdapterUpdate",
-			"VNFU_messageId", timeout);
-
-		if (messageId == null) {
-			return false;
-		}
-
-		content = content.replace("((MESSAGE-ID))", messageId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{MESSAGE-ID}}", messageId);
-
-		content = content.replace("((REQUEST-ID))", msoRequestId);
-		// Deprecated usage.  All test code should switch to the (( ... )) syntax.
-		content = content.replace("{{REQUEST-ID}}", msoRequestId);
-
-		System.out.println("Injecting VNF adapter callback");
-
-		// Is it possible to unmarshal this with JAXB?  I couldn't.
-
-		UpdateVnfNotification updateVnfNotification = new UpdateVnfNotification();
-		XPathTool xpathTool = new VnfNotifyXPathTool();
-		xpathTool.setXML(content);
-
-		try {
-			String completed = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:completed/text()");
-			updateVnfNotification.setCompleted("true".equals(completed));
-
-			NodeList entries = (NodeList) xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:outputs/tns:entry",
-				XPathConstants.NODESET);
-
-			UpdateVnfNotificationOutputs outputs = new UpdateVnfNotificationOutputs();
-
-			for (int i = 0; i < entries.getLength(); i++) {
-				Node node = entries.item(i);
-
-				if (node.getNodeType() == Node.ELEMENT_NODE) {
-					Element entry = (Element) node;
-					String key = entry.getElementsByTagNameNS("*", "key").item(0).getTextContent();
-					String value = entry.getElementsByTagNameNS("*", "value").item(0).getTextContent();
-					outputs.add(key, value);
-				}
-			}
-
-			updateVnfNotification.setOutputs(outputs);
-
-			VnfRollback rollback = new VnfRollback();
-
-			String cloudSiteId = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:cloudSiteId/text()");
-			rollback.setCloudSiteId(cloudSiteId);
-
-			String requestId = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:msoRequest/tns:requestId/text()");
-			String serviceInstanceId = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:msoRequest/tns:serviceInstanceId/text()");
-
-			if (requestId != null || serviceInstanceId != null) {
-				MsoRequest msoRequest = new MsoRequest();
-				msoRequest.setRequestId(requestId);
-				msoRequest.setServiceInstanceId(serviceInstanceId);
-				rollback.setMsoRequest(msoRequest);
-			}
-
-			String tenantCreated = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:tenantCreated/text()");
-			rollback.setTenantCreated("true".equals(tenantCreated));
-
-			String tenantId = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:tenantId/text()");
-			rollback.setTenantId(tenantId);
-
-			String vnfCreated = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:vnfCreated/text()");
-			rollback.setVnfCreated("true".equals(vnfCreated));
-
-			String rollbackVnfId = xpathTool.evaluate(
-				"/tns:updateVnfNotification/tns:rollback/tns:vnfId/text()");
-			rollback.setVnfId(rollbackVnfId);
-
-			updateVnfNotification.setRollback(rollback);
-
-		} catch (Exception e) {
-			System.out.println("Failed to unmarshal VNF callback content:");
-			System.out.println(content);
-			return false;
-		}
-
-		VnfAdapterNotifyServiceImpl notifyService = new VnfAdapterNotifyServiceImpl();
-		notifyService.setProcessEngineServices4junit(processEngineRule);
-
-		notifyService.updateVnfNotification(
-			messageId,
-			updateVnfNotification.isCompleted(),
-			updateVnfNotification.getException(),
-			updateVnfNotification.getErrorMessage(),
-			updateVnfNotification.getOutputs(),
-			updateVnfNotification.getRollback());
-
-		return true;
-	}
-
-	/**
-	 * Injects a workflow message. The specified callback data may contain the
-	 * placeholder string ((CORRELATOR)) which is replaced with the actual
-	 * correlator value.
-	 * @param content the message type
-	 * @param content the message content
-	 * @param timeout the timeout in milliseconds
-	 * @return true if the event could be injected, false otherwise
-	 */
-	protected boolean injectWorkflowMessage(String messageType, String content, long timeout) {
-		String correlator = (String) getProcessVariable("ReceiveWorkflowMessage",
-			messageType + "_CORRELATOR", timeout);
-
-		if (correlator == null) {
-			return false;
-		}
-
-		content = content.replace("((CORRELATOR))", correlator);
-
-		System.out.println("Injecting " + messageType + " message");
-		WorkflowMessageResource workflowMessageResource = new WorkflowMessageResource();
-		workflowMessageResource.setProcessEngineServices4junit(processEngineRule);
-		Response response = workflowMessageResource.deliver(messageType, correlator, content);
-		System.out.println("Workflow response to " + messageType + " message: " + response);
-		return true;
-	}
-
-	/**
-	 * Wait for the process to end.
-	 * @param businessKey the process business key
-	 * @param timeout the amount of time to wait, in milliseconds
-	 */
-	public void waitForProcessEnd(String businessKey, long timeout) {
-		System.out.println("Waiting " + timeout + "ms for process with business key " +
-			businessKey + " to end");
-
-		long now = System.currentTimeMillis() + timeout;
-		long endTime = now + timeout;
-
-		while (now <= endTime) {
-			if (isProcessEnded(businessKey)) {
-				System.out.println("Process with business key " + businessKey + " has ended");
-				return;
-			}
-
-			try {
-				Thread.sleep(200);
-			} catch (InterruptedException e) {
-				String msg = "Interrupted waiting for process with business key " +
-					businessKey + " to end";
-				System.out.println(msg);
-				fail(msg);
-			}
-
-			now = System.currentTimeMillis();
-		}
-
-		String msg = "Process with business key " + businessKey +
-			" did not end within " + timeout + "ms";
-		System.out.println(msg);
-		fail(msg);
-	}
-
-	/**
-	 * Verifies that the specified historic process variable has the specified value.
-	 * If the variable does not have the specified value, the test is failed.
-	 * @param businessKey the process business key
-	 * @param variable the variable name
-	 * @param value the expected variable value
-	 */
-	public void checkVariable(String businessKey, String variable, Object value) {
-		if (!isProcessEnded(businessKey)) {
-			fail("Cannot get historic variable " + variable + " because process with business key " +
-				businessKey + " has not ended");
-		}
-
-		Object variableValue = getVariableFromHistory(businessKey, variable);
-		assertEquals(value, variableValue);
-	}
-
-	/**
-	 * Checks to see if the specified process is ended.
-	 * @param businessKey the process business Key
-	 * @return true if the process is ended
-	 */
-	protected boolean isProcessEnded(String businessKey) {
-		HistoricProcessInstance processInstance = processEngineRule.getHistoryService()
-			.createHistoricProcessInstanceQuery().processInstanceBusinessKey(businessKey).singleResult();
-		return processInstance != null && processInstance.getEndTime() != null;
-	}
-
-	/**
-	 * Gets a variable value from a historical process instance.
-	 * @param businessKey the process business key
-	 * @param variableName the variable name
-	 * @return the variable value, or null if the variable could not be
-	 * obtained
-	 */
-	public Object getVariableFromHistory(String businessKey, String variableName) {
-		try {
-			HistoricProcessInstance processInstance = processEngineRule.getHistoryService()
-				.createHistoricProcessInstanceQuery().processInstanceBusinessKey(businessKey).singleResult();
-
-			if (processInstance == null) {
-				return null;
-			}
-
-			HistoricVariableInstance v = processEngineRule.getHistoryService()
-				.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId())
-				.variableName(variableName).singleResult();
-			return v == null ? null : v.getValue();
-		} catch (Exception e) {
-			System.out.println("Error retrieving variable " + variableName +
-				" from historical process with business key " + businessKey + ": " + e);
-			return null;
-		}
-	}
-
-	/**
-	 * Gets the value of a subflow variable from the specified subflow's
-	 * historical process instance.
-	 *
-	 * @param subflowName - the name of the subflow that contains the variable
-	 * @param variableName the variable name
-	 *
-	 * @return the variable value, or null if the variable could not be obtained
-	 *
-	 */
-	protected Object getVariableFromSubflowHistory(String subflowName, String variableName) {
-		try {
-			List<HistoricProcessInstance> processInstanceList = processEngineRule.getHistoryService()
-					.createHistoricProcessInstanceQuery().processDefinitionName(subflowName).list();
-
-			Collections.sort(processInstanceList, new Comparator<HistoricProcessInstance>() {
-			    public int compare(HistoricProcessInstance m1, HistoricProcessInstance m2) {
-			        return m1.getStartTime().compareTo(m2.getStartTime());
-			    }
-			});
-
-			HistoricProcessInstance processInstance = processInstanceList.get(0);
-
-			if (processInstanceList == null) {
-				return null;
-			}
-
-			HistoricVariableInstance v = processEngineRule.getHistoryService()
-				.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId())
-				.variableName(variableName).singleResult();
-			return v == null ? null : v.getValue();
-		} catch (Exception e) {
-			System.out.println("Error retrieving variable " + variableName +
-					" from sub flow: " + subflowName + ", Exception is: " + e);
-			return null;
-		}
-	}
-
-	/**
-	 * Gets the value of a subflow variable from the subflow's
-	 * historical process x instance.
-	 *
-	 * @param subflowName - the name of the subflow that contains the variable
-	 * @param variableName the variable name
-	 * @param subflowInstanceIndex - the instance of the subflow (use when same subflow is called more than once from mainflow)
-	 *
-	 * @return the variable value, or null if the variable could not be obtained
-	 */
-	protected Object getVariableFromSubflowHistory(int subflowInstanceIndex, String subflowName, String variableName) {
-		try {
-			List<HistoricProcessInstance> processInstanceList = processEngineRule.getHistoryService()
-					.createHistoricProcessInstanceQuery().processDefinitionName(subflowName).list();
-
-			Collections.sort(processInstanceList, new Comparator<HistoricProcessInstance>() {
-			    public int compare(HistoricProcessInstance m1, HistoricProcessInstance m2) {
-			        return m1.getStartTime().compareTo(m2.getStartTime());
-			    }
-			});
-
-			HistoricProcessInstance processInstance = processInstanceList.get(subflowInstanceIndex);
-
-			if (processInstanceList == null) {
-				return null;
-			}
-
-			HistoricVariableInstance v = processEngineRule.getHistoryService()
-				.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId())
-				.variableName(variableName).singleResult();
-			return v == null ? null : v.getValue();
-		} catch (Exception e) {
-			System.out.println("Error retrieving variable " + variableName +
-				" from " + subflowInstanceIndex + " instance index of sub flow: " + subflowName + ", Exception is: " + e);
-			return null;
-		}
-	}
-
-
-	/**
-	 * Extracts text from an XML element. This method is not namespace aware
-	 * (namespaces are ignored).  The first matching element is selected.
-	 * @param xml the XML document or fragment
-	 * @param tag the desired element, e.g. "<name>"
-	 * @return the element text, or null if the element was not found
-	 */
-	protected String getXMLTextElement(String xml, String tag) {
-		xml = removeXMLNamespaces(xml);
-
-		if (!tag.startsWith("<")) {
-			tag = "<" + tag + ">";
-		}
-
-		int start = xml.indexOf(tag);
-
-		if (start == -1) {
-			return null;
-		}
-
-		int end = xml.indexOf('<', start + tag.length());
-
-		if (end == -1) {
-			return null;
-		}
-
-		return xml.substring(start + tag.length(), end);
-	}
-
-	/**
-	 * Removes namespace definitions and prefixes from XML, if any.
-	 */
-	private String removeXMLNamespaces(String xml) {
-		// remove xmlns declaration
-		xml = xml.replaceAll("xmlns.*?(\"|\').*?(\"|\')", "");
-
-		// remove opening tag prefix
-		xml = xml.replaceAll("(<)(\\w+:)(.*?>)", "$1$3");
-
-		// remove closing tags prefix
-		xml = xml.replaceAll("(</)(\\w+:)(.*?>)", "$1$3");
-
-		// remove extra spaces left when xmlns declarations are removed
-		xml = xml.replaceAll("\\s+>", ">");
-
-		return xml;
-	}
-
-	/**
-	 * Asserts that two XML documents are semantically equivalent.  Differences
-	 * in whitespace or in namespace usage do not affect the comparison.
-	 * @param expected the expected XML
-	 * @param actual the XML to test
-	 * @throws SAXException
-	 * @throws IOException
-	 */
-    public static void assertXMLEquals(String expected, String actual)
-    		throws SAXException, IOException {
-    	XMLUnit.setIgnoreWhitespace(true);
-    	XMLUnit.setIgnoreAttributeOrder(true);
-    	DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(expected, actual));
-    	List<?> allDifferences = diff.getAllDifferences();
-    	assertEquals("Differences found: " + diff.toString(), 0, allDifferences.size());
-    }
-
-	/**
-	 * A test implementation of AsynchronousResponse.
-	 */
-	public class TestAsyncResponse implements AsynchronousResponse {
-		Response response = null;
-
-		/**
-		 * {@inheritDoc}
-		 */
-		@Override
-		public synchronized void setResponse(Response response) {
-			this.response = response;
-		}
-
-		/**
-		 * Gets the response.
-		 * @return the response, or null if none has been produced yet
-		 */
-		public synchronized Response getResponse() {
-			return response;
-		}
-	}
-
-	/**
-	 * An object that contains callback data for a "program".
-	 */
-	public class CallbackSet {
-		private final Map<String, String> map = new HashMap<String, String>();
-
-		/**
-		 * Add callback data to the set.
-		 * @param action the action with which the data is associated
-		 * @param content the callback data
-		 */
-		public void put(String action, String content) {
-			map.put(action, content);
-		}
-
-		/**
-		 * Retrieve callback data from the set.
-		 * @param action the action with which the data is associated
-		 * @return the callback data, or null if there is none for the specified operation
-		 */
-		public String get(String action) {
-			return map.get(action);
-		}
-	}
-
-	/**
-	 * A tool for evaluating XPath expressions.
-	 */
-	protected class XPathTool {
-		private final DocumentBuilderFactory factory;
-		private final SimpleNamespaceContext context = new SimpleNamespaceContext();
-		private final XPath xpath = XPathFactory.newInstance().newXPath();
-		private String xml = null;
-		private Document doc = null;
-
-		/**
-		 * Constructor.
-		 */
-		public XPathTool() {
-			factory = DocumentBuilderFactory.newInstance();
-			factory.setNamespaceAware(true);
-			xpath.setNamespaceContext(context);
-		}
-
-		/**
-		 * Adds a namespace.
-		 * @param prefix the namespace prefix
-		 * @param uri the namespace uri
-		 */
-		public synchronized void addNamespace(String prefix, String uri) {
-			context.add(prefix, uri);
-		}
-
-		/**
-		 * Sets the XML content to be operated on.
-		 * @param xml the XML content
-		 */
-		public synchronized void setXML(String xml) {
-			this.xml = xml;
-			this.doc = null;
-		}
-
-		/**
-		 * Returns the document object.
-		 * @return the document object, or null if XML has not been set
-		 * @throws SAXException
-		 * @throws IOException
-		 * @throws ParserConfigurationException
-		 */
-		public synchronized Document getDocument()
-				throws ParserConfigurationException, IOException, SAXException {
-			if (xml == null) {
-				return null;
-			}
-
-			buildDocument();
-			return doc;
-		}
-
-		/**
-		 * Evaluates the specified XPath expression and returns a string result.
-		 * This method throws exceptions on error.
-		 * @param expression the expression
-		 * @return the result object
-		 * @throws ParserConfigurationException
-		 * @throws IOException
-		 * @throws SAXException
-		 * @throws XPathExpressionException on error
-		 */
-		public synchronized String evaluate(String expression)
-				throws ParserConfigurationException, SAXException,
-				IOException, XPathExpressionException {
-			return (String) evaluate(expression, XPathConstants.STRING);
-		}
-
-		/**
-		 * Evaluates the specified XPath expression.
-		 * This method throws exceptions on error.
-		 * @param expression the expression
-		 * @param returnType the return type
-		 * @return the result object
-		 * @throws ParserConfigurationException
-		 * @throws IOException
-		 * @throws SAXException
-		 * @throws XPathExpressionException on error
-		 */
-		public synchronized Object evaluate(String expression, QName returnType)
-				throws ParserConfigurationException, SAXException,
-				IOException, XPathExpressionException {
-
-			buildDocument();
-			XPathExpression expr = xpath.compile(expression);
-			return expr.evaluate(doc, returnType);
-		}
-
-		/**
-		 * Private helper method that builds the document object.
-		 * Assumes the calling method is synchronized.
-		 * @throws ParserConfigurationException
-		 * @throws IOException
-		 * @throws SAXException
-		 */
-		private void buildDocument() throws ParserConfigurationException,
-				IOException, SAXException {
-			if (doc == null) {
-				if (xml == null) {
-					throw new IOException("XML input is null");
-				}
-
-				DocumentBuilder builder = factory.newDocumentBuilder();
-				InputSource source = new InputSource(new StringReader(xml));
-				doc = builder.parse(source);
-			}
-		}
-	}
-
-	/**
-	 * A NamespaceContext class based on a Map.
-	 */
-	private class SimpleNamespaceContext implements NamespaceContext {
-		private Map<String, String> prefixMap = new HashMap<String, String>();
-		private Map<String, String> uriMap = new HashMap<String, String>();
-
-		public synchronized void add(String prefix, String uri) {
-			prefixMap.put(prefix, uri);
-			uriMap.put(uri, prefix);
-		}
-
-		@Override
-		public synchronized String getNamespaceURI(String prefix) {
-			return prefixMap.get(prefix);
-		}
-
-		@Override
-		public Iterator<String> getPrefixes(String uri) {
-			List<String> list = new ArrayList<String>();
-			String prefix = uriMap.get(uri);
-			if (prefix != null) {
-				list.add(prefix);
-			}
-			return list.iterator();
-		}
-
-		@Override
-		public String getPrefix(String uri) {
-			return uriMap.get(uri);
-		}
-	}
-
-	/**
-	 * A VnfNotify XPathTool.
-	 */
-	protected class VnfNotifyXPathTool extends XPathTool {
-		public VnfNotifyXPathTool() {
-			addNamespace("tns", "http://org.openecomp.mso/vnfNotify");
-		}
-	}
-
-	/**
-	 * Helper class to make it easier to create this type.
-	 */
-	private static class CreateVnfNotificationOutputs
-			extends org.openecomp.mso.bpmn.common.adapter.vnf.CreateVnfNotification.Outputs {
-		public void add(String key, String value) {
-			Entry entry = new Entry();
-			entry.setKey(key);
-			entry.setValue(value);
-			getEntry().add(entry);
-		}
-	}
-
-	/**
-	 * Helper class to make it easier to create this type.
-	 */
-	private static class UpdateVnfNotificationOutputs
-			extends org.openecomp.mso.bpmn.common.adapter.vnf.UpdateVnfNotification.Outputs {
-		public void add(String key, String value) {
-			Entry entry = new Entry();
-			entry.setKey(key);
-			entry.setValue(value);
-			getEntry().add(entry);
-		}
-	}
-}
+/*- 

+ * ============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.common;

+

+import static org.junit.Assert.assertEquals;

+import static org.junit.Assert.fail;

+

+import java.io.IOException;

+import java.io.StringReader;

+import java.lang.management.ManagementFactory;

+import java.lang.management.RuntimeMXBean;

+import java.lang.reflect.Field;

+import java.lang.reflect.Modifier;

+import java.util.ArrayList;

+import java.util.Collections;

+import java.util.Comparator;

+import java.util.HashMap;

+import java.util.Iterator;

+import java.util.List;

+import java.util.Map;

+import java.util.UUID;

+

+import javax.ws.rs.core.Response;

+import javax.xml.bind.JAXBException;

+import javax.xml.namespace.NamespaceContext;

+import javax.xml.namespace.QName;

+import javax.xml.parsers.DocumentBuilder;

+import javax.xml.parsers.DocumentBuilderFactory;

+import javax.xml.parsers.ParserConfigurationException;

+import javax.xml.xpath.XPath;

+import javax.xml.xpath.XPathConstants;

+import javax.xml.xpath.XPathExpression;

+import javax.xml.xpath.XPathExpressionException;

+import javax.xml.xpath.XPathFactory;

+

+import org.camunda.bpm.engine.RuntimeService;

+import org.camunda.bpm.engine.history.HistoricProcessInstance;

+import org.camunda.bpm.engine.history.HistoricVariableInstance;

+import org.camunda.bpm.engine.runtime.ProcessInstance;

+import org.camunda.bpm.engine.test.ProcessEngineRule;

+import org.camunda.bpm.engine.variable.impl.VariableMapImpl;

+import org.custommonkey.xmlunit.DetailedDiff;

+import org.custommonkey.xmlunit.XMLUnit;

+import org.jboss.resteasy.spi.AsynchronousResponse;

+import org.junit.Before;

+import org.junit.Rule;

+import org.openecomp.mso.bpmn.common.adapter.sdnc.CallbackHeader;

+import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterCallbackRequest;

+import org.openecomp.mso.bpmn.common.adapter.sdnc.SDNCAdapterResponse;

+import org.openecomp.mso.bpmn.common.adapter.vnf.CreateVnfNotification;

+import org.openecomp.mso.bpmn.common.adapter.vnf.DeleteVnfNotification;

+import org.openecomp.mso.bpmn.common.adapter.vnf.MsoExceptionCategory;

+import org.openecomp.mso.bpmn.common.adapter.vnf.MsoRequest;

+import org.openecomp.mso.bpmn.common.adapter.vnf.UpdateVnfNotification;

+import org.openecomp.mso.bpmn.common.adapter.vnf.VnfRollback;

+import org.openecomp.mso.bpmn.common.workflow.service.SDNCAdapterCallbackServiceImpl;

+import org.openecomp.mso.bpmn.common.workflow.service.VnfAdapterNotifyServiceImpl;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowAsyncCommonResource;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowMessageResource;

+import org.openecomp.mso.bpmn.common.workflow.service.WorkflowResponse;

+import org.openecomp.mso.bpmn.core.CamundaDBSetup;

+import org.openecomp.mso.bpmn.core.PropertyConfigurationSetup;

+import org.w3c.dom.Document;

+import org.w3c.dom.Element;

+import org.w3c.dom.Node;

+import org.w3c.dom.NodeList;

+import org.xml.sax.InputSource;

+import org.xml.sax.SAXException;

+

+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;

+import com.github.tomakehurst.wiremock.extension.ResponseTransformer;

+import com.github.tomakehurst.wiremock.junit.WireMockRule;

+

+

+

+/**

+ * A base class for Workflow tests.

+ * <p>

+ * WireMock response transformers may be specified by declaring public

+ * static fields with the @WorkflowTestTransformer annotation. For example:

+ * <pre>

+ *     @WorkflowTestTransformer

+ *     public static final ResponseTransformer sdncAdapterMockTransformer =

+ *         new SDNCAdapterMockTransformer();

+ * </pre>

+ */

+public class WorkflowTest {

+	@Rule

+	public final ProcessEngineRule processEngineRule = new ProcessEngineRule();

+

+	@Rule

+	public final WireMockRule wireMockRule;

+

+	/**

+	 * Constructor.

+	 */

+	public WorkflowTest() throws RuntimeException {

+		// Process WorkflowTestTransformer annotations

+		List<ResponseTransformer> transformerList = new ArrayList<ResponseTransformer>();

+

+		for (Field field : getClass().getFields()) {

+			WorkflowTestTransformer annotation = (WorkflowTestTransformer)

+				field.getAnnotation(WorkflowTestTransformer.class);

+

+			if (annotation == null) {

+				continue;

+			}

+

+			if (!Modifier.isStatic(field.getModifiers())) {

+				throw new RuntimeException(field.getDeclaringClass().getName()

+					+ "#" + field.getName() + " has a @WorkflowTestTransformer "

+					+ " annotation but it is not declared static");

+			}

+

+			ResponseTransformer transformer;

+

+			try {

+				transformer = (ResponseTransformer) field.get(null);

+			} catch (IllegalAccessException e) {

+				throw new RuntimeException(field.getDeclaringClass().getName()

+					+ "#" + field.getName() + " is not accessible", e);

+			} catch (ClassCastException e) {

+				throw new RuntimeException(field.getDeclaringClass().getName()

+					+ "#" + field.getName() + " is not a ResponseTransformer", e);

+			}

+

+			if (transformer == null) {

+				continue;

+			}

+

+			transformerList.add(transformer);

+		}

+

+		ResponseTransformer[] transformerArray =

+			transformerList.toArray(new ResponseTransformer[transformerList.size()]);

+

+		wireMockRule = new WireMockRule(WireMockConfiguration.wireMockConfig()

+			.port(28090).extensions(transformerArray));

+	}

+

+	@Before

+	public void testSetup() throws Exception {

+		CamundaDBSetup.configure();

+		PropertyConfigurationSetup.init();

+	}

+

+	/**

+	 * The current request ID.  Normally set when an "invoke" method is called.

+	 */

+	protected volatile String msoRequestId = null;

+

+	/**

+	 * The current service instance ID.  Normally set when an "invoke" method

+	 * is called.

+	 */

+	protected volatile String msoServiceInstanceId = null;

+

+	/**

+	 * Logs a test start method.

+	 */

+	protected void logStart() {

+		StackTraceElement[] st = Thread.currentThread().getStackTrace();

+		String method = st[2].getMethodName();

+		System.out.println("STARTED TEST: " + method);

+	}

+

+	/**

+	 * Logs a test end method.

+	 */

+	protected void logEnd() {

+		StackTraceElement[] st = Thread.currentThread().getStackTrace();

+		String method = st[2].getMethodName();

+		System.out.println("ENDED TEST: " + method);

+	}

+

+	/**

+	 * Invokes a subprocess.

+	 * @param processKey the process key

+	 * @param businessKey a unique key that will identify the process instance

+	 * @param injectedVariables variables to inject into the process

+	 */

+	protected void invokeSubProcess(String processKey, String businessKey,

+			Map<String, Object> injectedVariables) {

+		RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();

+		List<String> arguments = runtimeMxBean.getInputArguments();

+		System.out.println("JVM args = " + arguments);

+

+		msoRequestId = (String) injectedVariables.get("mso-request-id");

+

+		if (msoRequestId == null) {

+			String msg = "mso-request-id variable was not provided";

+			System.out.println(msg);

+			fail(msg);

+		}

+

+		// Note: some scenarios don't have a service-instance-id, may be null

+		msoServiceInstanceId = (String) injectedVariables.get("mso-service-instance-id");

+

+		RuntimeService runtimeService = processEngineRule.getRuntimeService();

+		runtimeService.startProcessInstanceByKey(processKey, businessKey, injectedVariables);

+	}

+

+	/**

+	 * Invokes an asynchronous process.

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param processKey the process key

+	 * @param schemaVersion the API schema version, e.g. "v1"

+	 * @param businessKey a unique key that will identify the process instance

+	 * @param request the request

+	 * @return a TestAsyncResponse object associated with the test

+	 */

+	protected TestAsyncResponse invokeAsyncProcess(String processKey,

+			String schemaVersion, String businessKey, String request) {

+		return invokeAsyncProcess(processKey, schemaVersion, businessKey, request, null);

+	}

+

+	/**

+	 * Invokes an asynchronous process.

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param processKey the process key

+	 * @param schemaVersion the API schema version, e.g. "v1"

+	 * @param businessKey a unique key that will identify the process instance

+	 * @param request the request

+	 * @param injectedVariables optional variables to inject into the process

+	 * @return a TestAsyncResponse object associated with the test

+	 */

+	public TestAsyncResponse invokeAsyncProcess(String processKey,

+			String schemaVersion, String businessKey, String request,

+			Map<String, Object> injectedVariables) {

+

+		RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();

+		List<String> arguments = runtimeMxBean.getInputArguments();

+		System.out.println("JVM args = " + arguments);

+

+		Map<String, Object> variables = createVariables(schemaVersion, businessKey,

+			request, injectedVariables, false);

+		VariableMapImpl variableMapImpl = createVariableMapImpl(variables);

+

+		System.out.println("Sending " + request + " to " + processKey + " process");

+		WorkflowAsyncCommonResource workflowResource = new WorkflowAsyncCommonResource();

+		workflowResource.setProcessEngineServices4junit(processEngineRule);

+

+		TestAsyncResponse asyncResponse = new TestAsyncResponse();

+		workflowResource.startProcessInstanceByKey(asyncResponse, processKey, variableMapImpl);

+		return asyncResponse;

+	}

+

+	/**

+	 * Invokes an asynchronous process.

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param processKey the process key

+	 * @param schemaVersion the API schema version, e.g. "v1"

+	 * @param businessKey a unique key that will identify the process instance

+	 * @param request the request

+	 * @param injectedVariables optional variables to inject into the process

+	 * @param serviceInstantiationModel indicates whether this method is being

+	 * invoked for a flow that is designed using the service instantiation model

+	 * @return a TestAsyncResponse object associated with the test

+	 */

+	protected TestAsyncResponse invokeAsyncProcess(String processKey,

+			String schemaVersion, String businessKey, String request,

+			Map<String, Object> injectedVariables, boolean serviceInstantiationModel) {

+

+		RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean();

+		List<String> arguments = runtimeMxBean.getInputArguments();

+		System.out.println("JVM args = " + arguments);

+

+		Map<String, Object> variables = createVariables(schemaVersion, businessKey,

+			request, injectedVariables, serviceInstantiationModel);

+		VariableMapImpl variableMapImpl = createVariableMapImpl(variables);

+

+		System.out.println("Sending " + request + " to " + processKey + " process");

+		WorkflowAsyncCommonResource workflowResource = new WorkflowAsyncCommonResource();

+		workflowResource.setProcessEngineServices4junit(processEngineRule);

+

+		TestAsyncResponse asyncResponse = new TestAsyncResponse();

+		workflowResource.startProcessInstanceByKey(asyncResponse, processKey, variableMapImpl);

+		return asyncResponse;

+	}

+

+	/**

+	 * Private helper method that creates a variable map for a request.

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param schemaVersion the API schema version, e.g. "v1"

+	 * @param businessKey a unique key that will identify the process instance

+	 * @param request the request

+	 * @param injectedVariables optional variables to inject into the process

+	 * @param serviceInstantiationModel indicates whether this method is being

+	 * invoked for a flow that is designed using the service instantiation model

+	 * @return a variable map

+	 */

+	private Map<String, Object> createVariables(String schemaVersion,

+			String businessKey, String request, Map<String, Object> injectedVariables,

+			boolean serviceInstantiationModel) {

+

+		Map<String, Object> variables = new HashMap<String, Object>();

+

+		// These variables may be overridded by injected variables.

+		variables.put("mso-service-request-timeout", "180");

+		variables.put("isDebugLogEnabled", "true");

+

+		// These variables may not be overridded by injected variables.

+		String[] notAllowed = new String[] {

+				"mso-schema-version",

+				"mso-business-key",

+				"bpmnRequest",

+				"mso-request-id",

+				"mso-service-instance-id"

+		};

+

+		if (injectedVariables != null) {

+			for (String key : injectedVariables.keySet()) {

+				for (String var : notAllowed) {

+					if (var.equals(key)) {

+						String msg = "Cannot specify " + var + " in injected variables";

+						System.out.println(msg);

+						fail(msg);

+					}

+				}

+

+				variables.put(key, injectedVariables.get(key));

+			}

+		}

+

+		variables.put("mso-schema-version", schemaVersion);

+		variables.put("mso-business-key", businessKey);

+		variables.put("bpmnRequest", request);

+

+		if (serviceInstantiationModel) {

+

+			/*

+			 * The request ID and the service instance ID are generated for flows

+			 * that follow the service instantiation model unless "requestId" and

+			 * "serviceInstanceId" are injected variables.

+			 */

+

+			try {

+				msoRequestId = (String) injectedVariables.get("requestId");

+				variables.put("mso-request-id", msoRequestId);

+				msoServiceInstanceId = (String) injectedVariables.get("serviceInstanceId");

+				variables.put("mso-service-instance-id", msoServiceInstanceId);

+			}

+			catch(Exception e) {

+			}

+			if (msoRequestId == null || msoRequestId.trim().equals("")) {

+				System.out.println("No requestId element in injectedVariables");

+				variables.put("mso-request-id", UUID.randomUUID().toString());

+			}

+			if (msoServiceInstanceId == null || msoServiceInstanceId.trim().equals("")) {

+				System.out.println("No seviceInstanceId element in injectedVariables");

+				variables.put("mso-service-instance-id", UUID.randomUUID().toString());

+			}

+

+		} else {

+			msoRequestId = getXMLTextElement(request, "request-id");

+

+			if (msoRequestId == null) {

+				//check in injected variables

+				try {

+					msoRequestId = (String) injectedVariables.get("requestId");

+				}

+				catch(Exception e) {

+				}

+				if (msoRequestId == null || msoRequestId.trim().equals("")) {

+					String msg = "No request-id element in " + request;

+					System.out.println(msg);

+					fail(msg);

+				}

+			}

+

+			variables.put("mso-request-id", msoRequestId);

+

+			// Note: some request types don't have a service-instance-id

+			msoServiceInstanceId = getXMLTextElement(request, "service-instance-id");

+

+			if (msoServiceInstanceId != null) {

+				variables.put("mso-service-instance-id", msoServiceInstanceId);

+			}

+		}

+

+		return variables;

+	}

+

+	/**

+	 * Private helper method that creates a camunda VariableMapImpl from a simple

+	 * variable map.

+	 * @param variables the simple variable map

+	 * @return a VariableMap

+	 */

+	private VariableMapImpl createVariableMapImpl(Map<String, Object> variables) {

+		Map<String, Object> wrappedVariables = new HashMap<String, Object>();

+

+		for (String key : variables.keySet()) {

+			Object value = variables.get(key);

+			wrappedVariables.put(key, wrapVariableValue(value));

+		}

+

+		VariableMapImpl variableMapImpl = new VariableMapImpl();

+		variableMapImpl.put("variables", wrappedVariables);

+		return variableMapImpl;

+	}

+

+	/**

+	 * Private helper method that wraps a variable value for inclusion in a

+	 * camunda VariableMapImpl.

+	 * @param value the variable value

+	 * @return the wrapped variable

+	 */

+	private Map<String, Object> wrapVariableValue(Object value) {

+		HashMap<String, Object> valueMap = new HashMap<String, Object>();

+		valueMap.put("value", value);

+		return valueMap;

+	}

+

+	/**

+	 * Receives a response from an asynchronous process.

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param businessKey the process business key

+	 * @param asyncResponse the TestAsyncResponse object associated with the test

+	 * @param timeout the timeout in milliseconds

+	 * @return the WorkflowResponse

+	 */

+	public WorkflowResponse receiveResponse(String businessKey,

+			TestAsyncResponse asyncResponse, long timeout) {

+		System.out.println("Waiting " + timeout + "ms for process with business key " + businessKey

+			+ " to send a response");

+

+		long now = System.currentTimeMillis() + timeout;

+		long endTime = now + timeout;

+

+		while (now <= endTime) {

+			Response response = asyncResponse.getResponse();

+

+			if (response != null) {

+				System.out.println("Received a response from process with business key " + businessKey);

+

+				Object entity = response.getEntity();

+

+				if (!(entity instanceof WorkflowResponse)) {

+					String msg = "Response entity is " +

+						(entity == null ? "null" : entity.getClass().getName()) +

+						", expected WorkflowResponse";

+					System.out.println(msg);

+					fail(msg);

+					return null; // unreachable

+				}

+

+				return (WorkflowResponse) entity;

+			}

+

+			try {

+				Thread.sleep(200);

+			} catch (InterruptedException e) {

+				String msg = "Interrupted waiting for a response from process with business key " +

+					businessKey;

+				System.out.println(msg);

+				fail(msg);

+				return null; // unreachable

+			}

+

+			now = System.currentTimeMillis();

+		}

+

+		String msg = "No response received from process with business key " + businessKey +

+			" within " + timeout + "ms";

+		System.out.println(msg);

+		fail("Process with business key " + businessKey + " did not end within 10000ms");

+		return null; // unreachable

+	}

+

+	/**

+	 * Runs a program to inject SDNC callback data into the test environment.

+	 * A program is essentially just a list of keys that identify callback data

+	 * to be injected, in sequence. An example program:

+	 * <pre>

+	 *     reserve, assign, delete:ERR

+	 * </pre>

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param callbacks an object containing callback data for the program

+	 * @param program the program to execute

+	 */

+	protected void injectSDNCRestCallbacks(CallbackSet callbacks, String program) {

+

+		String[] cmds = program.replaceAll("\\s+", "").split(",");

+

+		for (String cmd : cmds) {

+			String action = cmd;

+			String modifier = "STD";

+

+			if (cmd.contains(":")) {

+				String[] parts = cmd.split(":");

+				action = parts[0];

+				modifier = parts[1];

+			}

+

+			String content = null;

+

+			if ("STD".equals(modifier)) {

+				content = callbacks.get(action);

+

+				if (content == null) {

+					String msg = "No callback defined for '" + action + "' SDNC request";

+					System.out.println(msg);

+					fail(msg);

+				}

+			} else if ("ERR".equals(modifier)) {

+				content = "{\"SDNCServiceError\":{\"sdncRequestId\":\"((REQUEST-ID))\",\"responseCode\":\"500\",\"responseMessage\":\"SIMULATED ERROR FROM SDNC ADAPTER\",\"ackFinalIndicator\":\"Y\"}}";

+			} else {

+				String msg = "Invalid SDNC program modifier: '" + modifier + "'";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			if (!injectSDNCRestCallback(content, 10000)) {

+				fail("Failed to inject SDNC '" + action + "' callback");

+			}

+

+			try {

+				Thread.sleep(1000);

+			} catch (InterruptedException e) {

+				fail("Interrupted after injection of SDNC '" + action + "' callback");

+			}

+		}

+	}

+

+	/**

+	 * Runs a program to inject SDNC events into the test environment.

+	 * A program is essentially just a list of keys that identify event data

+	 * to be injected, in sequence. An example program:

+	 * <pre>

+	 *     event1, event2

+	 * </pre>

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * Defaults the Event Type to "SDNCAEvent" for backward compatibility.

+	 * @param callbacks an object containing event data for the program

+	 * @param program the program to execute

+	 */

+	protected void injectSDNCEvents(CallbackSet callbacks, String program) {

+		injectSDNCEvents(callbacks, program, "SDNCAEvent");

+	}

+

+	/**

+	 * Runs a program to inject SDNC events into the test environment.

+	 * A program is essentially just a list of keys that identify event data

+	 * to be injected, in sequence. An example program:

+	 * <pre>

+	 *     event1, event2

+	 * </pre>

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param callbacks an object containing event data for the program

+	 * @param program the program to execute

+	 * @param eventType (i.e. "SDNCAEvent", "SNIROResponse", etc.)

+	 */

+	protected void injectSDNCEvents(CallbackSet callbacks, String program, String eventType) {

+

+		String[] cmds = program.replaceAll("\\s+", "").split(",");

+

+		for (String cmd : cmds) {

+			String action = cmd;

+			String modifier = "STD";

+

+			if (cmd.contains(":")) {

+				String[] parts = cmd.split(":");

+				action = parts[0];

+				modifier = parts[1];

+			}

+

+			String content = null;

+

+			if ("STD".equals(modifier)) {

+				content = callbacks.get(action);

+

+				if (content == null) {

+					String msg = "No SDNC event callback defined for '" + action + "'";

+					System.out.println(msg);

+					fail(msg);

+				}

+			} else {

+				String msg = "Invalid SDNC program modifier: '" + modifier + "'";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			if (!injectWorkflowMessage(eventType, content, 10000)) {

+				fail("Failed to inject SDNC '" + action + "' event");

+			}

+

+			try {

+				Thread.sleep(1000);

+			} catch (InterruptedException e) {

+				fail("Interrupted after injection of SDNC '" + action + "' event");

+			}

+		}

+	}

+

+	/**

+	 * Runs a program to inject SDNC callback data into the test environment.

+	 * A program is essentially just a list of keys that identify callback data

+	 * to be injected, in sequence. An example program:

+	 * <pre>

+	 *     reserve, assign, delete:ERR

+	 * </pre>

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param callbacks an object containing callback data for the program

+	 * @param program the program to execute

+	 */

+	public void injectSDNCCallbacks(CallbackSet callbacks, String program) {

+

+		String[] cmds = program.replaceAll("\\s+", "").split(",");

+

+		for (String cmd : cmds) {

+			String action = cmd;

+			String modifier = "STD";

+

+			if (cmd.contains(":")) {

+				String[] parts = cmd.split(":");

+				action = parts[0];

+				modifier = parts[1];

+			}

+

+			String content = null;

+			int respCode = 200;

+			String respMsg = "OK";

+

+			if ("STD".equals(modifier)) {

+				content = callbacks.get(action);

+

+				if (content == null) {

+					String msg = "No callback defined for '" + action + "' SDNC request";

+					System.out.println(msg);

+					fail(msg);

+				}

+

+				respCode = 200;

+				respMsg = "OK";

+			} else if ("ERR".equals(modifier)) {

+				content = "<svc-request-id>((REQUEST-ID))</svc-request-id><response-code>500</response-code><response-message>SIMULATED ERROR FROM SDNC ADAPTER</response-message>";

+				respCode = 500;

+				respMsg = "SERVER ERROR";

+			} else {

+				String msg = "Invalid SDNC program modifier: '" + modifier + "'";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			if (!injectSDNCCallback(respCode, respMsg, content, 10000)) {

+				fail("Failed to inject SDNC '" + action + "' callback");

+			}

+

+			try {

+				Thread.sleep(1000);

+			} catch (InterruptedException e) {

+				fail("Interrupted after injection of SDNC '" + action + "' callback");

+			}

+		}

+	}

+

+	/**

+	 * Runs a program to inject VNF adapter REST callback data into the test environment.

+	 * A program is essentially just a list of keys that identify callback data

+	 * to be injected, in sequence. An example program:

+	 * <pre>

+	 *     create, rollback

+	 * </pre>

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param callbacks an object containing callback data for the program

+	 * @param program the program to execute

+	 */

+	public void injectVNFRestCallbacks(CallbackSet callbacks, String program) {

+

+		String[] cmds = program.replaceAll("\\s+", "").split(",");

+

+		for (String cmd : cmds) {

+			String action = cmd;

+			String modifier = "STD";

+

+			if (cmd.contains(":")) {

+				String[] parts = cmd.split(":");

+				action = parts[0];

+				modifier = parts[1];

+			}

+

+			String content = null;

+

+			if ("STD".equals(modifier)) {

+				content = callbacks.get(action);

+

+				if (content == null) {

+					String msg = "No callback defined for '" + action + "' VNF REST request";

+					System.out.println(msg);

+					fail(msg);

+				}

+			} else if ("ERR".equals(modifier)) {

+				content = "SIMULATED ERROR FROM VNF ADAPTER";

+			} else {

+				String msg = "Invalid VNF REST program modifier: '" + modifier + "'";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			if (!injectVnfAdapterRestCallback(content, 10000)) {

+				fail("Failed to inject VNF REST '" + action + "' callback");

+			}

+

+			try {

+				Thread.sleep(1000);

+			} catch (InterruptedException e) {

+				fail("Interrupted after injection of VNF REST '" + action + "' callback");

+			}

+		}

+	}

+

+	/**

+	 * Runs a program to inject VNF callback data into the test environment.

+	 * A program is essentially just a list of keys that identify callback data

+	 * to be injected, in sequence. An example program:

+	 * <pre>

+	 *     createVnf, deleteVnf

+	 * </pre>

+	 * Errors are handled with junit assertions and will cause the test to fail.

+	 * @param callbacks an object containing callback data for the program

+	 * @param program the program to execute

+	 */

+	protected void injectVNFCallbacks(CallbackSet callbacks, String program) {

+

+		String[] cmds = program.replaceAll("\\s+", "").split(",");

+

+		for (String cmd : cmds) {

+			String action = cmd;

+			String modifier = "STD";

+

+			if (cmd.contains(":")) {

+				String[] parts = cmd.split(":");

+				action = parts[0];

+				modifier = parts[1];

+			}

+

+			String content = null;

+

+			if ("STD".equals(modifier)) {

+				content = callbacks.get(action);

+

+				if (content == null) {

+					String msg = "No callback defined for '" + action + "' VNF request";

+					System.out.println(msg);

+					fail(msg);

+				}

+

+			} else if ("ERR".equals(modifier)) {

+				String msg = "Currently unsupported VNF program modifier: '" + modifier + "'";

+				System.out.println(msg);

+				fail(msg);

+			} else {

+				String msg = "Invalid VNF program modifier: '" + modifier + "'";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			boolean injected = false;

+

+			if (content.contains("createVnfNotification")) {

+				injected = injectCreateVNFCallback(content, 10000);

+			} else if (content.contains("deleteVnfNotification")) {

+				injected = injectDeleteVNFCallback(content, 10000);

+			} else if (content.contains("updateVnfNotification")) {

+				injected = injectUpdateVNFCallback(content, 10000);

+			}

+

+			if (!injected) {

+				String msg = "Failed to inject VNF '" + action + "' callback";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			try {

+				Thread.sleep(1000);

+			} catch (InterruptedException e) {

+				fail("Interrupted after injection of VNF '" + action + "' callback");

+			}

+		}

+	}

+

+	/**

+	 * Waits for the number of running processes with the specified process

+	 * definition key to equal a particular count.

+	 * @param processKey the process definition key

+	 * @param count the desired count

+	 * @param timeout the timeout in milliseconds

+	 */

+	public void waitForRunningProcessCount(String processKey, int count, long timeout) {

+		System.out.println("Waiting " + timeout + "ms for there to be " + count + " "

+			+ processKey + " instances");

+

+		long now = System.currentTimeMillis() + timeout;

+		long endTime = now + timeout;

+		int last = -1;

+

+		while (now <= endTime) {

+			int actual = processEngineRule.getRuntimeService()

+				.createProcessInstanceQuery()

+				.processDefinitionKey(processKey)

+				.list().size();

+

+			if (actual != last) {

+				System.out.println("There are now " + actual + " "

+					+ processKey + " instances");

+				last = actual;

+			}

+

+			if (actual == count) {

+				return;

+			}

+

+			try {

+				Thread.sleep(200);

+			} catch (InterruptedException e) {

+				String msg = "Interrupted waiting for there to be " + count + " "

+					+ processKey + " instances";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			now = System.currentTimeMillis();

+		}

+

+		String msg = "Timed out waiting for there to be " + count + " "

+			+ processKey + " instances";

+		System.out.println(msg);

+		fail(msg);

+	}

+

+	/**

+	 * Waits for the specified process variable to be set.

+	 * @param processKey the process definition key

+	 * @param variable the variable name

+	 * @param timeout the timeout in milliseconds

+	 * @return the variable value, or null if it cannot be obtained

+	 *         in the specified time

+	 */

+	protected Object getProcessVariable(String processKey, String variable,

+			long timeout) {

+

+		System.out.println("Waiting " + timeout + "ms for "

+			+ processKey + "." + variable + " to be set");

+

+		long now = System.currentTimeMillis() + timeout;

+		long endTime = now + timeout;

+

+		ProcessInstance processInstance = null;

+		Object value = null;

+

+		while (value == null) {

+			if (now > endTime) {

+				if (processInstance == null) {

+					System.out.println("Timed out waiting for "

+						+ processKey + " to start");

+				} else {

+					System.out.println("Timed out waiting for "

+						+ processKey + "[" + processInstance.getId()

+						+ "]." + variable + " to be set");

+				}

+

+				return null;

+			}

+

+			if (processInstance == null) {

+				processInstance = processEngineRule.getRuntimeService()

+					.createProcessInstanceQuery()

+					.processDefinitionKey(processKey)

+					.singleResult();

+			}

+

+			if (processInstance != null) {

+				value = processEngineRule.getRuntimeService()

+					.getVariable(processInstance.getId(), variable);

+			}

+

+			try {

+				Thread.sleep(200);

+			} catch (InterruptedException e) {

+				System.out.println("Interrupted waiting for "

+					+ processKey + "." + variable + " to be set");

+				return null;

+			}

+

+			now = System.currentTimeMillis();

+		}

+

+		System.out.println(processKey + "["

+			+ processInstance.getId() + "]." + variable + "="

+			+ value);

+

+		return value;

+	}

+

+	/**

+	 * Injects a single SDNC adapter callback request. The specified callback data

+	 * may contain the placeholder string ((REQUEST-ID)) which is replaced with

+	 * the actual SDNC request ID. Note: this is not the requestId in the original

+	 * MSO request.

+	 * @param content the content of the callback

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the callback could be injected, false otherwise

+	 */

+	protected boolean injectSDNCRestCallback(String content, long timeout) {

+		String sdncRequestId = (String) getProcessVariable("SDNCAdapterRestV1",

+			"SDNCAResponse_CORRELATOR", timeout);

+

+		if (sdncRequestId == null) {

+			return false;

+		}

+

+		content = content.replace("((REQUEST-ID))", sdncRequestId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{REQUEST-ID}}", sdncRequestId);

+

+		System.out.println("Injecting SDNC adapter callback");

+		WorkflowMessageResource workflowMessageResource = new WorkflowMessageResource();

+		workflowMessageResource.setProcessEngineServices4junit(processEngineRule);

+		Response response = workflowMessageResource.deliver("SDNCAResponse", sdncRequestId, content);

+		System.out.println("Workflow response to SDNC adapter callback: " + response);

+		return true;

+	}

+

+	/**

+	 * Injects a single SDNC adapter callback request. The specified callback data

+	 * may contain the placeholder string ((REQUEST-ID)) which is replaced with

+	 * the actual SDNC request ID. Note: this is not the requestId in the original

+	 * MSO request.

+	 * @param content the content of the callback

+	 * @param respCode the response code (normally 200)

+	 * @param respMsg the response message (normally "OK")

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the callback could be injected, false otherwise

+	 */

+	protected boolean injectSDNCCallback(int respCode, String respMsg,

+			String content, long timeout) {

+

+		String sdncRequestId = (String) getProcessVariable("sdncAdapter",

+			"SDNCA_requestId", timeout);

+

+		if (sdncRequestId == null) {

+			return false;

+		}

+

+		content = content.replace("((REQUEST-ID))", sdncRequestId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{REQUEST-ID}}", sdncRequestId);

+

+		System.out.println("Injecting SDNC adapter callback");

+		CallbackHeader callbackHeader = new CallbackHeader();

+		callbackHeader.setRequestId(sdncRequestId);

+		callbackHeader.setResponseCode(String.valueOf(respCode));

+		callbackHeader.setResponseMessage(respMsg);

+		SDNCAdapterCallbackRequest sdncAdapterCallbackRequest = new SDNCAdapterCallbackRequest();

+		sdncAdapterCallbackRequest.setCallbackHeader(callbackHeader);

+		sdncAdapterCallbackRequest.setRequestData(content);

+		SDNCAdapterCallbackServiceImpl callbackService = new SDNCAdapterCallbackServiceImpl();

+		callbackService.setProcessEngineServices4junit(processEngineRule);

+		SDNCAdapterResponse sdncAdapterResponse = callbackService.sdncAdapterCallback(sdncAdapterCallbackRequest);

+		System.out.println("Workflow response to SDNC adapter callback: " + sdncAdapterResponse);

+

+		return true;

+	}

+

+	/**

+	 * Injects a single VNF adapter callback request. The specified callback data

+	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with

+	 * the actual message ID. Note: this is not the requestId in the original

+	 * MSO request.

+	 * @param content the content of the callback

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the callback could be injected, false otherwise

+	 */

+	protected boolean injectVnfAdapterRestCallback(String content, long timeout) {

+		String messageId = (String) getProcessVariable("vnfAdapterRestV1",

+			"VNFAResponse_CORRELATOR", timeout);

+

+		if (messageId == null) {

+			return false;

+		}

+

+		content = content.replace("((MESSAGE-ID))", messageId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{MESSAGE-ID}}", messageId);

+

+		System.out.println("Injecting VNF adapter callback");

+		WorkflowMessageResource workflowMessageResource = new WorkflowMessageResource();

+		workflowMessageResource.setProcessEngineServices4junit(processEngineRule);

+		Response response = workflowMessageResource.deliver("VNFAResponse", messageId, content);

+		System.out.println("Workflow response to VNF adapter callback: " + response);

+		return true;

+	}

+

+	/**

+	 * Injects a Create VNF adapter callback request. The specified callback data

+	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with

+	 * the actual message ID.  It may also contain the placeholder string

+	 * ((REQUEST-ID)) which is replaced request ID of the original MSO request.

+	 * @param content the content of the callback

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the callback could be injected, false otherwise

+	 * @throws JAXBException if the content does not adhere to the schema

+	 */

+	protected boolean injectCreateVNFCallback(String content, long timeout) {

+

+		String messageId = (String) getProcessVariable("vnfAdapterCreateV1",

+			"VNFC_messageId", timeout);

+

+		if (messageId == null) {

+			return false;

+		}

+

+		content = content.replace("((MESSAGE-ID))", messageId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{MESSAGE-ID}}", messageId);

+

+		if(content.contains("((REQUEST-ID))")){

+			content = content.replace("((REQUEST-ID))", msoRequestId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+			content = content.replace("{{REQUEST-ID}}", msoRequestId);

+		}

+

+		System.out.println("Injecting VNF adapter callback");

+

+		// Is it possible to unmarshal this with JAXB?  I couldn't.

+

+		CreateVnfNotification createVnfNotification = new CreateVnfNotification();

+		XPathTool xpathTool = new VnfNotifyXPathTool();

+		xpathTool.setXML(content);

+

+		try {

+			String completed = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:completed/text()");

+			createVnfNotification.setCompleted("true".equals(completed));

+

+			String vnfId = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:vnfId/text()");

+			createVnfNotification.setVnfId(vnfId);

+

+			NodeList entries = (NodeList) xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:outputs/tns:entry",

+				XPathConstants.NODESET);

+

+			CreateVnfNotificationOutputs outputs = new CreateVnfNotificationOutputs();

+

+			for (int i = 0; i < entries.getLength(); i++) {

+				Node node = entries.item(i);

+

+				if (node.getNodeType() == Node.ELEMENT_NODE) {

+					Element entry = (Element) node;

+					String key = entry.getElementsByTagNameNS("*", "key").item(0).getTextContent();

+					String value = entry.getElementsByTagNameNS("*", "value").item(0).getTextContent();

+					outputs.add(key, value);

+				}

+			}

+

+			createVnfNotification.setOutputs(outputs);

+

+			VnfRollback rollback = new VnfRollback();

+

+			String cloudSiteId = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:cloudSiteId/text()");

+			rollback.setCloudSiteId(cloudSiteId);

+

+			String requestId = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:msoRequest/tns:requestId/text()");

+			String serviceInstanceId = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:msoRequest/tns:serviceInstanceId/text()");

+

+			if (requestId != null || serviceInstanceId != null) {

+				MsoRequest msoRequest = new MsoRequest();

+				msoRequest.setRequestId(requestId);

+				msoRequest.setServiceInstanceId(serviceInstanceId);

+				rollback.setMsoRequest(msoRequest);

+			}

+

+			String tenantCreated = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:tenantCreated/text()");

+			rollback.setTenantCreated("true".equals(tenantCreated));

+

+			String tenantId = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:tenantId/text()");

+			rollback.setTenantId(tenantId);

+

+			String vnfCreated = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:vnfCreated/text()");

+			rollback.setVnfCreated("true".equals(vnfCreated));

+

+			String rollbackVnfId = xpathTool.evaluate(

+				"/tns:createVnfNotification/tns:rollback/tns:vnfId/text()");

+			rollback.setVnfId(rollbackVnfId);

+

+			createVnfNotification.setRollback(rollback);

+

+		} catch (Exception e) {

+			System.out.println("Failed to unmarshal VNF callback content:");

+			System.out.println(content);

+			return false;

+		}

+

+		VnfAdapterNotifyServiceImpl notifyService = new VnfAdapterNotifyServiceImpl();

+		notifyService.setProcessEngineServices4junit(processEngineRule);

+

+		notifyService.createVnfNotification(

+			messageId,

+			createVnfNotification.isCompleted(),

+			createVnfNotification.getException(),

+			createVnfNotification.getErrorMessage(),

+			createVnfNotification.getVnfId(),

+			createVnfNotification.getOutputs(),

+			createVnfNotification.getRollback());

+

+		return true;

+	}

+

+	/**

+	 * Injects a Delete VNF adapter callback request. The specified callback data

+	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with

+	 * the actual message ID.  It may also contain the placeholder string

+	 * ((REQUEST-ID)) which is replaced request ID of the original MSO request.

+	 * @param content the content of the callback

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the callback could be injected, false otherwise

+	 * @throws JAXBException if the content does not adhere to the schema

+	 */

+	protected boolean injectDeleteVNFCallback(String content, long timeout) {

+

+		String messageId = (String) getProcessVariable("vnfAdapterDeleteV1",

+			"VNFDEL_uuid", timeout);

+

+		if (messageId == null) {

+			return false;

+		}

+

+		content = content.replace("((MESSAGE-ID))", messageId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{MESSAGE-ID}}", messageId);

+

+		System.out.println("Injecting VNF adapter delete callback");

+

+		// Is it possible to unmarshal this with JAXB?  I couldn't.

+

+		DeleteVnfNotification deleteVnfNotification = new DeleteVnfNotification();

+		XPathTool xpathTool = new VnfNotifyXPathTool();

+		xpathTool.setXML(content);

+

+		try {

+			String completed = xpathTool.evaluate(

+				"/tns:deleteVnfNotification/tns:completed/text()");

+			deleteVnfNotification.setCompleted("true".equals(completed));

+			// if notification failure, set the exception and error message

+			if (deleteVnfNotification.isCompleted() == false) {

+				deleteVnfNotification.setException(MsoExceptionCategory.INTERNAL);

+				deleteVnfNotification.setErrorMessage(xpathTool.evaluate(

+						"/tns:deleteVnfNotification/tns:errorMessage/text()")) ;

+			}

+

+		} catch (Exception e) {

+			System.out.println("Failed to unmarshal VNF Delete callback content:");

+			System.out.println(content);

+			return false;

+		}

+

+		VnfAdapterNotifyServiceImpl notifyService = new VnfAdapterNotifyServiceImpl();

+		notifyService.setProcessEngineServices4junit(processEngineRule);

+

+		notifyService.deleteVnfNotification(

+			messageId,

+			deleteVnfNotification.isCompleted(),

+			deleteVnfNotification.getException(),

+			deleteVnfNotification.getErrorMessage());

+

+		return true;

+	}

+

+	/**

+	 * Injects a Update VNF adapter callback request. The specified callback data

+	 * may contain the placeholder string ((MESSAGE-ID)) which is replaced with

+	 * the actual message ID.  It may also contain the placeholder string

+	 * ((REQUEST-ID)) which is replaced request ID of the original MSO request.

+	 * @param content the content of the callback

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the callback could be injected, false otherwise

+	 * @throws JAXBException if the content does not adhere to the schema

+	 */

+	protected boolean injectUpdateVNFCallback(String content, long timeout) {

+

+		String messageId = (String) getProcessVariable("vnfAdapterUpdate",

+			"VNFU_messageId", timeout);

+

+		if (messageId == null) {

+			return false;

+		}

+

+		content = content.replace("((MESSAGE-ID))", messageId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{MESSAGE-ID}}", messageId);

+

+		content = content.replace("((REQUEST-ID))", msoRequestId);

+		// Deprecated usage.  All test code should switch to the (( ... )) syntax.

+		content = content.replace("{{REQUEST-ID}}", msoRequestId);

+

+		System.out.println("Injecting VNF adapter callback");

+

+		// Is it possible to unmarshal this with JAXB?  I couldn't.

+

+		UpdateVnfNotification updateVnfNotification = new UpdateVnfNotification();

+		XPathTool xpathTool = new VnfNotifyXPathTool();

+		xpathTool.setXML(content);

+

+		try {

+			String completed = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:completed/text()");

+			updateVnfNotification.setCompleted("true".equals(completed));

+

+			NodeList entries = (NodeList) xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:outputs/tns:entry",

+				XPathConstants.NODESET);

+

+			UpdateVnfNotificationOutputs outputs = new UpdateVnfNotificationOutputs();

+

+			for (int i = 0; i < entries.getLength(); i++) {

+				Node node = entries.item(i);

+

+				if (node.getNodeType() == Node.ELEMENT_NODE) {

+					Element entry = (Element) node;

+					String key = entry.getElementsByTagNameNS("*", "key").item(0).getTextContent();

+					String value = entry.getElementsByTagNameNS("*", "value").item(0).getTextContent();

+					outputs.add(key, value);

+				}

+			}

+

+			updateVnfNotification.setOutputs(outputs);

+

+			VnfRollback rollback = new VnfRollback();

+

+			String cloudSiteId = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:cloudSiteId/text()");

+			rollback.setCloudSiteId(cloudSiteId);

+

+			String requestId = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:msoRequest/tns:requestId/text()");

+			String serviceInstanceId = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:msoRequest/tns:serviceInstanceId/text()");

+

+			if (requestId != null || serviceInstanceId != null) {

+				MsoRequest msoRequest = new MsoRequest();

+				msoRequest.setRequestId(requestId);

+				msoRequest.setServiceInstanceId(serviceInstanceId);

+				rollback.setMsoRequest(msoRequest);

+			}

+

+			String tenantCreated = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:tenantCreated/text()");

+			rollback.setTenantCreated("true".equals(tenantCreated));

+

+			String tenantId = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:tenantId/text()");

+			rollback.setTenantId(tenantId);

+

+			String vnfCreated = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:vnfCreated/text()");

+			rollback.setVnfCreated("true".equals(vnfCreated));

+

+			String rollbackVnfId = xpathTool.evaluate(

+				"/tns:updateVnfNotification/tns:rollback/tns:vnfId/text()");

+			rollback.setVnfId(rollbackVnfId);

+

+			updateVnfNotification.setRollback(rollback);

+

+		} catch (Exception e) {

+			System.out.println("Failed to unmarshal VNF callback content:");

+			System.out.println(content);

+			return false;

+		}

+

+		VnfAdapterNotifyServiceImpl notifyService = new VnfAdapterNotifyServiceImpl();

+		notifyService.setProcessEngineServices4junit(processEngineRule);

+

+		notifyService.updateVnfNotification(

+			messageId,

+			updateVnfNotification.isCompleted(),

+			updateVnfNotification.getException(),

+			updateVnfNotification.getErrorMessage(),

+			updateVnfNotification.getOutputs(),

+			updateVnfNotification.getRollback());

+

+		return true;

+	}

+

+	/**

+	 * Injects a workflow message. The specified callback data may contain the

+	 * placeholder string ((CORRELATOR)) which is replaced with the actual

+	 * correlator value.

+	 * @param content the message type

+	 * @param content the message content

+	 * @param timeout the timeout in milliseconds

+	 * @return true if the event could be injected, false otherwise

+	 */

+	protected boolean injectWorkflowMessage(String messageType, String content, long timeout) {

+		String correlator = (String) getProcessVariable("ReceiveWorkflowMessage",

+			messageType + "_CORRELATOR", timeout);

+

+		if (correlator == null) {

+			return false;

+		}

+

+		content = content.replace("((CORRELATOR))", correlator);

+

+		System.out.println("Injecting " + messageType + " message");

+		WorkflowMessageResource workflowMessageResource = new WorkflowMessageResource();

+		workflowMessageResource.setProcessEngineServices4junit(processEngineRule);

+		Response response = workflowMessageResource.deliver(messageType, correlator, content);

+		System.out.println("Workflow response to " + messageType + " message: " + response);

+		return true;

+	}

+

+	/**

+	 * Wait for the process to end.

+	 * @param businessKey the process business key

+	 * @param timeout the amount of time to wait, in milliseconds

+	 */

+	public void waitForProcessEnd(String businessKey, long timeout) {

+		System.out.println("Waiting " + timeout + "ms for process with business key " +

+			businessKey + " to end");

+

+		long now = System.currentTimeMillis() + timeout;

+		long endTime = now + timeout;

+

+		while (now <= endTime) {

+			if (isProcessEnded(businessKey)) {

+				System.out.println("Process with business key " + businessKey + " has ended");

+				return;

+			}

+

+			try {

+				Thread.sleep(200);

+			} catch (InterruptedException e) {

+				String msg = "Interrupted waiting for process with business key " +

+					businessKey + " to end";

+				System.out.println(msg);

+				fail(msg);

+			}

+

+			now = System.currentTimeMillis();

+		}

+

+		String msg = "Process with business key " + businessKey +

+			" did not end within " + timeout + "ms";

+		System.out.println(msg);

+		fail(msg);

+	}

+

+	/**

+	 * Verifies that the specified historic process variable has the specified value.

+	 * If the variable does not have the specified value, the test is failed.

+	 * @param businessKey the process business key

+	 * @param variable the variable name

+	 * @param value the expected variable value

+	 */

+	public void checkVariable(String businessKey, String variable, Object value) {

+		if (!isProcessEnded(businessKey)) {

+			fail("Cannot get historic variable " + variable + " because process with business key " +

+				businessKey + " has not ended");

+		}

+

+		Object variableValue = getVariableFromHistory(businessKey, variable);

+		assertEquals(value, variableValue);

+	}

+

+	/**

+	 * Checks to see if the specified process is ended.

+	 * @param businessKey the process business Key

+	 * @return true if the process is ended

+	 */

+	protected boolean isProcessEnded(String businessKey) {

+		HistoricProcessInstance processInstance = processEngineRule.getHistoryService()

+			.createHistoricProcessInstanceQuery().processInstanceBusinessKey(businessKey).singleResult();

+		return processInstance != null && processInstance.getEndTime() != null;

+	}

+

+	/**

+	 * Gets a variable value from a historical process instance.

+	 * @param businessKey the process business key

+	 * @param variableName the variable name

+	 * @return the variable value, or null if the variable could not be

+	 * obtained

+	 */

+	public Object getVariableFromHistory(String businessKey, String variableName) {

+		try {

+			HistoricProcessInstance processInstance = processEngineRule.getHistoryService()

+				.createHistoricProcessInstanceQuery().processInstanceBusinessKey(businessKey).singleResult();

+

+			if (processInstance == null) {

+				return null;

+			}

+

+			HistoricVariableInstance v = processEngineRule.getHistoryService()

+				.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId())

+				.variableName(variableName).singleResult();

+			return v == null ? null : v.getValue();

+		} catch (Exception e) {

+			System.out.println("Error retrieving variable " + variableName +

+				" from historical process with business key " + businessKey + ": " + e);

+			return null;

+		}

+	}

+

+	/**

+	 * Gets the value of a subflow variable from the specified subflow's

+	 * historical process instance.

+	 *

+	 * @param subflowName - the name of the subflow that contains the variable

+	 * @param variableName the variable name

+	 *

+	 * @return the variable value, or null if the variable could not be obtained

+	 *

+	 */

+	protected Object getVariableFromSubflowHistory(String subflowName, String variableName) {

+		try {

+			List<HistoricProcessInstance> processInstanceList = processEngineRule.getHistoryService()

+					.createHistoricProcessInstanceQuery().processDefinitionName(subflowName).list();

+

+			Collections.sort(processInstanceList, new Comparator<HistoricProcessInstance>() {

+			    public int compare(HistoricProcessInstance m1, HistoricProcessInstance m2) {

+			        return m1.getStartTime().compareTo(m2.getStartTime());

+			    }

+			});

+

+			HistoricProcessInstance processInstance = processInstanceList.get(0);

+

+			if (processInstanceList == null) {

+				return null;

+			}

+

+			HistoricVariableInstance v = processEngineRule.getHistoryService()

+				.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId())

+				.variableName(variableName).singleResult();

+			return v == null ? null : v.getValue();

+		} catch (Exception e) {

+			System.out.println("Error retrieving variable " + variableName +

+					" from sub flow: " + subflowName + ", Exception is: " + e);

+			return null;

+		}

+	}

+

+	/**

+	 * Gets the value of a subflow variable from the subflow's

+	 * historical process x instance.

+	 *

+	 * @param subflowName - the name of the subflow that contains the variable

+	 * @param variableName the variable name

+	 * @param subflowInstanceIndex - the instance of the subflow (use when same subflow is called more than once from mainflow)

+	 *

+	 * @return the variable value, or null if the variable could not be obtained

+	 */

+	protected Object getVariableFromSubflowHistory(int subflowInstanceIndex, String subflowName, String variableName) {

+		try {

+			List<HistoricProcessInstance> processInstanceList = processEngineRule.getHistoryService()

+					.createHistoricProcessInstanceQuery().processDefinitionName(subflowName).list();

+

+			Collections.sort(processInstanceList, new Comparator<HistoricProcessInstance>() {

+			    public int compare(HistoricProcessInstance m1, HistoricProcessInstance m2) {

+			        return m1.getStartTime().compareTo(m2.getStartTime());

+			    }

+			});

+

+			HistoricProcessInstance processInstance = processInstanceList.get(subflowInstanceIndex);

+

+			if (processInstanceList == null) {

+				return null;

+			}

+

+			HistoricVariableInstance v = processEngineRule.getHistoryService()

+				.createHistoricVariableInstanceQuery().processInstanceId(processInstance.getId())

+				.variableName(variableName).singleResult();

+			return v == null ? null : v.getValue();

+		} catch (Exception e) {

+			System.out.println("Error retrieving variable " + variableName +

+				" from " + subflowInstanceIndex + " instance index of sub flow: " + subflowName + ", Exception is: " + e);

+			return null;

+		}

+	}

+

+

+	/**

+	 * Extracts text from an XML element. This method is not namespace aware

+	 * (namespaces are ignored).  The first matching element is selected.

+	 * @param xml the XML document or fragment

+	 * @param tag the desired element, e.g. "<name>"

+	 * @return the element text, or null if the element was not found

+	 */

+	protected String getXMLTextElement(String xml, String tag) {

+		xml = removeXMLNamespaces(xml);

+

+		if (!tag.startsWith("<")) {

+			tag = "<" + tag + ">";

+		}

+

+		int start = xml.indexOf(tag);

+

+		if (start == -1) {

+			return null;

+		}

+

+		int end = xml.indexOf('<', start + tag.length());

+

+		if (end == -1) {

+			return null;

+		}

+

+		return xml.substring(start + tag.length(), end);

+	}

+

+	/**

+	 * Removes namespace definitions and prefixes from XML, if any.

+	 */

+	private String removeXMLNamespaces(String xml) {

+		// remove xmlns declaration

+		xml = xml.replaceAll("xmlns.*?(\"|\').*?(\"|\')", "");

+

+		// remove opening tag prefix

+		xml = xml.replaceAll("(<)(\\w+:)(.*?>)", "$1$3");

+

+		// remove closing tags prefix

+		xml = xml.replaceAll("(</)(\\w+:)(.*?>)", "$1$3");

+

+		// remove extra spaces left when xmlns declarations are removed

+		xml = xml.replaceAll("\\s+>", ">");

+

+		return xml;

+	}

+

+	/**

+	 * Asserts that two XML documents are semantically equivalent.  Differences

+	 * in whitespace or in namespace usage do not affect the comparison.

+	 * @param expected the expected XML

+	 * @param actual the XML to test

+	 * @throws SAXException

+	 * @throws IOException

+	 */

+    public static void assertXMLEquals(String expected, String actual)

+    		throws SAXException, IOException {

+    	XMLUnit.setIgnoreWhitespace(true);

+    	XMLUnit.setIgnoreAttributeOrder(true);

+    	DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(expected, actual));

+    	List<?> allDifferences = diff.getAllDifferences();

+    	assertEquals("Differences found: " + diff.toString(), 0, allDifferences.size());

+    }

+

+	/**

+	 * A test implementation of AsynchronousResponse.

+	 */

+	public class TestAsyncResponse implements AsynchronousResponse {

+		Response response = null;

+

+		/**

+		 * {@inheritDoc}

+		 */

+		@Override

+		public synchronized void setResponse(Response response) {

+			this.response = response;

+		}

+

+		/**

+		 * Gets the response.

+		 * @return the response, or null if none has been produced yet

+		 */

+		public synchronized Response getResponse() {

+			return response;

+		}

+	}

+

+	/**

+	 * An object that contains callback data for a "program".

+	 */

+	public class CallbackSet {

+		private final Map<String, String> map = new HashMap<String, String>();

+

+		/**

+		 * Add callback data to the set.

+		 * @param action the action with which the data is associated

+		 * @param content the callback data

+		 */

+		public void put(String action, String content) {

+			map.put(action, content);

+		}

+

+		/**

+		 * Retrieve callback data from the set.

+		 * @param action the action with which the data is associated

+		 * @return the callback data, or null if there is none for the specified operation

+		 */

+		public String get(String action) {

+			return map.get(action);

+		}

+	}

+

+	/**

+	 * A tool for evaluating XPath expressions.

+	 */

+	protected class XPathTool {

+		private final DocumentBuilderFactory factory;

+		private final SimpleNamespaceContext context = new SimpleNamespaceContext();

+		private final XPath xpath = XPathFactory.newInstance().newXPath();

+		private String xml = null;

+		private Document doc = null;

+

+		/**

+		 * Constructor.

+		 */

+		public XPathTool() {

+			factory = DocumentBuilderFactory.newInstance();

+			factory.setNamespaceAware(true);

+			xpath.setNamespaceContext(context);

+		}

+

+		/**

+		 * Adds a namespace.

+		 * @param prefix the namespace prefix

+		 * @param uri the namespace uri

+		 */

+		public synchronized void addNamespace(String prefix, String uri) {

+			context.add(prefix, uri);

+		}

+

+		/**

+		 * Sets the XML content to be operated on.

+		 * @param xml the XML content

+		 */

+		public synchronized void setXML(String xml) {

+			this.xml = xml;

+			this.doc = null;

+		}

+

+		/**

+		 * Returns the document object.

+		 * @return the document object, or null if XML has not been set

+		 * @throws SAXException

+		 * @throws IOException

+		 * @throws ParserConfigurationException

+		 */

+		public synchronized Document getDocument()

+				throws ParserConfigurationException, IOException, SAXException {

+			if (xml == null) {

+				return null;

+			}

+

+			buildDocument();

+			return doc;

+		}

+

+		/**

+		 * Evaluates the specified XPath expression and returns a string result.

+		 * This method throws exceptions on error.

+		 * @param expression the expression

+		 * @return the result object

+		 * @throws ParserConfigurationException

+		 * @throws IOException

+		 * @throws SAXException

+		 * @throws XPathExpressionException on error

+		 */

+		public synchronized String evaluate(String expression)

+				throws ParserConfigurationException, SAXException,

+				IOException, XPathExpressionException {

+			return (String) evaluate(expression, XPathConstants.STRING);

+		}

+

+		/**

+		 * Evaluates the specified XPath expression.

+		 * This method throws exceptions on error.

+		 * @param expression the expression

+		 * @param returnType the return type

+		 * @return the result object

+		 * @throws ParserConfigurationException

+		 * @throws IOException

+		 * @throws SAXException

+		 * @throws XPathExpressionException on error

+		 */

+		public synchronized Object evaluate(String expression, QName returnType)

+				throws ParserConfigurationException, SAXException,

+				IOException, XPathExpressionException {

+

+			buildDocument();

+			XPathExpression expr = xpath.compile(expression);

+			return expr.evaluate(doc, returnType);

+		}

+

+		/**

+		 * Private helper method that builds the document object.

+		 * Assumes the calling method is synchronized.

+		 * @throws ParserConfigurationException

+		 * @throws IOException

+		 * @throws SAXException

+		 */

+		private void buildDocument() throws ParserConfigurationException,

+				IOException, SAXException {

+			if (doc == null) {

+				if (xml == null) {

+					throw new IOException("XML input is null");

+				}

+

+				DocumentBuilder builder = factory.newDocumentBuilder();

+				InputSource source = new InputSource(new StringReader(xml));

+				doc = builder.parse(source);

+			}

+		}

+	}

+

+	/**

+	 * A NamespaceContext class based on a Map.

+	 */

+	private class SimpleNamespaceContext implements NamespaceContext {

+		private Map<String, String> prefixMap = new HashMap<String, String>();

+		private Map<String, String> uriMap = new HashMap<String, String>();

+

+		public synchronized void add(String prefix, String uri) {

+			prefixMap.put(prefix, uri);

+			uriMap.put(uri, prefix);

+		}

+

+		@Override

+		public synchronized String getNamespaceURI(String prefix) {

+			return prefixMap.get(prefix);

+		}

+

+		@Override

+		public Iterator<String> getPrefixes(String uri) {

+			List<String> list = new ArrayList<String>();

+			String prefix = uriMap.get(uri);

+			if (prefix != null) {

+				list.add(prefix);

+			}

+			return list.iterator();

+		}

+

+		@Override

+		public String getPrefix(String uri) {

+			return uriMap.get(uri);

+		}

+	}

+

+	/**

+	 * A VnfNotify XPathTool.

+	 */

+	protected class VnfNotifyXPathTool extends XPathTool {

+		public VnfNotifyXPathTool() {

+			addNamespace("tns", "http://org.openecomp.mso/vnfNotify");

+		}

+	}

+

+	/**

+	 * Helper class to make it easier to create this type.

+	 */

+	private static class CreateVnfNotificationOutputs

+			extends org.openecomp.mso.bpmn.common.adapter.vnf.CreateVnfNotification.Outputs {

+		public void add(String key, String value) {

+			Entry entry = new Entry();

+			entry.setKey(key);

+			entry.setValue(value);

+			getEntry().add(entry);

+		}

+	}

+

+	/**

+	 * Helper class to make it easier to create this type.

+	 */

+	private static class UpdateVnfNotificationOutputs

+			extends org.openecomp.mso.bpmn.common.adapter.vnf.UpdateVnfNotification.Outputs {

+		public void add(String key, String value) {

+			Entry entry = new Entry();

+			entry.setKey(key);

+			entry.setValue(value);

+			getEntry().add(entry);

+		}

+	}

+}

diff --git a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTestTransformer.java b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTestTransformer.java
index 4aa6fbe..c4b236a 100644
--- a/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTestTransformer.java
+++ b/bpmn/MSOCommonBPMN/src/test/java/org/openecomp/mso/bpmn/common/WorkflowTestTransformer.java
@@ -1,21 +1,21 @@
-package org.openecomp.mso.bpmn.common;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Allows a subclass of WorkflowTest to specify one or more WireMock
- * response transformers.  A transformer must be declared as a public
- * static field in the subclass.  For example:
- * <pre>
- *     @WorkflowTestTransformer
- *     public static final ResponseTransformer sdncAdapterMockTransformer =
- *         new SDNCAdapterMockTransformer();
- * </pre>
- */
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.FIELD)
-public @interface WorkflowTestTransformer {
+package org.openecomp.mso.bpmn.common;

+

+import java.lang.annotation.ElementType;

+import java.lang.annotation.Retention;

+import java.lang.annotation.RetentionPolicy;

+import java.lang.annotation.Target;

+

+/**

+ * Allows a subclass of WorkflowTest to specify one or more WireMock

+ * response transformers.  A transformer must be declared as a public

+ * static field in the subclass.  For example:

+ * <pre>

+ *     @WorkflowTestTransformer

+ *     public static final ResponseTransformer sdncAdapterMockTransformer =

+ *         new SDNCAdapterMockTransformer();

+ * </pre>

+ */

+@Retention(RetentionPolicy.RUNTIME)

+@Target(ElementType.FIELD)

+public @interface WorkflowTestTransformer {

 }
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume.xml
index 52d2b01..182d7c9 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume.xml
@@ -1,22 +1,22 @@
-  <volume-group xmlns="http://com.att.aai.inventory/v6">
-         <volume-group-id>a8399879-31b3-4973-be26-0a0cbe776b58</volume-group-id>
-         <volume-group-name>MoG_CinderVolumes_2</volume-group-name>
-         <heat-stack-id>MoG_CinderVolumes_2/19387dc6-060f-446e-b41f-dcfd29c73845</heat-stack-id>
-         <vnf-type>VmogSvc/moge2e2</vnf-type>
-         <orchestration-status>Active</orchestration-status>
-         <resource-version>1458839419</resource-version>
-         <relationship-list>
-            <relationship>
-               <related-to>tenant</related-to>
-               <related-link>https://aai-app-e2e.test.att.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
-               <relationship-data>
-                  <relationship-key>tenant.tenant-id</relationship-key>
-                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>
-               </relationship-data>
-               <related-to-property>
-                  <property-key>tenant.tenant-name</property-key>
-                  <property-value>MOG-25208-D-01</property-value>
-               </related-to-property>
-            </relationship>
-         </relationship-list>
+  <volume-group xmlns="http://com.aai.inventory/v6">

+         <volume-group-id>a8399879-31b3-4973-be26-0a0cbe776b58</volume-group-id>

+         <volume-group-name>MoG_CinderVolumes_2</volume-group-name>

+         <heat-stack-id>MoG_CinderVolumes_2/19387dc6-060f-446e-b41f-dcfd29c73845</heat-stack-id>

+         <vnf-type>VmogSvc/moge2e2</vnf-type>

+         <orchestration-status>Active</orchestration-status>

+         <resource-version>1458839419</resource-version>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>7dd5365547234ee8937416c65507d266</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>tenant.tenant-name</property-key>

+                  <property-value>MOG-25208-D-01</property-value>

+               </related-to-property>

+            </relationship>

+         </relationship-list>

       </volume-group>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume_idsNotMatch.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume_idsNotMatch.xml
index 79e7d84..9b91bc5 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume_idsNotMatch.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/CRTGVNF_queryAAIResponseVolume_idsNotMatch.xml
@@ -1,22 +1,22 @@
-  <volume-group xmlns="http://com.att.aai.inventory/v6">
-         <volume-group-id>a8399879-31b3-4973-be26-0a0cbe776b58</volume-group-id>
-         <volume-group-name>MoG_CinderVolumes_2</volume-group-name>
-         <heat-stack-id>MoG_CinderVolumes_2/19387dc6-060f-446e-b41f-dcfd29c73845</heat-stack-id>
-         <vnf-type>VmogSvc/moge2e2</vnf-type>
-         <orchestration-status>Active</orchestration-status>
-         <resource-version>1458839419</resource-version>
-         <relationship-list>
-            <relationship>
-               <related-to>tenant</related-to>
-               <related-link>https://aai-app-e2e.test.att.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>
-               <relationship-data>
-                  <relationship-key>tenant.tenant-id</relationship-key>
-                  <relationship-value>83464847234ee8937416c65507d267</relationship-value>
-               </relationship-data>
-               <related-to-property>
-                  <property-key>tenant.tenant-name</property-key>
-                  <property-value>MOG-25208-D-01</property-value>
-               </related-to-property>
-            </relationship>
-         </relationship-list>
+  <volume-group xmlns="http://com.aai.inventory/v6">

+         <volume-group-id>a8399879-31b3-4973-be26-0a0cbe776b58</volume-group-id>

+         <volume-group-name>MoG_CinderVolumes_2</volume-group-name>

+         <heat-stack-id>MoG_CinderVolumes_2/19387dc6-060f-446e-b41f-dcfd29c73845</heat-stack-id>

+         <vnf-type>VmogSvc/moge2e2</vnf-type>

+         <orchestration-status>Active</orchestration-status>

+         <resource-version>1458839419</resource-version>

+         <relationship-list>

+            <relationship>

+               <related-to>tenant</related-to>

+               <related-link>https://aai-app-e2e.test.com:8443/aai/v6/cloud-infrastructure/tenants/tenant/7dd5365547234ee8937416c65507d266/</related-link>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>83464847234ee8937416c65507d267</relationship-value>

+               </relationship-data>

+               <related-to-property>

+                  <property-key>tenant.tenant-name</property-key>

+                  <property-value>MOG-25208-D-01</property-value>

+               </related-to-property>

+            </relationship>

+         </relationship-list>

       </volume-group>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_genericQueryByInstanceName_AAIResponse_200.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_genericQueryByInstanceName_AAIResponse_200.xml
index 742ec13..fce5afa 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_genericQueryByInstanceName_AAIResponse_200.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/CreateServiceInstance/createServiceInstance_genericQueryByInstanceName_AAIResponse_200.xml
@@ -1,13 +1,13 @@
-<search-results xmlns="http://com.att.aai.inventory">
-      <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> 		
+<search-results xmlns="http://com.aai.inventory">

+      <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> 		

       </search-results>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/GENDSI_getServiceInstanceResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GENDSI_getServiceInstanceResponse.xml
index 4aeac5c..30b0afb 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GENDSI_getServiceInstanceResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GENDSI_getServiceInstanceResponse.xml
@@ -1,35 +1,35 @@
-  <service-subscription xmlns="http://com.att.aai.inventory">
-         <service-type>SDN-ETHERNET-INTERNET</service-type>
-         <resource-version>1234</resource-version>
-         <service-instances>
-            <service-instance>
-               <service-instance-id>MIS/1604/0026/SW_INTERNET</service-instance-id>
-               <relationship-list>
-                  <relationship>
-                     <related-to>cvlan-tag</related-to>
-                     <related-link>https://aai-ext1.test.att.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.att.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>
-         </service-instances>
+  <service-subscription xmlns="http://com.aai.inventory">

+         <service-type>SDN-ETHERNET-INTERNET</service-type>

+         <resource-version>1234</resource-version>

+         <service-instances>

+            <service-instance>

+               <service-instance-id>MIS/1604/0026/SW_INTERNET</service-instance-id>

+               <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>

+         </service-instances>

       </service-subscription>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml
index a397e5b..a609a35 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfByNameResponse.xml
@@ -1,23 +1,23 @@
-<generic-vnfs xmlns="http://com.att.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.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml
index 3227a03..2b70f0b 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse.xml
@@ -1,90 +1,90 @@
-<generic-vnfs xmlns="http://com.att.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.att.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.att.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.att.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.att.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.att.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.att.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.att.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.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml
index 3227a03..2b70f0b 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getGenericVnfResponse_hasRelationships.xml
@@ -1,90 +1,90 @@
-<generic-vnfs xmlns="http://com.att.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.att.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.att.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.att.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.att.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.att.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.att.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.att.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.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml
index 28ce8ef..b1f640f 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlById.xml
@@ -1,6 +1,6 @@
-    <search-results xmlns="http://com.att.aai.inventory">
-         <result-data>
-            <resource-type>service-instance</resource-type>
-            <resource-link>https://aai-ext1.test.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlByName.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlByName.xml
index 28ce8ef..b1f640f 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlByName.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getSIUrlByName.xml
@@ -1,6 +1,6 @@
-    <search-results xmlns="http://com.att.aai.inventory">
-         <result-data>
-            <resource-type>service-instance</resource-type>
-            <resource-link>https://aai-ext1.test.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml
index 5ffdda2..84d8600 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceInstance.xml
@@ -1,30 +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.att.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.att.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>

+               <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/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceSubscription.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceSubscription.xml
index 41815d4..85cd5d6 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceSubscription.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getServiceSubscription.xml
@@ -1,34 +1,34 @@
-<service-subscription xmlns="http://com.att.aai.inventory">
-     <service-type>SDN-ETHERNET-INTERNET</service-type>
-     <resource-version>1234</resource-version>
-		<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.att.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.att.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>
+<service-subscription xmlns="http://com.aai.inventory">

+     <service-type>SDN-ETHERNET-INTERNET</service-type>

+     <resource-version>1234</resource-version>

+		<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>

       </service-subscription>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceByNameResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceByNameResponse.xml
index a83e06e..7ada696 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceByNameResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceByNameResponse.xml
@@ -1,97 +1,97 @@
-<vce xmlns="http://com.att.aai.inventory">
-         <vnf-id>1936628a-d22f-4943-8587-a57bab2ece7a</vnf-id>
-         <vnf-name>testVnfName123</vnf-name>
-         <vnf-name2>US0112SLCP1VBRT076</vnf-name2>
-         <vnf-type>esx-vce</vnf-type>
-         <prov-status>NVTPROV</prov-status>
-         <orchestration-status>created</orchestration-status>
-         <resource-version>0000020</resource-version>
-         <heat-stack-id>slcp1476vbc/94a3c72b-94d5-444b-9a1f-647a36c2181d</heat-stack-id>
-         <mso-catalog-key/>
-         <vpe-id>VPESAT-mtanjrsv126</vpe-id>
-         <ipv4-oam-address>135.21.249.160</ipv4-oam-address>
-         <port-groups>
-            <port-group>
-               <interface-id>slcp1476vbc.vpe</interface-id>
-               <neutron-network-id>e7568706-a2a9-45f8-aef8-95a0e2910953</neutron-network-id>
-               <neutron-network-name>dvspg-VCE_VPE-slcp1476vbc</neutron-network-name>
-               <interface-role>Internet</interface-role>
-               <port-group-name>dvspg-VCE_VPE-slcp1476vbc</port-group-name>
-               <resource-version>0000020</resource-version>
-               <switch-name>dvs-slcp1-01</switch-name>
-               <orchestration-status>created</orchestration-status>
-               <heat-stack-id>dvspg-VCE_VPE-slcp1476vbc/c1299f74-da35-4228-b1e0-d2fd07176196</heat-stack-id>
-               <mso-catalog-key/>
-               <cvlan-tags>
-                  <cvlan-tag-entry>
-                     <cvlan-tag>3012</cvlan-tag>
-                     <resource-version>0000020</resource-version>
-                  </cvlan-tag-entry>
-               </cvlan-tags>
-            </port-group>
-            <port-group>
-               <interface-id>slcp1476vbc.ipag</interface-id>
-               <neutron-network-id>3477ddb6-b925-4971-ab62-c84b69634c49</neutron-network-id>
-               <neutron-network-name>dvspg-IPAG_VCE-slcp1476vbc</neutron-network-name>
-               <interface-role>Customer</interface-role>
-               <port-group-name>dvspg-IPAG_VCE-slcp1476vbc</port-group-name>
-               <switch-name>dvs-slcp1-01</switch-name>
-               <resource-version>0000020</resource-version>
-               <orchestration-status>created</orchestration-status>
-               <heat-stack-id>dvspg-IPAG_VCE-slcp1476vbc/1e9c033a-2eef-47f5-9d48-98e0b59538e7</heat-stack-id>
-               <mso-catalog-key/>
-               <cvlan-tags>
-                  <cvlan-tag-entry>
-                     <cvlan-tag>2003</cvlan-tag>
-                     <resource-version>0000020</resource-version>
-                  </cvlan-tag-entry>
-               </cvlan-tags>
-            </port-group>
-         </port-groups>
-         <relationship-list>
-            <relationship>
-               <related-to>service-instance</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/v2/business/customers/customer/011216-1602-SDNC001/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET/service-instances/service-instance/SDNC%2FVLXM%2F0112001%2F%2FSW_INTERNET/</related-link>
-               <relationship-data>
-                  <relationship-key>service-instance.service-instance-id</relationship-key>
-                  <relationship-value>SDNC/VLXM/0112001//SW_INTERNET</relationship-value>
-               </relationship-data>
-               <relationship-data>
-                  <relationship-key>service-subscription.service-type</relationship-key>
-                  <relationship-value>SDN-ETHERNET-INTERNET</relationship-value>
-               </relationship-data>
-               <relationship-data>
-                  <relationship-key>customer.global-customer-id</relationship-key>
-                  <relationship-value>011216-1602-SDNC001</relationship-value>
-               </relationship-data>
-            </relationship>
-            <relationship>
-               <related-to>vserver</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/servers/v2/3d5f3fe23821416fac2b69af65248c74/vservers/ecab47d5-3450-4507-ada9-2b3c58485c51/</related-link>
-               <relationship-data>
-                  <relationship-key>vserver.vserver-id</relationship-key>
-                  <relationship-value>ecab47d5-3450-4507-ada9-2b3c58485c51</relationship-value>
-               </relationship-data>
-               <relationship-data>
-                  <relationship-key>tenant.tenant-id</relationship-key>
-                  <relationship-value>3d5f3fe23821416fac2b69af65248c74</relationship-value>
-               </relationship-data>
-            </relationship>
-            <relationship>
-               <related-to>complex</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/v2/cloud-infrastructure/complexes/complex/MDTWNJ21A4/</related-link>
-               <relationship-data>
-                  <relationship-key>complex.physical-location-id</relationship-key>
-                  <relationship-value>MDTWNJ21A4</relationship-value>
-               </relationship-data>
-            </relationship>
-            <relationship>
-               <related-to>availability-zone</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/v2/cloud-infrastructure/availability-zones/availability-zone/slcp1-esx-az01/</related-link>
-               <relationship-data>
-                  <relationship-key>availability-zone.availability-zone-name</relationship-key>
-                  <relationship-value>slcp1-esx-az01</relationship-value>
-               </relationship-data>
-            </relationship>
-         </relationship-list>
+<vce xmlns="http://com.aai.inventory">

+         <vnf-id>1936628a-d22f-4943-8587-a57bab2ece7a</vnf-id>

+         <vnf-name>testVnfName123</vnf-name>

+         <vnf-name2>US0112SLCP1VBRT076</vnf-name2>

+         <vnf-type>esx-vce</vnf-type>

+         <prov-status>NVTPROV</prov-status>

+         <orchestration-status>created</orchestration-status>

+         <resource-version>0000020</resource-version>

+         <heat-stack-id>slcp1476vbc/94a3c72b-94d5-444b-9a1f-647a36c2181d</heat-stack-id>

+         <mso-catalog-key/>

+         <vpe-id>VPESAT-mtanjrsv126</vpe-id>

+         <ipv4-oam-address>135.21.249.160</ipv4-oam-address>

+         <port-groups>

+            <port-group>

+               <interface-id>slcp1476vbc.vpe</interface-id>

+               <neutron-network-id>e7568706-a2a9-45f8-aef8-95a0e2910953</neutron-network-id>

+               <neutron-network-name>dvspg-VCE_VPE-slcp1476vbc</neutron-network-name>

+               <interface-role>Internet</interface-role>

+               <port-group-name>dvspg-VCE_VPE-slcp1476vbc</port-group-name>

+               <resource-version>0000020</resource-version>

+               <switch-name>dvs-slcp1-01</switch-name>

+               <orchestration-status>created</orchestration-status>

+               <heat-stack-id>dvspg-VCE_VPE-slcp1476vbc/c1299f74-da35-4228-b1e0-d2fd07176196</heat-stack-id>

+               <mso-catalog-key/>

+               <cvlan-tags>

+                  <cvlan-tag-entry>

+                     <cvlan-tag>3012</cvlan-tag>

+                     <resource-version>0000020</resource-version>

+                  </cvlan-tag-entry>

+               </cvlan-tags>

+            </port-group>

+            <port-group>

+               <interface-id>slcp1476vbc.ipag</interface-id>

+               <neutron-network-id>3477ddb6-b925-4971-ab62-c84b69634c49</neutron-network-id>

+               <neutron-network-name>dvspg-IPAG_VCE-slcp1476vbc</neutron-network-name>

+               <interface-role>Customer</interface-role>

+               <port-group-name>dvspg-IPAG_VCE-slcp1476vbc</port-group-name>

+               <switch-name>dvs-slcp1-01</switch-name>

+               <resource-version>0000020</resource-version>

+               <orchestration-status>created</orchestration-status>

+               <heat-stack-id>dvspg-IPAG_VCE-slcp1476vbc/1e9c033a-2eef-47f5-9d48-98e0b59538e7</heat-stack-id>

+               <mso-catalog-key/>

+               <cvlan-tags>

+                  <cvlan-tag-entry>

+                     <cvlan-tag>2003</cvlan-tag>

+                     <resource-version>0000020</resource-version>

+                  </cvlan-tag-entry>

+               </cvlan-tags>

+            </port-group>

+         </port-groups>

+         <relationship-list>

+            <relationship>

+               <related-to>service-instance</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v2/business/customers/customer/011216-1602-SDNC001/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET/service-instances/service-instance/SDNC%2FVLXM%2F0112001%2F%2FSW_INTERNET/</related-link>

+               <relationship-data>

+                  <relationship-key>service-instance.service-instance-id</relationship-key>

+                  <relationship-value>SDNC/VLXM/0112001//SW_INTERNET</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>service-subscription.service-type</relationship-key>

+                  <relationship-value>SDN-ETHERNET-INTERNET</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>customer.global-customer-id</relationship-key>

+                  <relationship-value>011216-1602-SDNC001</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vserver</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/servers/v2/3d5f3fe23821416fac2b69af65248c74/vservers/ecab47d5-3450-4507-ada9-2b3c58485c51/</related-link>

+               <relationship-data>

+                  <relationship-key>vserver.vserver-id</relationship-key>

+                  <relationship-value>ecab47d5-3450-4507-ada9-2b3c58485c51</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>3d5f3fe23821416fac2b69af65248c74</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>complex</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v2/cloud-infrastructure/complexes/complex/MDTWNJ21A4/</related-link>

+               <relationship-data>

+                  <relationship-key>complex.physical-location-id</relationship-key>

+                  <relationship-value>MDTWNJ21A4</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>availability-zone</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v2/cloud-infrastructure/availability-zones/availability-zone/slcp1-esx-az01/</related-link>

+               <relationship-data>

+                  <relationship-key>availability-zone.availability-zone-name</relationship-key>

+                  <relationship-value>slcp1-esx-az01</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

       </vce>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceResponse.xml
index a83e06e..5dc3033 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/GenericFlows/getVceResponse.xml
@@ -1,97 +1,97 @@
-<vce xmlns="http://com.att.aai.inventory">
-         <vnf-id>1936628a-d22f-4943-8587-a57bab2ece7a</vnf-id>
-         <vnf-name>testVnfName123</vnf-name>
-         <vnf-name2>US0112SLCP1VBRT076</vnf-name2>
-         <vnf-type>esx-vce</vnf-type>
-         <prov-status>NVTPROV</prov-status>
-         <orchestration-status>created</orchestration-status>
-         <resource-version>0000020</resource-version>
-         <heat-stack-id>slcp1476vbc/94a3c72b-94d5-444b-9a1f-647a36c2181d</heat-stack-id>
-         <mso-catalog-key/>
-         <vpe-id>VPESAT-mtanjrsv126</vpe-id>
-         <ipv4-oam-address>135.21.249.160</ipv4-oam-address>
-         <port-groups>
-            <port-group>
-               <interface-id>slcp1476vbc.vpe</interface-id>
-               <neutron-network-id>e7568706-a2a9-45f8-aef8-95a0e2910953</neutron-network-id>
-               <neutron-network-name>dvspg-VCE_VPE-slcp1476vbc</neutron-network-name>
-               <interface-role>Internet</interface-role>
-               <port-group-name>dvspg-VCE_VPE-slcp1476vbc</port-group-name>
-               <resource-version>0000020</resource-version>
-               <switch-name>dvs-slcp1-01</switch-name>
-               <orchestration-status>created</orchestration-status>
-               <heat-stack-id>dvspg-VCE_VPE-slcp1476vbc/c1299f74-da35-4228-b1e0-d2fd07176196</heat-stack-id>
-               <mso-catalog-key/>
-               <cvlan-tags>
-                  <cvlan-tag-entry>
-                     <cvlan-tag>3012</cvlan-tag>
-                     <resource-version>0000020</resource-version>
-                  </cvlan-tag-entry>
-               </cvlan-tags>
-            </port-group>
-            <port-group>
-               <interface-id>slcp1476vbc.ipag</interface-id>
-               <neutron-network-id>3477ddb6-b925-4971-ab62-c84b69634c49</neutron-network-id>
-               <neutron-network-name>dvspg-IPAG_VCE-slcp1476vbc</neutron-network-name>
-               <interface-role>Customer</interface-role>
-               <port-group-name>dvspg-IPAG_VCE-slcp1476vbc</port-group-name>
-               <switch-name>dvs-slcp1-01</switch-name>
-               <resource-version>0000020</resource-version>
-               <orchestration-status>created</orchestration-status>
-               <heat-stack-id>dvspg-IPAG_VCE-slcp1476vbc/1e9c033a-2eef-47f5-9d48-98e0b59538e7</heat-stack-id>
-               <mso-catalog-key/>
-               <cvlan-tags>
-                  <cvlan-tag-entry>
-                     <cvlan-tag>2003</cvlan-tag>
-                     <resource-version>0000020</resource-version>
-                  </cvlan-tag-entry>
-               </cvlan-tags>
-            </port-group>
-         </port-groups>
-         <relationship-list>
-            <relationship>
-               <related-to>service-instance</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/v2/business/customers/customer/011216-1602-SDNC001/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET/service-instances/service-instance/SDNC%2FVLXM%2F0112001%2F%2FSW_INTERNET/</related-link>
-               <relationship-data>
-                  <relationship-key>service-instance.service-instance-id</relationship-key>
-                  <relationship-value>SDNC/VLXM/0112001//SW_INTERNET</relationship-value>
-               </relationship-data>
-               <relationship-data>
-                  <relationship-key>service-subscription.service-type</relationship-key>
-                  <relationship-value>SDN-ETHERNET-INTERNET</relationship-value>
-               </relationship-data>
-               <relationship-data>
-                  <relationship-key>customer.global-customer-id</relationship-key>
-                  <relationship-value>011216-1602-SDNC001</relationship-value>
-               </relationship-data>
-            </relationship>
-            <relationship>
-               <related-to>vserver</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/servers/v2/3d5f3fe23821416fac2b69af65248c74/vservers/ecab47d5-3450-4507-ada9-2b3c58485c51/</related-link>
-               <relationship-data>
-                  <relationship-key>vserver.vserver-id</relationship-key>
-                  <relationship-value>ecab47d5-3450-4507-ada9-2b3c58485c51</relationship-value>
-               </relationship-data>
-               <relationship-data>
-                  <relationship-key>tenant.tenant-id</relationship-key>
-                  <relationship-value>3d5f3fe23821416fac2b69af65248c74</relationship-value>
-               </relationship-data>
-            </relationship>
-            <relationship>
-               <related-to>complex</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/v2/cloud-infrastructure/complexes/complex/MDTWNJ21A4/</related-link>
-               <relationship-data>
-                  <relationship-key>complex.physical-location-id</relationship-key>
-                  <relationship-value>MDTWNJ21A4</relationship-value>
-               </relationship-data>
-            </relationship>
-            <relationship>
-               <related-to>availability-zone</related-to>
-               <related-link>https://aai-ext1.test.att.com:8443/aai/v2/cloud-infrastructure/availability-zones/availability-zone/slcp1-esx-az01/</related-link>
-               <relationship-data>
-                  <relationship-key>availability-zone.availability-zone-name</relationship-key>
-                  <relationship-value>slcp1-esx-az01</relationship-value>
-               </relationship-data>
-            </relationship>
-         </relationship-list>
+<vce xmlns="http://com.aai.inventory">

+         <vnf-id>1936628a-d22f-4943-8587-a57bab2ece7a</vnf-id>

+         <vnf-name>testVnfName123</vnf-name>

+         <vnf-name2>US0112SLCP1VBRT076</vnf-name2>

+         <vnf-type>esx-vce</vnf-type>

+         <prov-status>NVTPROV</prov-status>

+         <orchestration-status>created</orchestration-status>

+         <resource-version>0000020</resource-version>

+         <heat-stack-id>slcp1476vbc/94a3c72b-94d5-444b-9a1f-647a36c2181d</heat-stack-id>

+         <mso-catalog-key/>

+         <vpe-id>VPESAT-mtanjrsv126</vpe-id>

+         <ipv4-oam-address>135.21.249.160</ipv4-oam-address>

+         <port-groups>

+            <port-group>

+               <interface-id>slcp1476vbc.vpe</interface-id>

+               <neutron-network-id>e7568706-a2a9-45f8-aef8-95a0e2910953</neutron-network-id>

+               <neutron-network-name>dvspg-VCE_VPE-slcp1476vbc</neutron-network-name>

+               <interface-role>Internet</interface-role>

+               <port-group-name>dvspg-VCE_VPE-slcp1476vbc</port-group-name>

+               <resource-version>0000020</resource-version>

+               <switch-name>dvs-slcp1-01</switch-name>

+               <orchestration-status>created</orchestration-status>

+               <heat-stack-id>dvspg-VCE_VPE-slcp1476vbc/c1299f74-da35-4228-b1e0-d2fd07176196</heat-stack-id>

+               <mso-catalog-key/>

+               <cvlan-tags>

+                  <cvlan-tag-entry>

+                     <cvlan-tag>3012</cvlan-tag>

+                     <resource-version>0000020</resource-version>

+                  </cvlan-tag-entry>

+               </cvlan-tags>

+            </port-group>

+            <port-group>

+               <interface-id>slcp1476vbc.ipag</interface-id>

+               <neutron-network-id>3477ddb6-b925-4971-ab62-c84b69634c49</neutron-network-id>

+               <neutron-network-name>dvspg-IPAG_VCE-slcp1476vbc</neutron-network-name>

+               <interface-role>Customer</interface-role>

+               <port-group-name>dvspg-IPAG_VCE-slcp1476vbc</port-group-name>

+               <switch-name>dvs-slcp1-01</switch-name>

+               <resource-version>0000020</resource-version>

+               <orchestration-status>created</orchestration-status>

+               <heat-stack-id>dvspg-IPAG_VCE-slcp1476vbc/1e9c033a-2eef-47f5-9d48-98e0b59538e7</heat-stack-id>

+               <mso-catalog-key/>

+               <cvlan-tags>

+                  <cvlan-tag-entry>

+                     <cvlan-tag>2003</cvlan-tag>

+                     <resource-version>0000020</resource-version>

+                  </cvlan-tag-entry>

+               </cvlan-tags>

+            </port-group>

+         </port-groups>

+         <relationship-list>

+            <relationship>

+               <related-to>service-instance</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v2/business/customers/customer/011216-1602-SDNC001/service-subscriptions/service-subscription/SDN-ETHERNET-INTERNET/service-instances/service-instance/SDNC%2FVLXM%2F0112001%2F%2FSW_INTERNET/</related-link>

+               <relationship-data>

+                  <relationship-key>service-instance.service-instance-id</relationship-key>

+                  <relationship-value>SDNC/VLXM/0112001//SW_INTERNET</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>service-subscription.service-type</relationship-key>

+                  <relationship-value>SDN-ETHERNET-INTERNET</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>customer.global-customer-id</relationship-key>

+                  <relationship-value>011216-1602-SDNC001</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>vserver</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/servers/v2/3d5f3fe23821416fac2b69af65248c74/vservers/ecab47d5-3450-4507-ada9-2b3c58485c51/</related-link>

+               <relationship-data>

+                  <relationship-key>vserver.vserver-id</relationship-key>

+                  <relationship-value>ecab47d5-3450-4507-ada9-2b3c58485c51</relationship-value>

+               </relationship-data>

+               <relationship-data>

+                  <relationship-key>tenant.tenant-id</relationship-key>

+                  <relationship-value>3d5f3fe23821416fac2b69af65248c74</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>complex</related-to>

+               <related-link>https://aai-ext1.test.com:8443/aai/v2/cloud-infrastructure/complexes/complex/MDTWNJ21A4/</related-link>

+               <relationship-data>

+                  <relationship-key>complex.physical-location-id</relationship-key>

+                  <relationship-value>MDTWNJ21A4</relationship-value>

+               </relationship-data>

+            </relationship>

+            <relationship>

+               <related-to>availability-zone</related-to>

+               <related-link>https://aai-ext1.test..com:8443/aai/v2/cloud-infrastructure/availability-zones/availability-zone/slcp1-esx-az01/</related-link>

+               <relationship-data>

+                  <relationship-key>availability-zone.availability-zone-name</relationship-key>

+                  <relationship-value>slcp1-esx-az01</relationship-value>

+               </relationship-data>

+            </relationship>

+         </relationship-list>

       </vce>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1mock/sdncadaptercallbackrequest.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1mock/sdncadaptercallbackrequest.xml
index b720047..3d1e039 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1mock/sdncadaptercallbackrequest.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/SDN-ETHERNET-INTERNET/SDNCAdapterV1mock/sdncadaptercallbackrequest.xml
@@ -1,350 +1,350 @@
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
-	xmlns:v1="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-	<soapenv:Header />
-	<soapenv:Body>
-		<v1:SDNCAdapterCallback>
-<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-    <CallbackHeader>
-        <RequestId>testRequestId</RequestId>
-        <ResponseCode>200</ResponseCode>
-        <ResponseMessage>OK</ResponseMessage>
-    </CallbackHeader>
-    <RequestData xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">				&lt;layer3-service-list xmlns="com:att:sdnctl:l3api"&gt;
-					&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;
-					&lt;service-status&gt;
-						&lt;rpc-name&gt;service-configuration-operation&lt;/rpc-name&gt;
-						&lt;rpc-action&gt;activate&lt;/rpc-action&gt;
-						&lt;request-status&gt;synccomplete&lt;/request-status&gt;
-						&lt;final-indicator&gt;N&lt;/final-indicator&gt;
-						&lt;l3sdn-action&gt;Layer3ServiceActivateRequest&lt;/l3sdn-action&gt;
-						&lt;l3sdn-subaction&gt;SUPP&lt;/l3sdn-subaction&gt;
-						&lt;response-timestamp&gt;2015-04-28T21:32:11.386Z&lt;/response-timestamp&gt;
-					&lt;/service-status&gt;
-					&lt;service-data&gt;
-						&lt;internet-evc-access-information&gt;
-							&lt;ip-version&gt;ds&lt;/ip-version&gt;
-							&lt;internet-evc-speed-value&gt;8&lt;/internet-evc-speed-value&gt;
-							&lt;internet-evc-speed-units&gt;Mbps&lt;/internet-evc-speed-units&gt;
-						&lt;/internet-evc-access-information&gt;
-						&lt;vr-lan xmlns="com:att:sdnctl:l3api"&gt;
-							&lt;vr-lan-interface&gt;
-								&lt;static-routes&gt;
-									&lt;v6-static-routes&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;
-										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;
-									&lt;/v6-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.1&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-									&lt;v6-static-routes&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;
-										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;
-									&lt;/v6-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.2&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.3&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-								&lt;/static-routes&gt;
-								&lt;dhcp&gt;
-									&lt;v6-dhcp-server-enabled&gt;N&lt;/v6-dhcp-server-enabled&gt;
-									&lt;v4-dhcp-server-enabled&gt;Y&lt;/v4-dhcp-server-enabled&gt;
-									&lt;use-v6-default-pool&gt;N&lt;/use-v6-default-pool&gt;
-									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;
-									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;
-									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v4-address&gt;192.168.1.8&lt;/excluded-v4-address&gt;
-									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;
-									&lt;v4-dhcp-pools&gt;
-										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.1&lt;/v4-dhcp-relay-next-hop-address&gt;
-										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.5&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.1&lt;/v4-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-pool-prefix&gt;192.155.2.3&lt;/v4-dhcp-pool-prefix&gt;
-									&lt;/v4-dhcp-pools&gt;
-									&lt;v4-dhcp-pools&gt;
-										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.2&lt;/v4-dhcp-relay-next-hop-address&gt;
-										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.2&lt;/v4-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-pool-prefix&gt;192.155.2.4&lt;/v4-dhcp-pool-prefix&gt;
-									&lt;/v4-dhcp-pools&gt;									
-									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;
-									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v6-address&gt;1:5&lt;/excluded-v6-address&gt;
-									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;
-									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v6-address&gt;1:6&lt;/excluded-v6-address&gt;
-									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;
-									&lt;v6-dhcp-pools&gt;
-										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;
-										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;
-									&lt;/v6-dhcp-pools&gt;
-									&lt;v6-dhcp-pools&gt;
-										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;
-										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;
-									&lt;/v6-dhcp-pools&gt;									
-								&lt;/dhcp&gt;
-								&lt;firewall-lite&gt;
-									&lt;stateful-firewall-lite-v6-enabled&gt;N&lt;/stateful-firewall-lite-v6-enabled&gt;
-									&lt;stateful-firewall-lite-v4-enabled&gt;Y&lt;/stateful-firewall-lite-v4-enabled&gt;
-									&lt;v4-firewall-packet-filters&gt;
-									  &lt;v4-firewall-prefix&gt;0.0.0.1&lt;/v4-firewall-prefix&gt;
-									  &lt;v4-firewall-prefix-length&gt;1&lt;/v4-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;1&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;1&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v4-firewall-packet-filters&gt;
-									&lt;v4-firewall-packet-filters&gt;
-									  &lt;v4-firewall-prefix&gt;0.0.0.2&lt;/v4-firewall-prefix&gt;
-									  &lt;v4-firewall-prefix-length&gt;2&lt;/v4-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;2&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;2&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v4-firewall-packet-filters&gt;
-									&lt;v6-firewall-packet-filters&gt;
-									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;
-									  &lt;v6-firewall-prefix-length&gt;0&lt;/v6-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;3&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;3&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v6-firewall-packet-filters&gt;
-									&lt;v6-firewall-packet-filters&gt;
-									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;
-									  &lt;v6-firewall-prefix-length&gt;1&lt;/v6-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;4&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;4&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v6-firewall-packet-filters&gt;
-								&lt;/firewall-lite&gt;
-								&lt;pat&gt;
-									&lt;v4-pat-pools&gt;
-										&lt;v4-pat-pool-prefix&gt;192.168.1.44&lt;/v4-pat-pool-prefix&gt;
-										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.5&lt;/v4-pat-pool-next-hop-address&gt;
-										&lt;v4-pat-pool-prefix-length&gt;0&lt;/v4-pat-pool-prefix-length&gt;
-									&lt;/v4-pat-pools&gt;
-									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;
-									&lt;v4-pat-enabled&gt;N&lt;/v4-pat-enabled&gt;
-									&lt;v4-pat-pools&gt;
-										&lt;v4-pat-pool-prefix&gt;192.168.1.45&lt;/v4-pat-pool-prefix&gt;
-										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.6&lt;/v4-pat-pool-next-hop-address&gt;
-										&lt;v4-pat-pool-prefix-length&gt;28&lt;/v4-pat-pool-prefix-length&gt;
-									&lt;/v4-pat-pools&gt;
-								&lt;/pat&gt;
-								&lt;nat&gt;
-								  &lt;v4-nat-enabled&gt;Y&lt;/v4-nat-enabled&gt;
-								  &lt;v4-nat-mapping-entries&gt;
-								    &lt;v4-nat-internal&gt;0.0.0.0&lt;/v4-nat-internal&gt;
-								    &lt;v4-nat-next-hop-address&gt;0.0.0.0&lt;/v4-nat-next-hop-address&gt;
-								    &lt;v4-nat-external&gt;0.0.0.0&lt;/v4-nat-external&gt;
-								  &lt;/v4-nat-mapping-entries&gt;
-								  &lt;v4-nat-mapping-entries&gt;
-								    &lt;v4-nat-internal&gt;0.0.0.1&lt;/v4-nat-internal&gt;
-								    &lt;v4-nat-next-hop-address&gt;0.0.0.1&lt;/v4-nat-next-hop-address&gt;
-								    &lt;v4-nat-external&gt;0.0.0.1&lt;/v4-nat-external&gt;
-								  &lt;/v4-nat-mapping-entries&gt;
-								&lt;/nat&gt;
-								&lt;vr-designation&gt;primary&lt;/vr-designation&gt;
-								&lt;v4-vce-loopback-address&gt;162.200.3.144&lt;/v4-vce-loopback-address&gt;
-								&lt;v6-vr-lan-prefix-length&gt;64&lt;/v6-vr-lan-prefix-length&gt;
-								&lt;v6-vce-wan-address&gt;2001:1890:12e3:2da::&lt;/v6-vce-wan-address&gt;
-								&lt;v6-vr-lan-prefix&gt;2620:0:10d0:f:ffff:ffff:ffff:fffe&lt;/v6-vr-lan-prefix&gt;
-								&lt;v4-vr-lan-prefix-length&gt;24&lt;/v4-vr-lan-prefix-length&gt;
-								&lt;v4-vr-lan-prefix&gt;10.192.27.254&lt;/v4-vr-lan-prefix&gt;
-								&lt;v4-public-lan-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.2&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.1&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.72&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.71&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.68&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.67&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-								&lt;/v4-public-lan-prefixes&gt;
-								&lt;v6-public-lan-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:3da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:4da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-								&lt;/v6-public-lan-prefixes&gt;
-							&lt;/vr-lan-interface&gt;
-							&lt;routing-protocol&gt;none&lt;/routing-protocol&gt;
-						&lt;/vr-lan&gt;
-&lt;ucpe-vms-service-information&gt;				
- &lt;transport-service-information&gt;
-    &lt;transport-service-type&gt;AVPN&lt;/transport-service-type&gt;
-	&lt;access-circuit-info&gt;
-	   &lt;access-circuit-id&gt;1&lt;/access-circuit-id&gt;
-	   &lt;dual-mode&gt;Active&lt;/dual-mode&gt;
-	&lt;/access-circuit-info&gt;
-	&lt;access-circuit-info&gt;
-	   &lt;access-circuit-id&gt;2&lt;/access-circuit-id&gt;
-	   &lt;dual-mode&gt;Standby&lt;/dual-mode&gt;
-	&lt;/access-circuit-info&gt;	
- &lt;/transport-service-information&gt;
- &lt;ucpe-information&gt;
-    &lt;ucpe-host-name&gt;hostname&lt;/ucpe-host-name&gt;
-    &lt;ucpe-activation-code&gt;activecode&lt;/ucpe-activation-code&gt;
-    &lt;out-of-band-management-modem&gt;OOB&lt;/out-of-band-management-modem&gt;
-  &lt;/ucpe-information&gt;
-  &lt;vnf-list&gt;
-	&lt;vnf-information&gt; 
-		&lt;vnf-instance-id&gt;1&lt;/vnf-instance-id&gt; 
-		&lt;vnf-sequence-number&gt;1&lt;/vnf-sequence-number&gt;
-		&lt;vnf-type&gt;ZZ&lt;/vnf-type&gt;
-		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;
-		&lt;vnf-model&gt;MODEL1&lt;/vnf-model&gt;
-		&lt;vnf-id&gt;1&lt;/vnf-id&gt;
-		&lt;prov-status&gt;1&lt;/prov-status&gt;
-		&lt;operational-state&gt;1&lt;/operational-state&gt;
-		&lt;orchestration-status&gt;1&lt;/orchestration-status&gt;
-		&lt;equipment-role&gt;1&lt;/equipment-role&gt;
-    &lt;/vnf-information&gt;
-	&lt;vnf-information&gt; 
-		&lt;vnf-instance-id&gt;2&lt;/vnf-instance-id&gt; 
-		&lt;vnf-sequence-number&gt;2&lt;/vnf-sequence-number&gt;
-		&lt;vnf-type&gt;HY&lt;/vnf-type&gt;
-		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;
-		&lt;vnf-model&gt;MODEL2&lt;/vnf-model&gt;
-		&lt;vnf-id&gt;2&lt;/vnf-id&gt;
-		&lt;prov-status&gt;2&lt;/prov-status&gt;
-		&lt;operational-state&gt;2&lt;/operational-state&gt;
-		&lt;orchestration-status&gt;2&lt;/orchestration-status&gt;
-		&lt;equipment-role&gt;2&lt;/equipment-role&gt;
-    &lt;/vnf-information&gt;					
-  &lt;/vnf-list&gt;
- &lt;/ucpe-vms-service-information&gt;										
-						&lt;request-information&gt;
-							&lt;request-action&gt;Layer3ServiceActivateRequest&lt;/request-action&gt;
-							&lt;order-number&gt;4281555&lt;/order-number&gt;
-							&lt;request-id&gt;155415ab-b4a7-4382-b4c6-d17d9sm42855&lt;/request-id&gt;
-							&lt;notification-url&gt;https://csi-tst-q22.it.att.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws&lt;/notification-url&gt;
-							&lt;source&gt;OMX&lt;/source&gt;
-							&lt;order-version&gt;1&lt;/order-version&gt;
-						&lt;/request-information&gt;
-						&lt;sdnc-request-header&gt;
-							&lt;svc-action&gt;activate&lt;/svc-action&gt;
-							&lt;svc-notification-url&gt;https://msojra.mtsnjdcp1.aic.cip.att.com:8443/adapters/rest/SDNCNotify&lt;/svc-notification-url&gt;
-							&lt;svc-request-id&gt;5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760&lt;/svc-request-id&gt;
-						&lt;/sdnc-request-header&gt;
-						&lt;l2-homing-information&gt;
-							&lt;topology&gt;MultiPoint&lt;/topology&gt;
-							&lt;preferred-aic-clli&gt;MTSNJA4LCP1&lt;/preferred-aic-clli&gt;
-							&lt;evc-name&gt;AS/VLXM/003717//SW&lt;/evc-name&gt;
-						&lt;/l2-homing-information&gt;
-						&lt;service-information&gt;
-							&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;
-							&lt;subscriber-name&gt;ST E2E Test42855_1300004281555&lt;/subscriber-name&gt;
-							&lt;service-type&gt;SDN-ETHERNET-INTERNET&lt;/service-type&gt;
-						&lt;/service-information&gt;
-						&lt;internet-service-change-details&gt;
-							&lt;internet-evc-speed-value&gt;10&lt;/internet-evc-speed-value&gt;
-							&lt;internet-evc-speed-units&gt;Kbps&lt;/internet-evc-speed-units&gt;
-							&lt;t-provided-v4-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-							   &lt;v4-lan-public-prefix&gt;192.168.1.15&lt;/v4-lan-public-prefix&gt;
-							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-							&lt;/t-provided-v4-lan-public-prefixes&gt;
-							&lt;t-provided-v4-lan-public-prefixes&gt;
-							   &lt;request-index&gt;2&lt;/request-index&gt;
-							   &lt;v4-next-hop-address&gt;192.168.1.16&lt;/v4-next-hop-address&gt;
-							   &lt;v4-lan-public-prefix&gt;192.168.1.16&lt;/v4-lan-public-prefix&gt;
-							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-							&lt;/t-provided-v4-lan-public-prefixes&gt;
-							&lt;t-provided-v6-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-							&lt;/t-provided-v6-lan-public-prefixes&gt;
-							&lt;t-provided-v6-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-							&lt;/t-provided-v6-lan-public-prefixes&gt;
-						&lt;/internet-service-change-details&gt;
-					&lt;/service-data&gt;
-				&lt;/layer3-service-list&gt;
-</RequestData>
-</SDNCAdapterCallbackRequest>
-</v1:SDNCAdapterCallback>
-</soapenv:Body>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

+	xmlns:v1="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+	<soapenv:Header />

+	<soapenv:Body>

+		<v1:SDNCAdapterCallback>

+<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+    <CallbackHeader>

+        <RequestId>testRequestId</RequestId>

+        <ResponseCode>200</ResponseCode>

+        <ResponseMessage>OK</ResponseMessage>

+    </CallbackHeader>

+    <RequestData xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">				&lt;layer3-service-list xmlns="com:att:sdnctl:l3api"&gt;

+					&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;

+					&lt;service-status&gt;

+						&lt;rpc-name&gt;service-configuration-operation&lt;/rpc-name&gt;

+						&lt;rpc-action&gt;activate&lt;/rpc-action&gt;

+						&lt;request-status&gt;synccomplete&lt;/request-status&gt;

+						&lt;final-indicator&gt;N&lt;/final-indicator&gt;

+						&lt;l3sdn-action&gt;Layer3ServiceActivateRequest&lt;/l3sdn-action&gt;

+						&lt;l3sdn-subaction&gt;SUPP&lt;/l3sdn-subaction&gt;

+						&lt;response-timestamp&gt;2015-04-28T21:32:11.386Z&lt;/response-timestamp&gt;

+					&lt;/service-status&gt;

+					&lt;service-data&gt;

+						&lt;internet-evc-access-information&gt;

+							&lt;ip-version&gt;ds&lt;/ip-version&gt;

+							&lt;internet-evc-speed-value&gt;8&lt;/internet-evc-speed-value&gt;

+							&lt;internet-evc-speed-units&gt;Mbps&lt;/internet-evc-speed-units&gt;

+						&lt;/internet-evc-access-information&gt;

+						&lt;vr-lan xmlns="com:att:sdnctl:l3api"&gt;

+							&lt;vr-lan-interface&gt;

+								&lt;static-routes&gt;

+									&lt;v6-static-routes&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;

+										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;

+									&lt;/v6-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.1&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+									&lt;v6-static-routes&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;

+										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;

+									&lt;/v6-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.2&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.3&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+								&lt;/static-routes&gt;

+								&lt;dhcp&gt;

+									&lt;v6-dhcp-server-enabled&gt;N&lt;/v6-dhcp-server-enabled&gt;

+									&lt;v4-dhcp-server-enabled&gt;Y&lt;/v4-dhcp-server-enabled&gt;

+									&lt;use-v6-default-pool&gt;N&lt;/use-v6-default-pool&gt;

+									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;

+									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;

+									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v4-address&gt;192.168.1.8&lt;/excluded-v4-address&gt;

+									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;

+									&lt;v4-dhcp-pools&gt;

+										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.1&lt;/v4-dhcp-relay-next-hop-address&gt;

+										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.5&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.1&lt;/v4-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-pool-prefix&gt;192.155.2.3&lt;/v4-dhcp-pool-prefix&gt;

+									&lt;/v4-dhcp-pools&gt;

+									&lt;v4-dhcp-pools&gt;

+										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.2&lt;/v4-dhcp-relay-next-hop-address&gt;

+										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.2&lt;/v4-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-pool-prefix&gt;192.155.2.4&lt;/v4-dhcp-pool-prefix&gt;

+									&lt;/v4-dhcp-pools&gt;									

+									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;

+									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v6-address&gt;1:5&lt;/excluded-v6-address&gt;

+									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;

+									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v6-address&gt;1:6&lt;/excluded-v6-address&gt;

+									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;

+									&lt;v6-dhcp-pools&gt;

+										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;

+										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;

+									&lt;/v6-dhcp-pools&gt;

+									&lt;v6-dhcp-pools&gt;

+										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;

+										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;

+									&lt;/v6-dhcp-pools&gt;									

+								&lt;/dhcp&gt;

+								&lt;firewall-lite&gt;

+									&lt;stateful-firewall-lite-v6-enabled&gt;N&lt;/stateful-firewall-lite-v6-enabled&gt;

+									&lt;stateful-firewall-lite-v4-enabled&gt;Y&lt;/stateful-firewall-lite-v4-enabled&gt;

+									&lt;v4-firewall-packet-filters&gt;

+									  &lt;v4-firewall-prefix&gt;0.0.0.1&lt;/v4-firewall-prefix&gt;

+									  &lt;v4-firewall-prefix-length&gt;1&lt;/v4-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;1&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;1&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v4-firewall-packet-filters&gt;

+									&lt;v4-firewall-packet-filters&gt;

+									  &lt;v4-firewall-prefix&gt;0.0.0.2&lt;/v4-firewall-prefix&gt;

+									  &lt;v4-firewall-prefix-length&gt;2&lt;/v4-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;2&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;2&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v4-firewall-packet-filters&gt;

+									&lt;v6-firewall-packet-filters&gt;

+									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;

+									  &lt;v6-firewall-prefix-length&gt;0&lt;/v6-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;3&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;3&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v6-firewall-packet-filters&gt;

+									&lt;v6-firewall-packet-filters&gt;

+									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;

+									  &lt;v6-firewall-prefix-length&gt;1&lt;/v6-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;4&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;4&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v6-firewall-packet-filters&gt;

+								&lt;/firewall-lite&gt;

+								&lt;pat&gt;

+									&lt;v4-pat-pools&gt;

+										&lt;v4-pat-pool-prefix&gt;192.168.1.44&lt;/v4-pat-pool-prefix&gt;

+										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.5&lt;/v4-pat-pool-next-hop-address&gt;

+										&lt;v4-pat-pool-prefix-length&gt;0&lt;/v4-pat-pool-prefix-length&gt;

+									&lt;/v4-pat-pools&gt;

+									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;

+									&lt;v4-pat-enabled&gt;N&lt;/v4-pat-enabled&gt;

+									&lt;v4-pat-pools&gt;

+										&lt;v4-pat-pool-prefix&gt;192.168.1.45&lt;/v4-pat-pool-prefix&gt;

+										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.6&lt;/v4-pat-pool-next-hop-address&gt;

+										&lt;v4-pat-pool-prefix-length&gt;28&lt;/v4-pat-pool-prefix-length&gt;

+									&lt;/v4-pat-pools&gt;

+								&lt;/pat&gt;

+								&lt;nat&gt;

+								  &lt;v4-nat-enabled&gt;Y&lt;/v4-nat-enabled&gt;

+								  &lt;v4-nat-mapping-entries&gt;

+								    &lt;v4-nat-internal&gt;0.0.0.0&lt;/v4-nat-internal&gt;

+								    &lt;v4-nat-next-hop-address&gt;0.0.0.0&lt;/v4-nat-next-hop-address&gt;

+								    &lt;v4-nat-external&gt;0.0.0.0&lt;/v4-nat-external&gt;

+								  &lt;/v4-nat-mapping-entries&gt;

+								  &lt;v4-nat-mapping-entries&gt;

+								    &lt;v4-nat-internal&gt;0.0.0.1&lt;/v4-nat-internal&gt;

+								    &lt;v4-nat-next-hop-address&gt;0.0.0.1&lt;/v4-nat-next-hop-address&gt;

+								    &lt;v4-nat-external&gt;0.0.0.1&lt;/v4-nat-external&gt;

+								  &lt;/v4-nat-mapping-entries&gt;

+								&lt;/nat&gt;

+								&lt;vr-designation&gt;primary&lt;/vr-designation&gt;

+								&lt;v4-vce-loopback-address&gt;162.200.3.144&lt;/v4-vce-loopback-address&gt;

+								&lt;v6-vr-lan-prefix-length&gt;64&lt;/v6-vr-lan-prefix-length&gt;

+								&lt;v6-vce-wan-address&gt;2001:1890:12e3:2da::&lt;/v6-vce-wan-address&gt;

+								&lt;v6-vr-lan-prefix&gt;2620:0:10d0:f:ffff:ffff:ffff:fffe&lt;/v6-vr-lan-prefix&gt;

+								&lt;v4-vr-lan-prefix-length&gt;24&lt;/v4-vr-lan-prefix-length&gt;

+								&lt;v4-vr-lan-prefix&gt;10.192.27.254&lt;/v4-vr-lan-prefix&gt;

+								&lt;v4-public-lan-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.2&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.1&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.72&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.71&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.68&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.67&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+								&lt;/v4-public-lan-prefixes&gt;

+								&lt;v6-public-lan-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:3da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:4da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+								&lt;/v6-public-lan-prefixes&gt;

+							&lt;/vr-lan-interface&gt;

+							&lt;routing-protocol&gt;none&lt;/routing-protocol&gt;

+						&lt;/vr-lan&gt;

+&lt;ucpe-vms-service-information&gt;				

+ &lt;transport-service-information&gt;

+    &lt;transport-service-type&gt;AVPN&lt;/transport-service-type&gt;

+	&lt;access-circuit-info&gt;

+	   &lt;access-circuit-id&gt;1&lt;/access-circuit-id&gt;

+	   &lt;dual-mode&gt;Active&lt;/dual-mode&gt;

+	&lt;/access-circuit-info&gt;

+	&lt;access-circuit-info&gt;

+	   &lt;access-circuit-id&gt;2&lt;/access-circuit-id&gt;

+	   &lt;dual-mode&gt;Standby&lt;/dual-mode&gt;

+	&lt;/access-circuit-info&gt;	

+ &lt;/transport-service-information&gt;

+ &lt;ucpe-information&gt;

+    &lt;ucpe-host-name&gt;hostname&lt;/ucpe-host-name&gt;

+    &lt;ucpe-activation-code&gt;activecode&lt;/ucpe-activation-code&gt;

+    &lt;out-of-band-management-modem&gt;OOB&lt;/out-of-band-management-modem&gt;

+  &lt;/ucpe-information&gt;

+  &lt;vnf-list&gt;

+	&lt;vnf-information&gt; 

+		&lt;vnf-instance-id&gt;1&lt;/vnf-instance-id&gt; 

+		&lt;vnf-sequence-number&gt;1&lt;/vnf-sequence-number&gt;

+		&lt;vnf-type&gt;ZZ&lt;/vnf-type&gt;

+		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;

+		&lt;vnf-model&gt;MODEL1&lt;/vnf-model&gt;

+		&lt;vnf-id&gt;1&lt;/vnf-id&gt;

+		&lt;prov-status&gt;1&lt;/prov-status&gt;

+		&lt;operational-state&gt;1&lt;/operational-state&gt;

+		&lt;orchestration-status&gt;1&lt;/orchestration-status&gt;

+		&lt;equipment-role&gt;1&lt;/equipment-role&gt;

+    &lt;/vnf-information&gt;

+	&lt;vnf-information&gt; 

+		&lt;vnf-instance-id&gt;2&lt;/vnf-instance-id&gt; 

+		&lt;vnf-sequence-number&gt;2&lt;/vnf-sequence-number&gt;

+		&lt;vnf-type&gt;HY&lt;/vnf-type&gt;

+		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;

+		&lt;vnf-model&gt;MODEL2&lt;/vnf-model&gt;

+		&lt;vnf-id&gt;2&lt;/vnf-id&gt;

+		&lt;prov-status&gt;2&lt;/prov-status&gt;

+		&lt;operational-state&gt;2&lt;/operational-state&gt;

+		&lt;orchestration-status&gt;2&lt;/orchestration-status&gt;

+		&lt;equipment-role&gt;2&lt;/equipment-role&gt;

+    &lt;/vnf-information&gt;					

+  &lt;/vnf-list&gt;

+ &lt;/ucpe-vms-service-information&gt;										

+						&lt;request-information&gt;

+							&lt;request-action&gt;Layer3ServiceActivateRequest&lt;/request-action&gt;

+							&lt;order-number&gt;4281555&lt;/order-number&gt;

+							&lt;request-id&gt;155415ab-b4a7-4382-b4c6-d17d9sm42855&lt;/request-id&gt;

+							&lt;notification-url&gt;https://csi-tst-q22.it.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws&lt;/notification-url&gt;

+							&lt;source&gt;OMX&lt;/source&gt;

+							&lt;order-version&gt;1&lt;/order-version&gt;

+						&lt;/request-information&gt;

+						&lt;sdnc-request-header&gt;

+							&lt;svc-action&gt;activate&lt;/svc-action&gt;

+							&lt;svc-notification-url&gt;https://msojra.mtsnjdcp1.aic.cip.com:8443/adapters/rest/SDNCNotify&lt;/svc-notification-url&gt;

+							&lt;svc-request-id&gt;5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760&lt;/svc-request-id&gt;

+						&lt;/sdnc-request-header&gt;

+						&lt;l2-homing-information&gt;

+							&lt;topology&gt;MultiPoint&lt;/topology&gt;

+							&lt;preferred-aic-clli&gt;MTSNJA4LCP1&lt;/preferred-aic-clli&gt;

+							&lt;evc-name&gt;AS/VLXM/003717//SW&lt;/evc-name&gt;

+						&lt;/l2-homing-information&gt;

+						&lt;service-information&gt;

+							&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;

+							&lt;subscriber-name&gt;ST E2E Test42855_1300004281555&lt;/subscriber-name&gt;

+							&lt;service-type&gt;SDN-ETHERNET-INTERNET&lt;/service-type&gt;

+						&lt;/service-information&gt;

+						&lt;internet-service-change-details&gt;

+							&lt;internet-evc-speed-value&gt;10&lt;/internet-evc-speed-value&gt;

+							&lt;internet-evc-speed-units&gt;Kbps&lt;/internet-evc-speed-units&gt;

+							&lt;t-provided-v4-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+							   &lt;v4-lan-public-prefix&gt;192.168.1.15&lt;/v4-lan-public-prefix&gt;

+							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+							&lt;/t-provided-v4-lan-public-prefixes&gt;

+							&lt;t-provided-v4-lan-public-prefixes&gt;

+							   &lt;request-index&gt;2&lt;/request-index&gt;

+							   &lt;v4-next-hop-address&gt;192.168.1.16&lt;/v4-next-hop-address&gt;

+							   &lt;v4-lan-public-prefix&gt;192.168.1.16&lt;/v4-lan-public-prefix&gt;

+							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+							&lt;/t-provided-v4-lan-public-prefixes&gt;

+							&lt;t-provided-v6-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+							&lt;/t-provided-v6-lan-public-prefixes&gt;

+							&lt;t-provided-v6-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+							&lt;/t-provided-v6-lan-public-prefixes&gt;

+						&lt;/internet-service-change-details&gt;

+					&lt;/service-data&gt;

+				&lt;/layer3-service-list&gt;

+</RequestData>

+</SDNCAdapterCallbackRequest>

+</v1:SDNCAdapterCallback>

+</soapenv:Body>

 </soapenv:Envelope>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml
index a7ac309..09f01fb 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryInstance_Success.xml
@@ -1,4 +1,4 @@
-<result-data>
-  <resource-type>service-instance</resource-type>
-  <resource-link>https://aai-conexus-e2e.test.att.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>

+  <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/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
index d8d10db..1965586 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkId_AAIResponse_NoPayload_Success.xml
@@ -1,73 +1,73 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<l3-network xmlns="http://com.att.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.att.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.att.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.att.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.att.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>
+<?xml version="1.0" encoding="UTF-8"?>

+<l3-network xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
index 292b5e8..48f652c 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef1_AAIResponse_Success.xml
@@ -1,20 +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.att.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://com.att.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 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://com.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/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
index 910f701..c911d32 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/UpdateNetworkV2/updateNetwork_queryNetworkTableRef2_AAIResponse_Success.xml
@@ -1,20 +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.att.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://com.att.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 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://com.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/MSOCommonBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml
index d968bcc..d3f9c1e 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/AddNetworkPolicy_AAIResponse_Success.xml
@@ -1,21 +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.att.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://com.att.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 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://com.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/MSOCommonBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
index 60f3d01..c159e2e 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/GenericVnf.xml
@@ -1,38 +1,38 @@
-<generic-vnf xmlns="http://com.att.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>
+<generic-vnf xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml
index 0442afc..94e0042 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/QueryNetworkPolicy_AAIResponse_Success.xml
@@ -1,21 +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.att.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://com.att.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 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://com.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/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml
index b143e3b..7c67095 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallback.xml
@@ -1,315 +1,315 @@
-<output xmlns="com:att:sdnctl:vnf">
-<vnf-list xmlns="com:att:sdnctl:vnf">
-	<vnf-id>bd1b3789-6474-4935-94b2-90b656e035d0</vnf-id>
-	<service-data>
-		<vnf-id>bd1b3789-6474-4935-94b2-90b656e035d0</vnf-id>
-		<sdnc-request-header>
-			<svc-request-id>9ddf628a-9eca-430e-8974-22d520a31be1</svc-request-id>
-			<svc-action>assign</svc-action>
-			<svc-notification-url>https://msojra.infra.aic.att.net:8443/adapters/rest/SDNCNotify</svc-notification-url>
-		</sdnc-request-header>
-		<service-information>
-			<subscriber-name>notsurewecare</subscriber-name>
-			<service-instance-id>bd1b3789-6474-4935-94b2-90b656e035d0</service-instance-id>
-			<service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>
-			<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
-		</service-information>
-		<oper-status>
-			<order-status>PendingCreate</order-status>
-		</oper-status>
-		<vnf-request-information>
-			<aic-cloud-region>VNN1CA52LCP</aic-cloud-region>
-			<vnf-name>ZVNNMOGX01_base</vnf-name>
-			<generic-vnf-id>afd0f02a-1ddb-43bb-aded-5113e46e82ae</generic-vnf-id>
-			<generic-vnf-type>ZVNN1MOGX01-SVC/ZVNN1MOGX01 - VF AUG 1 1</generic-vnf-type>
-			<generic-vnf-name>ZVNN1MOGX01</generic-vnf-name>
-			<tenant>33d209df14ac4c08ad60747185d2f3e0</tenant>
-			<vnf-id>bd1b3789-6474-4935-94b2-90b656e035d0</vnf-id>
-			<vnf-type>ZVNN1MOGX01 - VF AUG 1::module-0</vnf-type>
-		</vnf-request-information>
-		<vnf-topology-information>
-			<vnf-assignments>
-				<vnf-networks>
-					<network-role>mog_exn</network-role>
-					<network-id>03dbd833-785c-40c0-bf32-37594b5334bc</network-id>
-					<network-name>MNS-25180-P-VNNYCA01_exn_protected_net_1</network-name>
-					<contrail-network-fqdn/>
-					<subnet-id/>
-					<neutron-id>6f82d234-41a4-48e9-a9e8-415667a72929</neutron-id>
-					<sriov-vlan-filter-list>
-						<sriov-vlan-filter>filter1</sriov-vlan-filter>
-					</sriov-vlan-filter-list>
-					<sriov-vlan-filter-list>
-						<sriov-vlan-filter>filter2</sriov-vlan-filter>                         
-                     </sriov-vlan-filter-list>
-				</vnf-networks>
-				<vnf-networks>
-					<network-role>mog_oam</network-role>
-					<network-id>3f181cde-9380-4c20-9d3a-e1a4ee74f994</network-id>
-					<network-name>MNS-25180-P-VNNYCA01_oam_protected_net_1</network-name>
-					<contrail-network-fqdn/>
-					<subnet-id/>
-					<neutron-id>713b6770-13fa-4949-8dbb-a1288c5e5932</neutron-id>
-				</vnf-networks>
-				<vnf-networks>
-					<network-role>mog_cor_B</network-role>
-					<network-id>821a550a-3f50-4725-995b-f212d5caec7c</network-id>
-					<network-name>MNS-25180-P-VNNYCA01_cor_direct_net_1</network-name>
-					<contrail-network-fqdn/>
-					<subnet-id/>
-					<neutron-id>18926e56-12b6-4a4d-98b6-37e0c05626ee</neutron-id>
-				</vnf-networks>
-				<vnf-networks>
-					<network-role>mog_cor_A</network-role>
-					<network-id>3dabf5c0-cffb-420c-8960-8499c74eb25f</network-id>
-					<network-name>MNS-25180-P-VNNYCA01_cor_direct_net_2</network-name>
-					<contrail-network-fqdn/>
-					<subnet-id/>
-					<neutron-id>35530b29-a4de-48ff-a014-111110ccc652</neutron-id>
-				</vnf-networks>
-				<vnf-networks>
-					<network-role>mog_gn</network-role>
-					<network-id>3ce97321-6e7f-49af-bd12-f833e377c310</network-id>
-					<network-name>MNS-25180-P-VNNYCA01_gn_direct_net_1</network-name>
-					<contrail-network-fqdn/>
-					<subnet-id/>
-					<neutron-id>32bfdd2c-28e1-4895-87a6-373bf12c3129</neutron-id>
-				</vnf-networks>
-				<vnf-networks>
-					<network-role>mog_dmz</network-role>
-					<network-id>d43ca910-02a5-47dc-8510-100a68a3c9e0</network-id>
-					<network-name>MNS-25180-P-VNNYCA01_dmz_protected_net_1</network-name>
-					<contrail-network-fqdn/>
-					<subnet-id/>
-					<neutron-id>cb9500fb-943f-412e-aea6-458711564a75</neutron-id>
-				</vnf-networks>
-				<availability-zones>
-					<availability-zone>nova</availability-zone>
-				</availability-zones>
-				<vnf-vms>
-					<vm-type>ps</vm-type>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MPS001</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MPS002</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MPS003</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MPS004</vm-name>
-					</vm-names>
-					<vm-count>4</vm-count>
-					<vm-networks>
-						<network-role>mog_cor_B</network-role>
-						<network-ips>
-							<ip-address>107.224.36.251</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.252</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.253</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.254</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-				</vnf-vms>
-				<vnf-vms>
-					<vm-type>cm</vm-type>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MCM001</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01OAM002</vm-name>
-					</vm-names>
-					<vm-count>1</vm-count>
-					<vm-networks>
-						<network-role>mog_cor_B</network-role>
-						<network-ips>
-							<ip-address>107.224.36.249</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.250</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_oam</network-role>
-						<network-ips>
-							<ip-address>107.239.167.250</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.239.167.251</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-				</vnf-vms>
-				<vnf-vms>
-					<vm-type>oam</vm-type>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01OAM001</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01OAM002</vm-name>
-					</vm-names>
-					<vm-count>2</vm-count>
-					<vm-networks>
-						<network-role>mog_oam</network-role>
-						<network-ips>
-							<ip-address>107.239.167.252</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.239.167.251</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_cor_B</network-role>
-						<network-ips>
-							<ip-address>107.224.36.249</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.250</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-				</vnf-vms>
-				<vnf-vms>
-					<vm-type>pd</vm-type>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MPD001</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MPD002</vm-name>
-					</vm-names>
-					<vm-count>2</vm-count>
-					<vm-networks>
-						<network-role>mog_dmz</network-role>
-						<network-ips>
-							<ip-address>107.225.25.253</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.225.25.254</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip>107.225.254.253</floating-ip>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_oam</network-role>
-						<network-ips>
-							<ip-address>107.239.167.254</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.239.167.253</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip>107.239.167.249</floating-ip>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_exn</network-role>
-						<network-ips>
-							<ip-address>107.224.46.253</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.46.254</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip>107.224.46.252</floating-ip>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_cor_B</network-role>
-						<network-ips>
-							<ip-address>107.224.36.247</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.248</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip>107.224.41.252</floating-ip>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_gn</network-role>
-						<network-ips>
-							<ip-address>107.224.41.253</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.41.254</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip>107.224.41.252</floating-ip>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_cor_A</network-role>
-						<network-ips>
-							<ip-address>107.224.38.253</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.38.254</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-				</vnf-vms>
-				<vnf-vms>
-					<vm-type>sm</vm-type>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MSM001</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MSM002</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MSM003</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MSM004</vm-name>
-					</vm-names>
-					<vm-count>4</vm-count>
-					<vm-networks>
-						<network-role>mog_cor_B</network-role>
-						<network-ips>
-							<ip-address>107.224.36.243</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.244</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.245</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.246</ip-address>
-						</network-ips>
-						<use-dhcp>N</use-dhcp>
-					</vm-networks>
-				</vnf-vms>
-			</vnf-assignments>
-			<vnf-topology-identifier>
-				<vnf-name>ZVNNMOGX01_base</vnf-name>
-				<service-type>SDN-MOBILITY</service-type>
-				<vnf-type>ZVNN1MOGX01 - VF AUG 1::module-0</vnf-type>
-				<generic-vnf-type>ZVNN1MOGX01-SVC/ZVNN1MOGX01 - VF AUG 1 1</generic-vnf-type>
-				<generic-vnf-name>ZVNN1MOGX01</generic-vnf-name>
-			</vnf-topology-identifier>
-		</vnf-topology-information>
-		<request-information>
-			<request-id>9ddf628a-9eca-430e-8974-22d520a31be1</request-id>
-			<notification-url/>
-			<source>PORTAL</source>
-			<request-action>VNFActivateRequest</request-action>
-		</request-information>
-	</service-data>
-	<service-status>
-		<response-code>200</response-code>
-		<final-indicator>Y</final-indicator>
-		<request-status>synccomplete</request-status>
-		<response-timestamp>2016-08-05T16:15:19.398Z</response-timestamp>
-		<rpc-name>vnf-topology-operation</rpc-name>
-		<vnfsdn-action>VNFActivateRequest</vnfsdn-action>
-		<rpc-action>assign</rpc-action>
-	</service-status>
-</vnf-list>
-
-</output>
+<output xmlns="com:att:sdnctl:vnf">

+<vnf-list xmlns="com:att:sdnctl:vnf">

+	<vnf-id>bd1b3789-6474-4935-94b2-90b656e035d0</vnf-id>

+	<service-data>

+		<vnf-id>bd1b3789-6474-4935-94b2-90b656e035d0</vnf-id>

+		<sdnc-request-header>

+			<svc-request-id>9ddf628a-9eca-430e-8974-22d520a31be1</svc-request-id>

+			<svc-action>assign</svc-action>

+			<svc-notification-url>https://msojra.infra.aic.net:8443/adapters/rest/SDNCNotify</svc-notification-url>

+		</sdnc-request-header>

+		<service-information>

+			<subscriber-name>notsurewecare</subscriber-name>

+			<service-instance-id>bd1b3789-6474-4935-94b2-90b656e035d0</service-instance-id>

+			<service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+			<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		</service-information>

+		<oper-status>

+			<order-status>PendingCreate</order-status>

+		</oper-status>

+		<vnf-request-information>

+			<aic-cloud-region>VNN1CA52LCP</aic-cloud-region>

+			<vnf-name>ZVNNMOGX01_base</vnf-name>

+			<generic-vnf-id>afd0f02a-1ddb-43bb-aded-5113e46e82ae</generic-vnf-id>

+			<generic-vnf-type>ZVNN1MOGX01-SVC/ZVNN1MOGX01 - VF AUG 1 1</generic-vnf-type>

+			<generic-vnf-name>ZVNN1MOGX01</generic-vnf-name>

+			<tenant>33d209df14ac4c08ad60747185d2f3e0</tenant>

+			<vnf-id>bd1b3789-6474-4935-94b2-90b656e035d0</vnf-id>

+			<vnf-type>ZVNN1MOGX01 - VF AUG 1::module-0</vnf-type>

+		</vnf-request-information>

+		<vnf-topology-information>

+			<vnf-assignments>

+				<vnf-networks>

+					<network-role>mog_exn</network-role>

+					<network-id>03dbd833-785c-40c0-bf32-37594b5334bc</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_exn_protected_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>6f82d234-41a4-48e9-a9e8-415667a72929</neutron-id>

+					<sriov-vlan-filter-list>

+						<sriov-vlan-filter>filter1</sriov-vlan-filter>

+					</sriov-vlan-filter-list>

+					<sriov-vlan-filter-list>

+						<sriov-vlan-filter>filter2</sriov-vlan-filter>                         

+                     </sriov-vlan-filter-list>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_oam</network-role>

+					<network-id>3f181cde-9380-4c20-9d3a-e1a4ee74f994</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_oam_protected_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>713b6770-13fa-4949-8dbb-a1288c5e5932</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_cor_B</network-role>

+					<network-id>821a550a-3f50-4725-995b-f212d5caec7c</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_cor_direct_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>18926e56-12b6-4a4d-98b6-37e0c05626ee</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_cor_A</network-role>

+					<network-id>3dabf5c0-cffb-420c-8960-8499c74eb25f</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_cor_direct_net_2</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>35530b29-a4de-48ff-a014-111110ccc652</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_gn</network-role>

+					<network-id>3ce97321-6e7f-49af-bd12-f833e377c310</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_gn_direct_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>32bfdd2c-28e1-4895-87a6-373bf12c3129</neutron-id>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>mog_dmz</network-role>

+					<network-id>d43ca910-02a5-47dc-8510-100a68a3c9e0</network-id>

+					<network-name>MNS-25180-P-VNNYCA01_dmz_protected_net_1</network-name>

+					<contrail-network-fqdn/>

+					<subnet-id/>

+					<neutron-id>cb9500fb-943f-412e-aea6-458711564a75</neutron-id>

+				</vnf-networks>

+				<availability-zones>

+					<availability-zone>nova</availability-zone>

+				</availability-zones>

+				<vnf-vms>

+					<vm-type>ps</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MPS001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MPS002</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MPS003</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MPS004</vm-name>

+					</vm-names>

+					<vm-count>4</vm-count>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.251</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.252</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.253</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.254</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+				</vnf-vms>

+				<vnf-vms>

+					<vm-type>cm</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MCM001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01OAM002</vm-name>

+					</vm-names>

+					<vm-count>1</vm-count>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.249</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.250</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_oam</network-role>

+						<network-ips>

+							<ip-address>107.239.167.250</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.239.167.251</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+				</vnf-vms>

+				<vnf-vms>

+					<vm-type>oam</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01OAM001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01OAM002</vm-name>

+					</vm-names>

+					<vm-count>2</vm-count>

+					<vm-networks>

+						<network-role>mog_oam</network-role>

+						<network-ips>

+							<ip-address>107.239.167.252</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.239.167.251</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.249</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.250</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+				</vnf-vms>

+				<vnf-vms>

+					<vm-type>pd</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MPD001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MPD002</vm-name>

+					</vm-names>

+					<vm-count>2</vm-count>

+					<vm-networks>

+						<network-role>mog_dmz</network-role>

+						<network-ips>

+							<ip-address>107.225.25.253</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.225.25.254</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.225.254.253</floating-ip>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_oam</network-role>

+						<network-ips>

+							<ip-address>107.239.167.254</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.239.167.253</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.239.167.249</floating-ip>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_exn</network-role>

+						<network-ips>

+							<ip-address>107.224.46.253</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.46.254</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.224.46.252</floating-ip>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.247</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.248</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.224.41.252</floating-ip>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_gn</network-role>

+						<network-ips>

+							<ip-address>107.224.41.253</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.41.254</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.224.41.252</floating-ip>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_cor_A</network-role>

+						<network-ips>

+							<ip-address>107.224.38.253</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.38.254</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+				</vnf-vms>

+				<vnf-vms>

+					<vm-type>sm</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MSM001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MSM002</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MSM003</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MSM004</vm-name>

+					</vm-names>

+					<vm-count>4</vm-count>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.243</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.244</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.245</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.246</ip-address>

+						</network-ips>

+						<use-dhcp>N</use-dhcp>

+					</vm-networks>

+				</vnf-vms>

+			</vnf-assignments>

+			<vnf-topology-identifier>

+				<vnf-name>ZVNNMOGX01_base</vnf-name>

+				<service-type>SDN-MOBILITY</service-type>

+				<vnf-type>ZVNN1MOGX01 - VF AUG 1::module-0</vnf-type>

+				<generic-vnf-type>ZVNN1MOGX01-SVC/ZVNN1MOGX01 - VF AUG 1 1</generic-vnf-type>

+				<generic-vnf-name>ZVNN1MOGX01</generic-vnf-name>

+			</vnf-topology-identifier>

+		</vnf-topology-information>

+		<request-information>

+			<request-id>9ddf628a-9eca-430e-8974-22d520a31be1</request-id>

+			<notification-url/>

+			<source>PORTAL</source>

+			<request-action>VNFActivateRequest</request-action>

+		</request-information>

+	</service-data>

+	<service-status>

+		<response-code>200</response-code>

+		<final-indicator>Y</final-indicator>

+		<request-status>synccomplete</request-status>

+		<response-timestamp>2016-08-05T16:15:19.398Z</response-timestamp>

+		<rpc-name>vnf-topology-operation</rpc-name>

+		<vnfsdn-action>VNFActivateRequest</vnfsdn-action>

+		<rpc-action>assign</rpc-action>

+	</service-status>

+</vnf-list>

+

+</output>

diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml
index c9f9cf3..9b69fdc 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/SDNCTopologyQueryCallbackVfModule.xml
@@ -1,141 +1,141 @@
-<output xmlns="com:att:sdnctl:vnf">
-	<vnf-list xmlns="com:att:sdnctl:vnf">
-	<vnf-id>28455973-1ee5-4ad1-8d35-c4732679743a</vnf-id>
-	<service-status>
-		<response-code>200</response-code>
-		<final-indicator>Y</final-indicator>
-		<request-status>synccomplete</request-status>
-		<response-timestamp>2016-06-08T19:44:59.138Z</response-timestamp>
-		<rpc-name>vnf-topology-operation</rpc-name>
-		<vnfsdn-action>VNFActivateRequest</vnfsdn-action>
-		<rpc-action>assign</rpc-action>
-	</service-status>
-	<service-data>
-		<vnf-id>28455973-1ee5-4ad1-8d35-c4732679743</vnf-id>
-		<service-information>
-			<subscriber-name>notsurewecare</subscriber-name>
-			<service-instance-id>28455973-1ee5-4ad1-8d35-c4732679743a</service-instance-id>
-			<service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>
-			<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>
-		</service-information>
-		<sdnc-request-header>
-			<svc-request-id>5e168556-a5c6-4813-bff3-cc03007afbbc</svc-request-id>
-			<svc-notification-url>http://mtanjv9moja01-eth1-0.aic.cip.att.com:28080/adapters/rest/SDNCNotify</svc-notification-url>
-			<svc-action>assign</svc-action>
-		</sdnc-request-header>
-		<vnf-request-information>
-			<aic-cloud-region>AAIAIC25</aic-cloud-region>
-			<vnf-name>MSOTEST06-vSAMP3::base::module-0</vnf-name>
-			<generic-vnf-id>91ad7ab0-9ffd-471d-971c-3eb913a2cc75</generic-vnf-id>
-			<generic-vnf-type>Test/vSAMP3 1</generic-vnf-type>
-			<generic-vnf-name>MSOTEST06</generic-vnf-name>
-			<tenant>4ae1d3446a4c48b2bec44b6cfba06d68</tenant>
-			<vnf-id>28455973-1ee5-4ad1-8d35-c4732679743a</vnf-id>
-			<vnf-type>vSAMP3::base::module-0</vnf-type>
-		</vnf-request-information>
-		<oper-status>
-			<order-status>PendingCreate</order-status>			
-		</oper-status>
-		<vnf-topology-information>
-			<vnf-parameters>
-				<vnf-parameter-name>image</vnf-parameter-name>
-				<vnf-parameter-value>Ubuntu_Perf</vnf-parameter-value>
-			</vnf-parameters>
-			<vnf-parameters>
-				<vnf-parameter-name>flavor</vnf-parameter-name>
-				<vnf-parameter-value>m1.small</vnf-parameter-value>
-			</vnf-parameters>
-			<vnf-assignments>
-				<vnf-networks>
-					<network-role>int_imbl</network-role>
-					<network-id>680b7453-0ec4-4d96-b355-280d981d418f</network-id>
-					<network-name>Nimbus-25193-T-Willows2_int_imbl_net_1</network-name>
-					<contrail-network-fqdn>default-domain:Nimbus-25193-T-Willows2:Nimbus-25193-T-Willows2_int_imbl_net_1</contrail-network-fqdn>
-					<subnet-id></subnet-id>
-					<ipv6-subnet-id>775607fb-e16a-45ef-94a7-82fba0d16eec</ipv6-subnet-id>
-					<neutron-id>640d07fb-e16a-45ef-94a7-82fba0d169bf</neutron-id>
-					<sriov-vlan-filter-list>
-						<sriov-vlan-filter>filter1</sriov-vlan-filter>
-					</sriov-vlan-filter-list>
-					<sriov-vlan-filter-list>
-						<sriov-vlan-filter>filter2</sriov-vlan-filter>                         
-                     </sriov-vlan-filter-list>
-				</vnf-networks>
-				<vnf-networks>
-					<network-role>sgi_protected</network-role>
-					<network-id>f9039ce9-e3cf-4716-b2d1-ec7912178ea4</network-id>
-					<network-name>Nimbus-25193-T-Willows2_sgi_protected_net_1</network-name>
-					<contrail-network-fqdn>default-domain:Nimbus-25193-T-Willows2:Nimbus-25193-T-Willows2_sgi_protected_net_1</contrail-network-fqdn>
-					<subnet-id>b9999ce9-e3cf-4716-b2d1-ec791217678c</subnet-id>
-					<ipv6-subnet-id></ipv6-subnet-id>
-					<neutron-id>bf11bba8-b971-4ab5-8281-215b3fedcd3c</neutron-id>
-				</vnf-networks>
-				<vnf-vms>
-					<vm-type>cm</vm-type>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01MCM001</vm-name>
-					</vm-names>
-					<vm-names>
-						<vm-name>ZVNN1MOGX01OAM002</vm-name>
-					</vm-names>
-					<vm-count>1</vm-count>
-					<vm-networks>
-						<network-role>mog_cor_B</network-role>
-						<network-ips>
-							<ip-address>107.224.36.249</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.224.36.250</ip-address>
-						</network-ips>
-						<network-ips-v6>
-							<ip-address-ipv6>2606:ae00:2e01:800::67</ip-address-ipv6>
-						</network-ips-v6>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip>107.224.41.252</floating-ip>
-						<floating-ip-v6>2001:1890:1001:2B32::29:C</floating-ip-v6>
-					</vm-networks>
-					<vm-networks>
-						<network-role>mog_oam</network-role>
-						<network-ips>
-							<ip-address>107.239.167.250</ip-address>
-						</network-ips>
-						<network-ips>
-							<ip-address>107.239.167.251</ip-address>
-						</network-ips>
-						<network-ips-v6>
-							<ip-address-ipv6>aa::aa::aa::aa::aa::aa</ip-address-ipv6>							
-						</network-ips-v6>
-						<network-ips-v6>
-							<ip-address-ipv6>bb::bb::bb::bb::bb::bb</ip-address-ipv6>
-						</network-ips-v6>
-						<interface-route-prefixes>							
-							<interface-route-prefix-cidr>1.2.3.4/26</interface-route-prefix-cidr>
-						</interface-route-prefixes>
-						<interface-route-prefixes>							
-							<interface-route-prefix-cidr>2002::/64</interface-route-prefix-cidr>
-						</interface-route-prefixes>
-						<use-dhcp>N</use-dhcp>
-						<floating-ip-v6>1111:1890:1001:2B32::29:D</floating-ip-v6>
-					</vm-networks>
-				</vnf-vms>
-				<availability-zones>
-					<availability-zone>nova</availability-zone>
-				</availability-zones>
-			</vnf-assignments>
-			<vnf-topology-identifier>
-				<vnf-name>MSOTEST06-vSAMP3::base::module-0</vnf-name>
-				<service-type>SDN-MOBILITY</service-type>
-				<vnf-type>vSAMP3::base::module-0</vnf-type>
-				<generic-vnf-type>Test/vSAMP3 1</generic-vnf-type>
-				<generic-vnf-name>MSOTEST06</generic-vnf-name>
-			</vnf-topology-identifier>			
-		</vnf-topology-information>
-		<request-information>
-			<request-id>5e168556-a5c6-4813-bff3-cc03007afbbc</request-id>
-			<notification-url></notification-url>
-			<source>SoapUI-bns-vf-base-vSAMP3-9001</source>
-			<request-action>VNFActivateRequest</request-action>			
-		</request-information>
-	</service-data>
-</vnf-list>
-</output>
+<output xmlns="com:att:sdnctl:vnf">

+	<vnf-list xmlns="com:att:sdnctl:vnf">

+	<vnf-id>28455973-1ee5-4ad1-8d35-c4732679743a</vnf-id>

+	<service-status>

+		<response-code>200</response-code>

+		<final-indicator>Y</final-indicator>

+		<request-status>synccomplete</request-status>

+		<response-timestamp>2016-06-08T19:44:59.138Z</response-timestamp>

+		<rpc-name>vnf-topology-operation</rpc-name>

+		<vnfsdn-action>VNFActivateRequest</vnfsdn-action>

+		<rpc-action>assign</rpc-action>

+	</service-status>

+	<service-data>

+		<vnf-id>28455973-1ee5-4ad1-8d35-c4732679743</vnf-id>

+		<service-information>

+			<subscriber-name>notsurewecare</subscriber-name>

+			<service-instance-id>28455973-1ee5-4ad1-8d35-c4732679743a</service-instance-id>

+			<service-type>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-type>

+			<service-id>a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb</service-id>

+		</service-information>

+		<sdnc-request-header>

+			<svc-request-id>5e168556-a5c6-4813-bff3-cc03007afbbc</svc-request-id>

+			<svc-notification-url>http://mtanjv9moja01-eth1-0.aic.cip.com:28080/adapters/rest/SDNCNotify</svc-notification-url>

+			<svc-action>assign</svc-action>

+		</sdnc-request-header>

+		<vnf-request-information>

+			<aic-cloud-region>AAIAIC25</aic-cloud-region>

+			<vnf-name>MSOTEST06-vSAMP3::base::module-0</vnf-name>

+			<generic-vnf-id>91ad7ab0-9ffd-471d-971c-3eb913a2cc75</generic-vnf-id>

+			<generic-vnf-type>Test/vSAMP3 1</generic-vnf-type>

+			<generic-vnf-name>MSOTEST06</generic-vnf-name>

+			<tenant>4ae1d3446a4c48b2bec44b6cfba06d68</tenant>

+			<vnf-id>28455973-1ee5-4ad1-8d35-c4732679743a</vnf-id>

+			<vnf-type>vSAMP3::base::module-0</vnf-type>

+		</vnf-request-information>

+		<oper-status>

+			<order-status>PendingCreate</order-status>			

+		</oper-status>

+		<vnf-topology-information>

+			<vnf-parameters>

+				<vnf-parameter-name>image</vnf-parameter-name>

+				<vnf-parameter-value>Ubuntu_Perf</vnf-parameter-value>

+			</vnf-parameters>

+			<vnf-parameters>

+				<vnf-parameter-name>flavor</vnf-parameter-name>

+				<vnf-parameter-value>m1.small</vnf-parameter-value>

+			</vnf-parameters>

+			<vnf-assignments>

+				<vnf-networks>

+					<network-role>int_imbl</network-role>

+					<network-id>680b7453-0ec4-4d96-b355-280d981d418f</network-id>

+					<network-name>Nimbus-25193-T-Willows2_int_imbl_net_1</network-name>

+					<contrail-network-fqdn>default-domain:Nimbus-25193-T-Willows2:Nimbus-25193-T-Willows2_int_imbl_net_1</contrail-network-fqdn>

+					<subnet-id></subnet-id>

+					<ipv6-subnet-id>775607fb-e16a-45ef-94a7-82fba0d16eec</ipv6-subnet-id>

+					<neutron-id>640d07fb-e16a-45ef-94a7-82fba0d169bf</neutron-id>

+					<sriov-vlan-filter-list>

+						<sriov-vlan-filter>filter1</sriov-vlan-filter>

+					</sriov-vlan-filter-list>

+					<sriov-vlan-filter-list>

+						<sriov-vlan-filter>filter2</sriov-vlan-filter>                         

+                     </sriov-vlan-filter-list>

+				</vnf-networks>

+				<vnf-networks>

+					<network-role>sgi_protected</network-role>

+					<network-id>f9039ce9-e3cf-4716-b2d1-ec7912178ea4</network-id>

+					<network-name>Nimbus-25193-T-Willows2_sgi_protected_net_1</network-name>

+					<contrail-network-fqdn>default-domain:Nimbus-25193-T-Willows2:Nimbus-25193-T-Willows2_sgi_protected_net_1</contrail-network-fqdn>

+					<subnet-id>b9999ce9-e3cf-4716-b2d1-ec791217678c</subnet-id>

+					<ipv6-subnet-id></ipv6-subnet-id>

+					<neutron-id>bf11bba8-b971-4ab5-8281-215b3fedcd3c</neutron-id>

+				</vnf-networks>

+				<vnf-vms>

+					<vm-type>cm</vm-type>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01MCM001</vm-name>

+					</vm-names>

+					<vm-names>

+						<vm-name>ZVNN1MOGX01OAM002</vm-name>

+					</vm-names>

+					<vm-count>1</vm-count>

+					<vm-networks>

+						<network-role>mog_cor_B</network-role>

+						<network-ips>

+							<ip-address>107.224.36.249</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.224.36.250</ip-address>

+						</network-ips>

+						<network-ips-v6>

+							<ip-address-ipv6>2606:ae00:2e01:800::67</ip-address-ipv6>

+						</network-ips-v6>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip>107.224.41.252</floating-ip>

+						<floating-ip-v6>2001:1890:1001:2B32::29:C</floating-ip-v6>

+					</vm-networks>

+					<vm-networks>

+						<network-role>mog_oam</network-role>

+						<network-ips>

+							<ip-address>107.239.167.250</ip-address>

+						</network-ips>

+						<network-ips>

+							<ip-address>107.239.167.251</ip-address>

+						</network-ips>

+						<network-ips-v6>

+							<ip-address-ipv6>aa::aa::aa::aa::aa::aa</ip-address-ipv6>							

+						</network-ips-v6>

+						<network-ips-v6>

+							<ip-address-ipv6>bb::bb::bb::bb::bb::bb</ip-address-ipv6>

+						</network-ips-v6>

+						<interface-route-prefixes>							

+							<interface-route-prefix-cidr>1.2.3.4/26</interface-route-prefix-cidr>

+						</interface-route-prefixes>

+						<interface-route-prefixes>							

+							<interface-route-prefix-cidr>2002::/64</interface-route-prefix-cidr>

+						</interface-route-prefixes>

+						<use-dhcp>N</use-dhcp>

+						<floating-ip-v6>1111:1890:1001:2B32::29:D</floating-ip-v6>

+					</vm-networks>

+				</vnf-vms>

+				<availability-zones>

+					<availability-zone>nova</availability-zone>

+				</availability-zones>

+			</vnf-assignments>

+			<vnf-topology-identifier>

+				<vnf-name>MSOTEST06-vSAMP3::base::module-0</vnf-name>

+				<service-type>SDN-MOBILITY</service-type>

+				<vnf-type>vSAMP3::base::module-0</vnf-type>

+				<generic-vnf-type>Test/vSAMP3 1</generic-vnf-type>

+				<generic-vnf-name>MSOTEST06</generic-vnf-name>

+			</vnf-topology-identifier>			

+		</vnf-topology-information>

+		<request-information>

+			<request-id>5e168556-a5c6-4813-bff3-cc03007afbbc</request-id>

+			<notification-url></notification-url>

+			<source>SoapUI-bns-vf-base-vSAMP3-9001</source>

+			<request-action>VNFActivateRequest</request-action>			

+		</request-information>

+	</service-data>

+</vnf-list>

+</output>

diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml
index ad3c359..cfbf903 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-lukewarm.xml
@@ -1,10 +1,10 @@
-<vf-module xmlns="http://com.att.aai.inventory/v7">
-	<vf-module-id>lukewarm</vf-module-id>
-	<vf-module-name>PCRF::module-1</vf-module-name>
-	<heat-stack-id>slowburn</heat-stack-id>
-	<orchestration-status>pending-create</orchestration-status>
-	<is-base-vf-module>true</is-base-vf-module>
-	<resource-version>330-90</resource-version>
-	<persona-model-id>introvert</persona-model-id>
-	<persona-model-version>2.0</persona-model-version>
+<vf-module xmlns="http://com.aai.inventory/v7">

+	<vf-module-id>lukewarm</vf-module-id>

+	<vf-module-name>PCRF::module-1</vf-module-name>

+	<heat-stack-id>slowburn</heat-stack-id>

+	<orchestration-status>pending-create</orchestration-status>

+	<is-base-vf-module>true</is-base-vf-module>

+	<resource-version>330-90</resource-version>

+	<persona-model-id>introvert</persona-model-id>

+	<persona-model-version>2.0</persona-model-version>

 </vf-module>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
index eba91a7..27c8ecf 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-new.xml
@@ -1,9 +1,9 @@
-<vf-module xmlns="http://com.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
index 6d365f7..3370e33 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VfModule-supercool.xml
@@ -1,27 +1,27 @@
-<vf-module xmlns="http://com.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml
index 241e5e3..b44c977 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/VfModularity/VolumeGroup.xml
@@ -1,25 +1,25 @@
-  <volume-group xmlns="http://com.att.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 xmlns="http://com.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/MSOCommonBPMN/src/test/resources/__files/aai-volume-group-id-info.xml b/bpmn/MSOCommonBPMN/src/test/resources/__files/aai-volume-group-id-info.xml
index 37c5155..396f553 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/__files/aai-volume-group-id-info.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/__files/aai-volume-group-id-info.xml
@@ -1,28 +1,28 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<tns:volume-group xmlns:tns="http://com.att.aai.inventory/v6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://com.att.aai.inventory/v6 aai_schema_v6.xsd ">
-  <tns:volume-group-id>VOLUME_GROUP_ID_1</tns:volume-group-id>
-  <tns:volume-group-name>VOLUME_GROUP_ID_1_NAME</tns:volume-group-name>
-  <tns:heat-stack-id>heat-stack-id</tns:heat-stack-id>
-  <tns:vnf-type>vnf-type</tns:vnf-type>
-  <tns:orchestration-status>OK</tns:orchestration-status>
-  <tns:resource-version>1</tns:resource-version>
-  <tns:relationship-list>
-            <tns:relationship>
-               <tns:related-to>tenant</tns:related-to>
-              	 <tns:relationship-data>
-                  <tns:relationship-key>cloud-region.cloud-owner</tns:relationship-key>
-                  <tns:relationship-value>att-aic</tns:relationship-value>
-               </tns:relationship-data>
-               <tns:relationship-data>
-                  <tns:relationship-key>cloud-region.cloud-region-id</tns:relationship-key>
-                  <tns:relationship-value>pdk1</tns:relationship-value>
-               </tns:relationship-data>
-               <tns:relationship-data>
-                  <tns:relationship-key>tenant.tenant-id</tns:relationship-key>
-                  <tns:relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</tns:relationship-value>
-               </tns:relationship-data>
-              </tns:relationship>
-   </tns:relationship-list>
- </tns:volume-group>
- 
-
+<?xml version="1.0" encoding="UTF-8"?>

+<tns:volume-group xmlns:tns="http://com.aai.inventory/v6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://com.aai.inventory/v6 aai_schema_v6.xsd ">

+  <tns:volume-group-id>VOLUME_GROUP_ID_1</tns:volume-group-id>

+  <tns:volume-group-name>VOLUME_GROUP_ID_1_NAME</tns:volume-group-name>

+  <tns:heat-stack-id>heat-stack-id</tns:heat-stack-id>

+  <tns:vnf-type>vnf-type</tns:vnf-type>

+  <tns:orchestration-status>OK</tns:orchestration-status>

+  <tns:resource-version>1</tns:resource-version>

+  <tns:relationship-list>

+            <tns:relationship>

+               <tns:related-to>tenant</tns:related-to>

+              	 <tns:relationship-data>

+                  <tns:relationship-key>cloud-region.cloud-owner</tns:relationship-key>

+                  <tns:relationship-value>att-aic</tns:relationship-value>

+               </tns:relationship-data>

+               <tns:relationship-data>

+                  <tns:relationship-key>cloud-region.cloud-region-id</tns:relationship-key>

+                  <tns:relationship-value>pdk1</tns:relationship-value>

+               </tns:relationship-data>

+               <tns:relationship-data>

+                  <tns:relationship-key>tenant.tenant-id</tns:relationship-key>

+                  <tns:relationship-value>cee6d136-e378-4678-a024-2cd15f0ee0cg</tns:relationship-value>

+               </tns:relationship-data>

+              </tns:relationship>

+   </tns:relationship-list>

+ </tns:volume-group>

+ 

+

diff --git a/bpmn/MSOCommonBPMN/src/test/resources/mso.bpmn.urn.properties b/bpmn/MSOCommonBPMN/src/test/resources/mso.bpmn.urn.properties
index f1a8222..133f585 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/mso.bpmn.urn.properties
+++ b/bpmn/MSOCommonBPMN/src/test/resources/mso.bpmn.urn.properties
@@ -1,86 +1,86 @@
-# 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.callbackRetryAttempts=5
-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
+# 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.callbackRetryAttempts=5

+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

+mso.workflow.notification.name=GenericNotificationService

+

+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
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/sdncCallbackErrorResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/sdncCallbackErrorResponse.xml
index df3a4c4..136917c 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/sdncCallbackErrorResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/sdncCallbackErrorResponse.xml
@@ -1 +1 @@
-<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1"><CallbackHeader><RequestId>1a152f97-566e-4f22-b17b-761f807bfedc</RequestId><ResponseCode>404</ResponseCode><ResponseMessage>Error processing request to SDNC. Not Found. https://sdncodl.it.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/AS%2FVLXM%2F000199%2F%2FSB_INTERNET. SDNC Returned-[error-type:application, error-tag:data-missing, error-message:Request could not be completed because the relevant data model content does not exist.]</ResponseMessage></CallbackHeader></SDNCAdapterCallbackRequest>
\ No newline at end of file
+<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1"><CallbackHeader><RequestId>1a152f97-566e-4f22-b17b-761f807bfedc</RequestId><ResponseCode>404</ResponseCode><ResponseMessage>Error processing request to SDNC. Not Found. https://sdncodl.it.us.aic.cip.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/AS%2FVLXM%2F000199%2F%2FSB_INTERNET. SDNC Returned-[error-type:application, error-tag:data-missing, error-message:Request could not be completed because the relevant data model content does not exist.]</ResponseMessage></CallbackHeader></SDNCAdapterCallbackRequest>
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/sdncDeleteResponse.xml b/bpmn/MSOCommonBPMN/src/test/resources/sdncDeleteResponse.xml
index d656d04..c8a2e30 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/sdncDeleteResponse.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/sdncDeleteResponse.xml
@@ -1,212 +1,212 @@
-<?xml version="1.0" encoding="UTF-8"?> 
-<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">
-			<output xmlns="com:att:sdnctl:nbncapi">
-				<ack-final-indicator>Y</ack-final-indicator>
-  <svc-request-id>SK-2016-10-22-001</svc-request-id>
-  <nbnc-response-information>
-    <response-info>
-      <result>SUCCESS</result>
-      <aai-status>ERROR</aai-status>
-    </response-info>
-    <virtual-datacenter-list>
-      <vdc-id>15001417</vdc-id>
-      <router-list>
-        <router-name>ALPRTR2</router-name>
-        <ipe-loopback-address>1.1.1.2</ipe-loopback-address>
-        <vlan-list>
-          <vlan-id>1255.ae81</vlan-id>
-          <border-element-type>VDBE</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>ALPVDBE1</border-element-id>
-          <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>1995.ae81</vlan-id>
-          <border-element-type>ASBG</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>ALPASBG1</border-element-id>
-          <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/2</vlan-id>
-          <border-element-type>BGF2</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/2</port-id>
-          <border-element-id>ALPBGF2</border-element-id>
-          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/1</vlan-id>
-          <border-element-type>BGF1</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/1</port-id>
-          <border-element-id>ALPBGF1</border-element-id>
-          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <ipe-id>2</ipe-id>
-      </router-list>
-      <router-list>
-        <router-name>ALPRTR1</router-name>
-        <ipe-loopback-address>1.1.1.1</ipe-loopback-address>
-        <vlan-list>
-          <vlan-id>1255.ae81</vlan-id>
-          <border-element-type>VDBE</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>ALPVDBE1</border-element-id>
-          <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>1995.ae81</vlan-id>
-          <border-element-type>ASBG</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>ALPASBG1</border-element-id>
-         <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/2</vlan-id>
-          <border-element-type>BGF2</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/2</port-id>
-          <border-element-id>ALPBGF2</border-element-id>
-          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/1</vlan-id>
-          <border-element-type>BGF1</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/1</port-id>
-          <border-element-id>ALPBGF1</border-element-id>
-          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <ipe-id>1</ipe-id>
-      </router-list>
-    </virtual-datacenter-list>
-    <virtual-datacenter-list>
-      <vdc-id>15001418</vdc-id>
-      <router-list>
-        <router-name>SANRTR1</router-name>
-        <ipe-loopback-address>2.1.1.1</ipe-loopback-address>
-        <vlan-list>
-          <vlan-id>1255.ae81</vlan-id>
-          <border-element-type>VDBE</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>SANVDBE1</border-element-id>
-          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>1995.ae81</vlan-id>
-          <border-element-type>ASBG</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>SANASBG1</border-element-id>
-          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/2</vlan-id>
-          <border-element-type>BGF2</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/2</port-id>
-          <border-element-id>SANBGF2</border-element-id>
-          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/1</vlan-id>
-          <border-element-type>BGF1</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/1</port-id>
-          <border-element-id>SANBGF1</border-element-id>
-          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <ipe-id>1</ipe-id>
-      </router-list>
-      <router-list>
-        <router-name>SANRTR2</router-name>
-        <ipe-loopback-address>2.1.1.2</ipe-loopback-address>
-        <vlan-list>
-          <vlan-id>1255.ae81</vlan-id>
-          <border-element-type>VDBE</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>SANVDBE1</border-element-id>
-          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>1995.ae81</vlan-id>
-          <border-element-type>ASBG</border-element-type>
-          <border-element-tangibility>VIRTUAL</border-element-tangibility>
-          <port-id></port-id>
-          <border-element-id>SANASBG1</border-element-id>
-          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>
-          <lag-id>ae81</lag-id>
-          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/2</vlan-id>
-          <border-element-type>BGF2</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/2</port-id>
-          <border-element-id>SANBGF2</border-element-id>
-          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <vlan-list>
-          <vlan-id>85.xe-10/0/1</vlan-id>
-          <border-element-type>BGF1</border-element-type>
-          <border-element-tangibility>PHYSICAL</border-element-tangibility>
-          <port-id>xe-10/0/1</port-id>
-          <border-element-id>SANBGF1</border-element-id>
-          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>
-          <lag-id></lag-id>
-          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>
-        </vlan-list>
-        <ipe-id>2</ipe-id>
-      </router-list>
-    </virtual-datacenter-list>
-    <service-type>ATT-COLLABORATE</service-type>
-    <interface-status>DISABLE</interface-status>
-    <customer-id>custid-888</customer-id>
-    <service-instance-id>SII-2016-10-22-001</service-instance-id>
-    <provision-type>CUSTOMER</provision-type>
-    <vni-id>100668</vni-id>
-  </nbnc-response-information>
-			</output>
-		</tag0:RequestData>
-	</sdncadapterworkflow:response-data>
+<?xml version="1.0" encoding="UTF-8"?> 

+<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">

+			<output xmlns="com:att:sdnctl:nbncapi">

+				<ack-final-indicator>Y</ack-final-indicator>

+  <svc-request-id>SK-2016-10-22-001</svc-request-id>

+  <nbnc-response-information>

+    <response-info>

+      <result>SUCCESS</result>

+      <aai-status>ERROR</aai-status>

+    </response-info>

+    <virtual-datacenter-list>

+      <vdc-id>15001417</vdc-id>

+      <router-list>

+        <router-name>ALPRTR2</router-name>

+        <ipe-loopback-address>1.1.1.2</ipe-loopback-address>

+        <vlan-list>

+          <vlan-id>1255.ae81</vlan-id>

+          <border-element-type>VDBE</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>ALPVDBE1</border-element-id>

+          <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>1995.ae81</vlan-id>

+          <border-element-type>ASBG</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>ALPASBG1</border-element-id>

+          <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/2</vlan-id>

+          <border-element-type>BGF2</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/2</port-id>

+          <border-element-id>ALPBGF2</border-element-id>

+          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/1</vlan-id>

+          <border-element-type>BGF1</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/1</port-id>

+          <border-element-id>ALPBGF1</border-element-id>

+          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <ipe-id>2</ipe-id>

+      </router-list>

+      <router-list>

+        <router-name>ALPRTR1</router-name>

+        <ipe-loopback-address>1.1.1.1</ipe-loopback-address>

+        <vlan-list>

+          <vlan-id>1255.ae81</vlan-id>

+          <border-element-type>VDBE</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>ALPVDBE1</border-element-id>

+          <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>1995.ae81</vlan-id>

+          <border-element-type>ASBG</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>ALPASBG1</border-element-id>

+         <border-element-v4-subnet>3.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>3:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/2</vlan-id>

+          <border-element-type>BGF2</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/2</port-id>

+          <border-element-id>ALPBGF2</border-element-id>

+          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/1</vlan-id>

+          <border-element-type>BGF1</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/1</port-id>

+          <border-element-id>ALPBGF1</border-element-id>

+          <border-element-v4-subnet>3.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>3:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <ipe-id>1</ipe-id>

+      </router-list>

+    </virtual-datacenter-list>

+    <virtual-datacenter-list>

+      <vdc-id>15001418</vdc-id>

+      <router-list>

+        <router-name>SANRTR1</router-name>

+        <ipe-loopback-address>2.1.1.1</ipe-loopback-address>

+        <vlan-list>

+          <vlan-id>1255.ae81</vlan-id>

+          <border-element-type>VDBE</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>SANVDBE1</border-element-id>

+          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>1995.ae81</vlan-id>

+          <border-element-type>ASBG</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>SANASBG1</border-element-id>

+          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/2</vlan-id>

+          <border-element-type>BGF2</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/2</port-id>

+          <border-element-id>SANBGF2</border-element-id>

+          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/1</vlan-id>

+          <border-element-type>BGF1</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/1</port-id>

+          <border-element-id>SANBGF1</border-element-id>

+          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <ipe-id>1</ipe-id>

+      </router-list>

+      <router-list>

+        <router-name>SANRTR2</router-name>

+        <ipe-loopback-address>2.1.1.2</ipe-loopback-address>

+        <vlan-list>

+          <vlan-id>1255.ae81</vlan-id>

+          <border-element-type>VDBE</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>SANVDBE1</border-element-id>

+          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>1995.ae81</vlan-id>

+          <border-element-type>ASBG</border-element-type>

+          <border-element-tangibility>VIRTUAL</border-element-tangibility>

+          <port-id></port-id>

+          <border-element-id>SANASBG1</border-element-id>

+          <border-element-v4-subnet>4.1.1.0/22</border-element-v4-subnet>

+          <lag-id>ae81</lag-id>

+          <border-element-v6-subnet>4:1:1::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/2</vlan-id>

+          <border-element-type>BGF2</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/2</port-id>

+          <border-element-id>SANBGF2</border-element-id>

+          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <vlan-list>

+          <vlan-id>85.xe-10/0/1</vlan-id>

+          <border-element-type>BGF1</border-element-type>

+          <border-element-tangibility>PHYSICAL</border-element-tangibility>

+          <port-id>xe-10/0/1</port-id>

+          <border-element-id>SANBGF1</border-element-id>

+          <border-element-v4-subnet>4.1.2.0/22</border-element-v4-subnet>

+          <lag-id></lag-id>

+          <border-element-v6-subnet>4:1:2::0/22</border-element-v6-subnet>

+        </vlan-list>

+        <ipe-id>2</ipe-id>

+      </router-list>

+    </virtual-datacenter-list>

+    <service-type>COLLABORATE</service-type>

+    <interface-status>DISABLE</interface-status>

+    <customer-id>custid-888</customer-id>

+    <service-instance-id>SII-2016-10-22-001</service-instance-id>

+    <provision-type>CUSTOMER</provision-type>

+    <vni-id>100668</vni-id>

+  </nbnc-response-information>

+			</output>

+		</tag0:RequestData>

+	</sdncadapterworkflow:response-data>

 </sdncadapterworkflow:SDNCAdapterWorkflowResponse> 
\ No newline at end of file
diff --git a/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest.xml b/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest.xml
index 89e4fef..754dc20 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest.xml
@@ -1,342 +1,342 @@
-<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-    <CallbackHeader>
-        <RequestId>2f7d1b38-2b78-4ef2-8ad6-1552d88620fa</RequestId>
-        <ResponseCode>200</ResponseCode>
-        <ResponseMessage>OK</ResponseMessage>
-    </CallbackHeader>
-    <RequestData xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">				&lt;layer3-service-list xmlns="com:att:sdnctl:l3api"&gt;
-					&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;
-					&lt;service-status&gt;
-						&lt;rpc-name&gt;service-configuration-operation&lt;/rpc-name&gt;
-						&lt;rpc-action&gt;activate&lt;/rpc-action&gt;
-						&lt;request-status&gt;synccomplete&lt;/request-status&gt;
-						&lt;final-indicator&gt;N&lt;/final-indicator&gt;
-						&lt;l3sdn-action&gt;Layer3ServiceActivateRequest&lt;/l3sdn-action&gt;
-						&lt;l3sdn-subaction&gt;SUPP&lt;/l3sdn-subaction&gt;
-						&lt;response-timestamp&gt;2015-04-28T21:32:11.386Z&lt;/response-timestamp&gt;
-					&lt;/service-status&gt;
-					&lt;service-data&gt;
-						&lt;internet-evc-access-information&gt;
-							&lt;ip-version&gt;ds&lt;/ip-version&gt;
-							&lt;internet-evc-speed-value&gt;8&lt;/internet-evc-speed-value&gt;
-							&lt;internet-evc-speed-units&gt;Mbps&lt;/internet-evc-speed-units&gt;
-						&lt;/internet-evc-access-information&gt;
-						&lt;vr-lan xmlns="com:att:sdnctl:l3api"&gt;
-							&lt;vr-lan-interface&gt;
-								&lt;static-routes&gt;
-									&lt;v6-static-routes&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;
-										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;
-									&lt;/v6-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.1&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-									&lt;v6-static-routes&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;
-										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;
-									&lt;/v6-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.2&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-									&lt;v4-static-routes&gt;
-										&lt;v4-static-route-prefix&gt;255.255.252.3&lt;/v4-static-route-prefix&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;
-									&lt;/v4-static-routes&gt;
-								&lt;/static-routes&gt;
-								&lt;dhcp&gt;
-									&lt;v6-dhcp-server-enabled&gt;N&lt;/v6-dhcp-server-enabled&gt;
-									&lt;v4-dhcp-server-enabled&gt;Y&lt;/v4-dhcp-server-enabled&gt;
-									&lt;use-v6-default-pool&gt;N&lt;/use-v6-default-pool&gt;
-									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;
-									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;
-									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v4-address&gt;192.168.1.8&lt;/excluded-v4-address&gt;
-									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;
-									&lt;v4-dhcp-pools&gt;
-										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.1&lt;/v4-dhcp-relay-next-hop-address&gt;
-										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.5&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.1&lt;/v4-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-pool-prefix&gt;192.155.2.3&lt;/v4-dhcp-pool-prefix&gt;
-									&lt;/v4-dhcp-pools&gt;
-									&lt;v4-dhcp-pools&gt;
-										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.2&lt;/v4-dhcp-relay-next-hop-address&gt;
-										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.2&lt;/v4-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v4-addresses&gt;
-											&lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;
-										&lt;/excluded-v4-addresses&gt;
-										&lt;v4-dhcp-pool-prefix&gt;192.155.2.4&lt;/v4-dhcp-pool-prefix&gt;
-									&lt;/v4-dhcp-pools&gt;									
-									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;
-									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v6-address&gt;1:5&lt;/excluded-v6-address&gt;
-									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;
-									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;
-									  &lt;excluded-v6-address&gt;1:6&lt;/excluded-v6-address&gt;
-									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;
-									&lt;v6-dhcp-pools&gt;
-										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;
-										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;
-									&lt;/v6-dhcp-pools&gt;
-									&lt;v6-dhcp-pools&gt;
-										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;
-										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;
-										&lt;excluded-v6-addresses&gt;
-											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;
-										&lt;/excluded-v6-addresses&gt;
-										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;
-									&lt;/v6-dhcp-pools&gt;									
-								&lt;/dhcp&gt;
-								&lt;firewall-lite&gt;
-									&lt;stateful-firewall-lite-v6-enabled&gt;N&lt;/stateful-firewall-lite-v6-enabled&gt;
-									&lt;stateful-firewall-lite-v4-enabled&gt;Y&lt;/stateful-firewall-lite-v4-enabled&gt;
-									&lt;v4-firewall-packet-filters&gt;
-									  &lt;v4-firewall-prefix&gt;0.0.0.1&lt;/v4-firewall-prefix&gt;
-									  &lt;v4-firewall-prefix-length&gt;1&lt;/v4-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;1&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;1&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v4-firewall-packet-filters&gt;
-									&lt;v4-firewall-packet-filters&gt;
-									  &lt;v4-firewall-prefix&gt;0.0.0.2&lt;/v4-firewall-prefix&gt;
-									  &lt;v4-firewall-prefix-length&gt;2&lt;/v4-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;2&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;2&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v4-firewall-packet-filters&gt;
-									&lt;v6-firewall-packet-filters&gt;
-									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;
-									  &lt;v6-firewall-prefix-length&gt;0&lt;/v6-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;3&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;3&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v6-firewall-packet-filters&gt;
-									&lt;v6-firewall-packet-filters&gt;
-									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;
-									  &lt;v6-firewall-prefix-length&gt;1&lt;/v6-firewall-prefix-length&gt;
-									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;
-									  &lt;udp-ports&gt;
-									    &lt;port-number&gt;4&lt;/port-number&gt;
-									  &lt;/udp-ports&gt;
-									  &lt;tcp-ports&gt;
-									    &lt;port-number&gt;4&lt;/port-number&gt;
-									  &lt;/tcp-ports&gt;
-									&lt;/v6-firewall-packet-filters&gt;
-								&lt;/firewall-lite&gt;
-								&lt;pat&gt;
-									&lt;v4-pat-pools&gt;
-										&lt;v4-pat-pool-prefix&gt;192.168.1.44&lt;/v4-pat-pool-prefix&gt;
-										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.5&lt;/v4-pat-pool-next-hop-address&gt;
-										&lt;v4-pat-pool-prefix-length&gt;0&lt;/v4-pat-pool-prefix-length&gt;
-									&lt;/v4-pat-pools&gt;
-									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;
-									&lt;v4-pat-enabled&gt;N&lt;/v4-pat-enabled&gt;
-									&lt;v4-pat-pools&gt;
-										&lt;v4-pat-pool-prefix&gt;192.168.1.45&lt;/v4-pat-pool-prefix&gt;
-										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.6&lt;/v4-pat-pool-next-hop-address&gt;
-										&lt;v4-pat-pool-prefix-length&gt;28&lt;/v4-pat-pool-prefix-length&gt;
-									&lt;/v4-pat-pools&gt;
-								&lt;/pat&gt;
-								&lt;nat&gt;
-								  &lt;v4-nat-enabled&gt;Y&lt;/v4-nat-enabled&gt;
-								  &lt;v4-nat-mapping-entries&gt;
-								    &lt;v4-nat-internal&gt;0.0.0.0&lt;/v4-nat-internal&gt;
-								    &lt;v4-nat-next-hop-address&gt;0.0.0.0&lt;/v4-nat-next-hop-address&gt;
-								    &lt;v4-nat-external&gt;0.0.0.0&lt;/v4-nat-external&gt;
-								  &lt;/v4-nat-mapping-entries&gt;
-								  &lt;v4-nat-mapping-entries&gt;
-								    &lt;v4-nat-internal&gt;0.0.0.1&lt;/v4-nat-internal&gt;
-								    &lt;v4-nat-next-hop-address&gt;0.0.0.1&lt;/v4-nat-next-hop-address&gt;
-								    &lt;v4-nat-external&gt;0.0.0.1&lt;/v4-nat-external&gt;
-								  &lt;/v4-nat-mapping-entries&gt;
-								&lt;/nat&gt;
-								&lt;vr-designation&gt;primary&lt;/vr-designation&gt;
-								&lt;v4-vce-loopback-address&gt;162.200.3.144&lt;/v4-vce-loopback-address&gt;
-								&lt;v6-vr-lan-prefix-length&gt;64&lt;/v6-vr-lan-prefix-length&gt;
-								&lt;v6-vce-wan-address&gt;2001:1890:12e3:2da::&lt;/v6-vce-wan-address&gt;
-								&lt;v6-vr-lan-prefix&gt;2620:0:10d0:f:ffff:ffff:ffff:fffe&lt;/v6-vr-lan-prefix&gt;
-								&lt;v4-vr-lan-prefix-length&gt;24&lt;/v4-vr-lan-prefix-length&gt;
-								&lt;v4-vr-lan-prefix&gt;10.192.27.254&lt;/v4-vr-lan-prefix&gt;
-								&lt;v4-public-lan-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.2&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.1&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.72&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.71&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-									&lt;t-provided-v4-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v4-next-hop-address&gt;192.168.1.68&lt;/v4-next-hop-address&gt;
-										&lt;v4-lan-public-prefix&gt;192.168.1.67&lt;/v4-lan-public-prefix&gt;
-										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-									&lt;/t-provided-v4-lan-public-prefixes&gt;
-								&lt;/v4-public-lan-prefixes&gt;
-								&lt;v6-public-lan-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:3da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-									&lt;t-provided-v6-lan-public-prefixes&gt;
-										&lt;request-index&gt;1&lt;/request-index&gt;
-										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:4da::&lt;/v6-lan-public-prefix&gt;
-										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-									&lt;/t-provided-v6-lan-public-prefixes&gt;
-								&lt;/v6-public-lan-prefixes&gt;
-							&lt;/vr-lan-interface&gt;
-							&lt;routing-protocol&gt;none&lt;/routing-protocol&gt;
-						&lt;/vr-lan&gt;
-&lt;ucpe-vms-service-information&gt;				
- &lt;transport-service-information&gt;
-    &lt;transport-service-type&gt;AVPN&lt;/transport-service-type&gt;
-	&lt;access-circuit-info&gt;
-	   &lt;access-circuit-id&gt;1&lt;/access-circuit-id&gt;
-	   &lt;dual-mode&gt;Active&lt;/dual-mode&gt;
-	&lt;/access-circuit-info&gt;
-	&lt;access-circuit-info&gt;
-	   &lt;access-circuit-id&gt;2&lt;/access-circuit-id&gt;
-	   &lt;dual-mode&gt;Standby&lt;/dual-mode&gt;
-	&lt;/access-circuit-info&gt;	
- &lt;/transport-service-information&gt;
- &lt;ucpe-information&gt;
-    &lt;ucpe-host-name&gt;hostname&lt;/ucpe-host-name&gt;
-    &lt;ucpe-activation-code&gt;activecode&lt;/ucpe-activation-code&gt;
-    &lt;out-of-band-management-modem&gt;OOB&lt;/out-of-band-management-modem&gt;
-  &lt;/ucpe-information&gt;
-  &lt;vnf-list&gt;
-	&lt;vnf-information&gt; 
-		&lt;vnf-instance-id&gt;1&lt;/vnf-instance-id&gt; 
-		&lt;vnf-sequence-number&gt;1&lt;/vnf-sequence-number&gt;
-		&lt;vnf-type&gt;ZZ&lt;/vnf-type&gt;
-		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;
-		&lt;vnf-model&gt;MODEL1&lt;/vnf-model&gt;
-		&lt;vnf-id&gt;1&lt;/vnf-id&gt;
-		&lt;prov-status&gt;1&lt;/prov-status&gt;
-		&lt;operational-state&gt;1&lt;/operational-state&gt;
-		&lt;orchestration-status&gt;1&lt;/orchestration-status&gt;
-		&lt;equipment-role&gt;1&lt;/equipment-role&gt;
-    &lt;/vnf-information&gt;
-	&lt;vnf-information&gt; 
-		&lt;vnf-instance-id&gt;2&lt;/vnf-instance-id&gt; 
-		&lt;vnf-sequence-number&gt;2&lt;/vnf-sequence-number&gt;
-		&lt;vnf-type&gt;HY&lt;/vnf-type&gt;
-		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;
-		&lt;vnf-model&gt;MODEL2&lt;/vnf-model&gt;
-		&lt;vnf-id&gt;2&lt;/vnf-id&gt;
-		&lt;prov-status&gt;2&lt;/prov-status&gt;
-		&lt;operational-state&gt;2&lt;/operational-state&gt;
-		&lt;orchestration-status&gt;2&lt;/orchestration-status&gt;
-		&lt;equipment-role&gt;2&lt;/equipment-role&gt;
-    &lt;/vnf-information&gt;					
-  &lt;/vnf-list&gt;
- &lt;/ucpe-vms-service-information&gt;										
-						&lt;request-information&gt;
-							&lt;request-action&gt;Layer3ServiceActivateRequest&lt;/request-action&gt;
-							&lt;order-number&gt;4281555&lt;/order-number&gt;
-							&lt;request-id&gt;155415ab-b4a7-4382-b4c6-d17d9sm42855&lt;/request-id&gt;
-							&lt;notification-url&gt;https://csi-tst-q22.it.att.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws&lt;/notification-url&gt;
-							&lt;source&gt;OMX&lt;/source&gt;
-							&lt;order-version&gt;1&lt;/order-version&gt;
-						&lt;/request-information&gt;
-						&lt;sdnc-request-header&gt;
-							&lt;svc-action&gt;activate&lt;/svc-action&gt;
-							&lt;svc-notification-url&gt;https://msojra.mtsnjdcp1.aic.cip.att.com:8443/adapters/rest/SDNCNotify&lt;/svc-notification-url&gt;
-							&lt;svc-request-id&gt;5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760&lt;/svc-request-id&gt;
-						&lt;/sdnc-request-header&gt;
-						&lt;l2-homing-information&gt;
-							&lt;topology&gt;MultiPoint&lt;/topology&gt;
-							&lt;preferred-aic-clli&gt;MTSNJA4LCP1&lt;/preferred-aic-clli&gt;
-							&lt;evc-name&gt;AS/VLXM/003717//SW&lt;/evc-name&gt;
-						&lt;/l2-homing-information&gt;
-						&lt;service-information&gt;
-							&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;
-							&lt;subscriber-name&gt;FOUR SEASONS HEATING &amp; COOLING_8310006378683&lt;/subscriber-name&gt;
-							&lt;service-type&gt;SDN-ETHERNET-INTERNET&lt;/service-type&gt;
-						&lt;/service-information&gt;
-						&lt;internet-service-change-details&gt;
-							&lt;internet-evc-speed-value&gt;10&lt;/internet-evc-speed-value&gt;
-							&lt;internet-evc-speed-units&gt;Kbps&lt;/internet-evc-speed-units&gt;
-							&lt;t-provided-v4-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;
-							   &lt;v4-lan-public-prefix&gt;192.168.1.15&lt;/v4-lan-public-prefix&gt;
-							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-							&lt;/t-provided-v4-lan-public-prefixes&gt;
-							&lt;t-provided-v4-lan-public-prefixes&gt;
-							   &lt;request-index&gt;2&lt;/request-index&gt;
-							   &lt;v4-next-hop-address&gt;192.168.1.16&lt;/v4-next-hop-address&gt;
-							   &lt;v4-lan-public-prefix&gt;192.168.1.16&lt;/v4-lan-public-prefix&gt;
-							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;
-							&lt;/t-provided-v4-lan-public-prefixes&gt;
-							&lt;t-provided-v6-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-							&lt;/t-provided-v6-lan-public-prefixes&gt;
-							&lt;t-provided-v6-lan-public-prefixes&gt;
-							   &lt;request-index&gt;1&lt;/request-index&gt;
-							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;
-							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;
-							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;
-							&lt;/t-provided-v6-lan-public-prefixes&gt;
-						&lt;/internet-service-change-details&gt;
-					&lt;/service-data&gt;
-				&lt;/layer3-service-list&gt;
-</RequestData>
-</SDNCAdapterCallbackRequest>
+<SDNCAdapterCallbackRequest xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+    <CallbackHeader>

+        <RequestId>2f7d1b38-2b78-4ef2-8ad6-1552d88620fa</RequestId>

+        <ResponseCode>200</ResponseCode>

+        <ResponseMessage>OK</ResponseMessage>

+    </CallbackHeader>

+    <RequestData xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">				&lt;layer3-service-list xmlns="com:att:sdnctl:l3api"&gt;

+					&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;

+					&lt;service-status&gt;

+						&lt;rpc-name&gt;service-configuration-operation&lt;/rpc-name&gt;

+						&lt;rpc-action&gt;activate&lt;/rpc-action&gt;

+						&lt;request-status&gt;synccomplete&lt;/request-status&gt;

+						&lt;final-indicator&gt;N&lt;/final-indicator&gt;

+						&lt;l3sdn-action&gt;Layer3ServiceActivateRequest&lt;/l3sdn-action&gt;

+						&lt;l3sdn-subaction&gt;SUPP&lt;/l3sdn-subaction&gt;

+						&lt;response-timestamp&gt;2015-04-28T21:32:11.386Z&lt;/response-timestamp&gt;

+					&lt;/service-status&gt;

+					&lt;service-data&gt;

+						&lt;internet-evc-access-information&gt;

+							&lt;ip-version&gt;ds&lt;/ip-version&gt;

+							&lt;internet-evc-speed-value&gt;8&lt;/internet-evc-speed-value&gt;

+							&lt;internet-evc-speed-units&gt;Mbps&lt;/internet-evc-speed-units&gt;

+						&lt;/internet-evc-access-information&gt;

+						&lt;vr-lan xmlns="com:att:sdnctl:l3api"&gt;

+							&lt;vr-lan-interface&gt;

+								&lt;static-routes&gt;

+									&lt;v6-static-routes&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;

+										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;

+									&lt;/v6-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.1&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+									&lt;v6-static-routes&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-static-route-prefix&gt;2001:1890:12e3:2da::&lt;/v6-static-route-prefix&gt;

+										&lt;v6-static-route-prefix-length&gt;28&lt;/v6-static-route-prefix-length&gt;

+									&lt;/v6-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.2&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+									&lt;v4-static-routes&gt;

+										&lt;v4-static-route-prefix&gt;255.255.252.3&lt;/v4-static-route-prefix&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+										&lt;v4-static-route-prefix-length&gt;28&lt;/v4-static-route-prefix-length&gt;

+									&lt;/v4-static-routes&gt;

+								&lt;/static-routes&gt;

+								&lt;dhcp&gt;

+									&lt;v6-dhcp-server-enabled&gt;N&lt;/v6-dhcp-server-enabled&gt;

+									&lt;v4-dhcp-server-enabled&gt;Y&lt;/v4-dhcp-server-enabled&gt;

+									&lt;use-v6-default-pool&gt;N&lt;/use-v6-default-pool&gt;

+									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;

+									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;

+									&lt;excluded-v4-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v4-address&gt;192.168.1.8&lt;/excluded-v4-address&gt;

+									&lt;/excluded-v4-dhcp-addresses-from-default-pool&gt;

+									&lt;v4-dhcp-pools&gt;

+										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.1&lt;/v4-dhcp-relay-next-hop-address&gt;

+										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.5&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.1&lt;/v4-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-pool-prefix&gt;192.155.2.3&lt;/v4-dhcp-pool-prefix&gt;

+									&lt;/v4-dhcp-pools&gt;

+									&lt;v4-dhcp-pools&gt;

+										&lt;v4-dhcp-relay-next-hop-address&gt;1.1.1.2&lt;/v4-dhcp-relay-next-hop-address&gt;

+										&lt;v4-dhcp-pool-prefix-length&gt;28&lt;/v4-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.6&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-relay-gateway-address&gt;2.2.2.2&lt;/v4-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v4-addresses&gt;

+											&lt;excluded-v4-address&gt;192.168.1.7&lt;/excluded-v4-address&gt;

+										&lt;/excluded-v4-addresses&gt;

+										&lt;v4-dhcp-pool-prefix&gt;192.155.2.4&lt;/v4-dhcp-pool-prefix&gt;

+									&lt;/v4-dhcp-pools&gt;									

+									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;

+									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v6-address&gt;1:5&lt;/excluded-v6-address&gt;

+									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;

+									&lt;excluded-v6-dhcp-addresses-from-default-pool&gt;

+									  &lt;excluded-v6-address&gt;1:6&lt;/excluded-v6-address&gt;

+									&lt;/excluded-v6-dhcp-addresses-from-default-pool&gt;

+									&lt;v6-dhcp-pools&gt;

+										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;

+										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;

+									&lt;/v6-dhcp-pools&gt;

+									&lt;v6-dhcp-pools&gt;

+										&lt;v6-dhcp-relay-next-hop-address&gt;4:4&lt;/v6-dhcp-relay-next-hop-address&gt;

+										&lt;v6-dhcp-pool-prefix-length&gt;28&lt;/v6-dhcp-pool-prefix-length&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;1:1&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-relay-gateway-address&gt;3:3&lt;/v6-dhcp-relay-gateway-address&gt;

+										&lt;excluded-v6-addresses&gt;

+											&lt;excluded-v6-address&gt;2:2&lt;/excluded-v6-address&gt;

+										&lt;/excluded-v6-addresses&gt;

+										&lt;v6-dhcp-pool-prefix&gt;0:0&lt;/v6-dhcp-pool-prefix&gt;

+									&lt;/v6-dhcp-pools&gt;									

+								&lt;/dhcp&gt;

+								&lt;firewall-lite&gt;

+									&lt;stateful-firewall-lite-v6-enabled&gt;N&lt;/stateful-firewall-lite-v6-enabled&gt;

+									&lt;stateful-firewall-lite-v4-enabled&gt;Y&lt;/stateful-firewall-lite-v4-enabled&gt;

+									&lt;v4-firewall-packet-filters&gt;

+									  &lt;v4-firewall-prefix&gt;0.0.0.1&lt;/v4-firewall-prefix&gt;

+									  &lt;v4-firewall-prefix-length&gt;1&lt;/v4-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;1&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;1&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v4-firewall-packet-filters&gt;

+									&lt;v4-firewall-packet-filters&gt;

+									  &lt;v4-firewall-prefix&gt;0.0.0.2&lt;/v4-firewall-prefix&gt;

+									  &lt;v4-firewall-prefix-length&gt;2&lt;/v4-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;2&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;2&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v4-firewall-packet-filters&gt;

+									&lt;v6-firewall-packet-filters&gt;

+									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;

+									  &lt;v6-firewall-prefix-length&gt;0&lt;/v6-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;3&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;3&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v6-firewall-packet-filters&gt;

+									&lt;v6-firewall-packet-filters&gt;

+									  &lt;v6-firewall-prefix&gt;:&lt;/v6-firewall-prefix&gt;

+									  &lt;v6-firewall-prefix-length&gt;1&lt;/v6-firewall-prefix-length&gt;

+									  &lt;allow-icmp-ping&gt;Y&lt;/allow-icmp-ping&gt;

+									  &lt;udp-ports&gt;

+									    &lt;port-number&gt;4&lt;/port-number&gt;

+									  &lt;/udp-ports&gt;

+									  &lt;tcp-ports&gt;

+									    &lt;port-number&gt;4&lt;/port-number&gt;

+									  &lt;/tcp-ports&gt;

+									&lt;/v6-firewall-packet-filters&gt;

+								&lt;/firewall-lite&gt;

+								&lt;pat&gt;

+									&lt;v4-pat-pools&gt;

+										&lt;v4-pat-pool-prefix&gt;192.168.1.44&lt;/v4-pat-pool-prefix&gt;

+										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.5&lt;/v4-pat-pool-next-hop-address&gt;

+										&lt;v4-pat-pool-prefix-length&gt;0&lt;/v4-pat-pool-prefix-length&gt;

+									&lt;/v4-pat-pools&gt;

+									&lt;use-v4-default-pool&gt;Y&lt;/use-v4-default-pool&gt;

+									&lt;v4-pat-enabled&gt;N&lt;/v4-pat-enabled&gt;

+									&lt;v4-pat-pools&gt;

+										&lt;v4-pat-pool-prefix&gt;192.168.1.45&lt;/v4-pat-pool-prefix&gt;

+										&lt;v4-pat-pool-next-hop-address&gt;192.168.1.6&lt;/v4-pat-pool-next-hop-address&gt;

+										&lt;v4-pat-pool-prefix-length&gt;28&lt;/v4-pat-pool-prefix-length&gt;

+									&lt;/v4-pat-pools&gt;

+								&lt;/pat&gt;

+								&lt;nat&gt;

+								  &lt;v4-nat-enabled&gt;Y&lt;/v4-nat-enabled&gt;

+								  &lt;v4-nat-mapping-entries&gt;

+								    &lt;v4-nat-internal&gt;0.0.0.0&lt;/v4-nat-internal&gt;

+								    &lt;v4-nat-next-hop-address&gt;0.0.0.0&lt;/v4-nat-next-hop-address&gt;

+								    &lt;v4-nat-external&gt;0.0.0.0&lt;/v4-nat-external&gt;

+								  &lt;/v4-nat-mapping-entries&gt;

+								  &lt;v4-nat-mapping-entries&gt;

+								    &lt;v4-nat-internal&gt;0.0.0.1&lt;/v4-nat-internal&gt;

+								    &lt;v4-nat-next-hop-address&gt;0.0.0.1&lt;/v4-nat-next-hop-address&gt;

+								    &lt;v4-nat-external&gt;0.0.0.1&lt;/v4-nat-external&gt;

+								  &lt;/v4-nat-mapping-entries&gt;

+								&lt;/nat&gt;

+								&lt;vr-designation&gt;primary&lt;/vr-designation&gt;

+								&lt;v4-vce-loopback-address&gt;162.200.3.144&lt;/v4-vce-loopback-address&gt;

+								&lt;v6-vr-lan-prefix-length&gt;64&lt;/v6-vr-lan-prefix-length&gt;

+								&lt;v6-vce-wan-address&gt;2001:1890:12e3:2da::&lt;/v6-vce-wan-address&gt;

+								&lt;v6-vr-lan-prefix&gt;2620:0:10d0:f:ffff:ffff:ffff:fffe&lt;/v6-vr-lan-prefix&gt;

+								&lt;v4-vr-lan-prefix-length&gt;24&lt;/v4-vr-lan-prefix-length&gt;

+								&lt;v4-vr-lan-prefix&gt;10.192.27.254&lt;/v4-vr-lan-prefix&gt;

+								&lt;v4-public-lan-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.2&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.1&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.72&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.71&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+									&lt;t-provided-v4-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v4-next-hop-address&gt;192.168.1.68&lt;/v4-next-hop-address&gt;

+										&lt;v4-lan-public-prefix&gt;192.168.1.67&lt;/v4-lan-public-prefix&gt;

+										&lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+									&lt;/t-provided-v4-lan-public-prefixes&gt;

+								&lt;/v4-public-lan-prefixes&gt;

+								&lt;v6-public-lan-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:3da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+									&lt;t-provided-v6-lan-public-prefixes&gt;

+										&lt;request-index&gt;1&lt;/request-index&gt;

+										&lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+										&lt;v6-lan-public-prefix&gt;2001:1890:12e3:4da::&lt;/v6-lan-public-prefix&gt;

+										&lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+									&lt;/t-provided-v6-lan-public-prefixes&gt;

+								&lt;/v6-public-lan-prefixes&gt;

+							&lt;/vr-lan-interface&gt;

+							&lt;routing-protocol&gt;none&lt;/routing-protocol&gt;

+						&lt;/vr-lan&gt;

+&lt;ucpe-vms-service-information&gt;				

+ &lt;transport-service-information&gt;

+    &lt;transport-service-type&gt;AVPN&lt;/transport-service-type&gt;

+	&lt;access-circuit-info&gt;

+	   &lt;access-circuit-id&gt;1&lt;/access-circuit-id&gt;

+	   &lt;dual-mode&gt;Active&lt;/dual-mode&gt;

+	&lt;/access-circuit-info&gt;

+	&lt;access-circuit-info&gt;

+	   &lt;access-circuit-id&gt;2&lt;/access-circuit-id&gt;

+	   &lt;dual-mode&gt;Standby&lt;/dual-mode&gt;

+	&lt;/access-circuit-info&gt;	

+ &lt;/transport-service-information&gt;

+ &lt;ucpe-information&gt;

+    &lt;ucpe-host-name&gt;hostname&lt;/ucpe-host-name&gt;

+    &lt;ucpe-activation-code&gt;activecode&lt;/ucpe-activation-code&gt;

+    &lt;out-of-band-management-modem&gt;OOB&lt;/out-of-band-management-modem&gt;

+  &lt;/ucpe-information&gt;

+  &lt;vnf-list&gt;

+	&lt;vnf-information&gt; 

+		&lt;vnf-instance-id&gt;1&lt;/vnf-instance-id&gt; 

+		&lt;vnf-sequence-number&gt;1&lt;/vnf-sequence-number&gt;

+		&lt;vnf-type&gt;ZZ&lt;/vnf-type&gt;

+		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;

+		&lt;vnf-model&gt;MODEL1&lt;/vnf-model&gt;

+		&lt;vnf-id&gt;1&lt;/vnf-id&gt;

+		&lt;prov-status&gt;1&lt;/prov-status&gt;

+		&lt;operational-state&gt;1&lt;/operational-state&gt;

+		&lt;orchestration-status&gt;1&lt;/orchestration-status&gt;

+		&lt;equipment-role&gt;1&lt;/equipment-role&gt;

+    &lt;/vnf-information&gt;

+	&lt;vnf-information&gt; 

+		&lt;vnf-instance-id&gt;2&lt;/vnf-instance-id&gt; 

+		&lt;vnf-sequence-number&gt;2&lt;/vnf-sequence-number&gt;

+		&lt;vnf-type&gt;HY&lt;/vnf-type&gt;

+		&lt;vnf-vendor&gt;JUNIPER&lt;/vnf-vendor&gt;

+		&lt;vnf-model&gt;MODEL2&lt;/vnf-model&gt;

+		&lt;vnf-id&gt;2&lt;/vnf-id&gt;

+		&lt;prov-status&gt;2&lt;/prov-status&gt;

+		&lt;operational-state&gt;2&lt;/operational-state&gt;

+		&lt;orchestration-status&gt;2&lt;/orchestration-status&gt;

+		&lt;equipment-role&gt;2&lt;/equipment-role&gt;

+    &lt;/vnf-information&gt;					

+  &lt;/vnf-list&gt;

+ &lt;/ucpe-vms-service-information&gt;										

+						&lt;request-information&gt;

+							&lt;request-action&gt;Layer3ServiceActivateRequest&lt;/request-action&gt;

+							&lt;order-number&gt;4281555&lt;/order-number&gt;

+							&lt;request-id&gt;155415ab-b4a7-4382-b4c6-d17d9sm42855&lt;/request-id&gt;

+							&lt;notification-url&gt;https://csi-tst-q22.it.com:22443/Services/com/cingular/csi/sdn/SendManagedNetworkStatusNotification.jws&lt;/notification-url&gt;

+							&lt;source&gt;OMX&lt;/source&gt;

+							&lt;order-version&gt;1&lt;/order-version&gt;

+						&lt;/request-information&gt;

+						&lt;sdnc-request-header&gt;

+							&lt;svc-action&gt;activate&lt;/svc-action&gt;

+							&lt;svc-notification-url&gt;https://msojra.mtsnjdcp1.aic.cip.com:8443/adapters/rest/SDNCNotify&lt;/svc-notification-url&gt;

+							&lt;svc-request-id&gt;5b1f3c5d-cdf9-488d-8a4b-d3f1229d7760&lt;/svc-request-id&gt;

+						&lt;/sdnc-request-header&gt;

+						&lt;l2-homing-information&gt;

+							&lt;topology&gt;MultiPoint&lt;/topology&gt;

+							&lt;preferred-aic-clli&gt;MTSNJA4LCP1&lt;/preferred-aic-clli&gt;

+							&lt;evc-name&gt;AS/VLXM/003717//SW&lt;/evc-name&gt;

+						&lt;/l2-homing-information&gt;

+						&lt;service-information&gt;

+							&lt;service-instance-id&gt;FK/VLXM/003717//SW_INTERNET&lt;/service-instance-id&gt;

+							&lt;subscriber-name&gt;FOUR SEASONS HEATING &amp; COOLING_8310006378683&lt;/subscriber-name&gt;

+							&lt;service-type&gt;SDN-ETHERNET-INTERNET&lt;/service-type&gt;

+						&lt;/service-information&gt;

+						&lt;internet-service-change-details&gt;

+							&lt;internet-evc-speed-value&gt;10&lt;/internet-evc-speed-value&gt;

+							&lt;internet-evc-speed-units&gt;Kbps&lt;/internet-evc-speed-units&gt;

+							&lt;t-provided-v4-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v4-next-hop-address&gt;192.168.1.15&lt;/v4-next-hop-address&gt;

+							   &lt;v4-lan-public-prefix&gt;192.168.1.15&lt;/v4-lan-public-prefix&gt;

+							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+							&lt;/t-provided-v4-lan-public-prefixes&gt;

+							&lt;t-provided-v4-lan-public-prefixes&gt;

+							   &lt;request-index&gt;2&lt;/request-index&gt;

+							   &lt;v4-next-hop-address&gt;192.168.1.16&lt;/v4-next-hop-address&gt;

+							   &lt;v4-lan-public-prefix&gt;192.168.1.16&lt;/v4-lan-public-prefix&gt;

+							   &lt;v4-lan-public-prefix-length&gt;28&lt;/v4-lan-public-prefix-length&gt;

+							&lt;/t-provided-v4-lan-public-prefixes&gt;

+							&lt;t-provided-v6-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+							&lt;/t-provided-v6-lan-public-prefixes&gt;

+							&lt;t-provided-v6-lan-public-prefixes&gt;

+							   &lt;request-index&gt;1&lt;/request-index&gt;

+							   &lt;v6-next-hop-address&gt;2001:1890:12e3:2da::&lt;/v6-next-hop-address&gt;

+							   &lt;v6-lan-public-prefix&gt;2001:1890:12e3:2da::&lt;/v6-lan-public-prefix&gt;

+							   &lt;v6-lan-public-prefix-length&gt;28&lt;/v6-lan-public-prefix-length&gt;

+							&lt;/t-provided-v6-lan-public-prefixes&gt;

+						&lt;/internet-service-change-details&gt;

+					&lt;/service-data&gt;

+				&lt;/layer3-service-list&gt;

+</RequestData>

+</SDNCAdapterCallbackRequest>

diff --git a/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest_404CallBack.xml b/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest_404CallBack.xml
index 5808444..aa481ea 100644
--- a/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest_404CallBack.xml
+++ b/bpmn/MSOCommonBPMN/src/test/resources/sdncadaptercallbackrequest_404CallBack.xml
@@ -1,13 +1,13 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<SDNCAdapterCallbackRequest
-	xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">
-	<CallbackHeader>
-		<RequestId>39542e39-ccc3-4d1a-8b79-04ce88526613</RequestId>
-		<ResponseCode>404</ResponseCode>
-		<ResponseMessage>Error processing request to SDNC. Not Found.
-			https://sdncodl.us.aic.cip.att.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.
-			SDNC Returned-[error-type:application, error-tag:data-missing,
-			error-message:Request could not be completed because the relevant
-			data model content does not exist.]</ResponseMessage>
-	</CallbackHeader>
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

+<SDNCAdapterCallbackRequest

+	xmlns="http://org.openecomp/workflow/sdnc/adapter/schema/v1">

+	<CallbackHeader>

+		<RequestId>39542e39-ccc3-4d1a-8b79-04ce88526613</RequestId>

+		<ResponseCode>404</ResponseCode>

+		<ResponseMessage>Error processing request to SDNC. Not Found.

+			https://sdncodl.us.aic.cip.com:8443/restconf/config/L3SDN-API:services/layer3-service-list/MVM%2FVLXP%2F000855%2F%2FShakeout.

+			SDNC Returned-[error-type:application, error-tag:data-missing,

+			error-message:Request could not be completed because the relevant

+			data model content does not exist.]</ResponseMessage>

+	</CallbackHeader>

 </SDNCAdapterCallbackRequest>
\ No newline at end of file