diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy
index 59b34c4..79b40ba 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/MsoGroovyTest.groovy
@@ -57,9 +57,10 @@
     protected static final String CLOUD_OWNER = Defaults.CLOUD_OWNER.toString();
 
     protected void init(String procName){
-        mockExecution = setupMock(procName)
-        when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
+        //    mockExecution = setupMock(procName)
+        //   when(mockExecution.getVariable("isDebugLogEnabled")).thenReturn("true")
         client = mock(AAIResourcesClient.class)
+        mockExecution = mock(ExecutionEntity.class)
     }
 
     protected ExecutionEntity setupMock(String procName) {
diff --git a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy
index 99b178c..39aadd2 100644
--- a/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy
+++ b/bpmn/MSOCommonBPMN/src/test/groovy/org/onap/so/bpmn/common/scripts/UpdateAAIVfModuleTest.groovy
@@ -25,7 +25,7 @@
 import static org.mockito.Mockito.*
 
 import javax.ws.rs.NotFoundException
-
+import org.camunda.bpm.engine.ProcessEngineServices
 import org.camunda.bpm.engine.delegate.BpmnError
 import org.camunda.bpm.engine.impl.persistence.entity.ExecutionEntity
 import org.junit.Before
@@ -57,6 +57,7 @@
     void init() throws IOException {
         super.init("UpdateAAIVfModule")
         when(updateAAIVfModule.getAAIClient()).thenReturn(client)
+        mockExecution = setupMock("UpdateAAIVfModule")
     }
 
     @Test
@@ -110,7 +111,7 @@
         when(mockExecution.getVariable(prefix + "getVfModuleResponse")).thenReturn(vfModule)
         doNothing().when(client).update(isA(AAIResourceUri.class) as AAIResourceUri, anyObject())
         updateAAIVfModule.updateVfModule(mockExecution)
-		verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 200)
+        verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 200)
     }
 
     @Test
@@ -126,7 +127,7 @@
         doThrow(new NotFoundException("Vf Module not found")).when(client).update(isA(AAIResourceUri.class) as AAIResourceUri, anyObject())
         thrown.expect(BpmnError.class)
         updateAAIVfModule.updateVfModule(mockExecution)
-		verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 404)
+        verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 404)
     }
 
 
@@ -143,7 +144,6 @@
         doThrow(new IllegalStateException("Error in AAI client")).when(client).update(isA(AAIResourceUri.class) as AAIResourceUri, anyObject())
         thrown.expect(BpmnError.class)
         updateAAIVfModule.updateVfModule(mockExecution)
-		verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 500)
-
+        verify(mockExecution).setVariable("UAAIVfMod_updateVfModuleResponseCode", 500)
     }
 }
