diff --git a/internal/test/mocks/mock_appif.go b/internal/test/mocks/mock_appif.go
index 4c8b7f7..b61576c 100644
--- a/internal/test/mocks/mock_appif.go
+++ b/internal/test/mocks/mock_appif.go
@@ -214,22 +214,24 @@
 	return false
 }
 
-	// CheckAndDeactivateService mocks base method.
-	func (m *MockApp) CheckAndDeactivateService(arg0 context.Context, arg1 *of.VoltSubFlow, arg2 string, arg3 string) {
-		 m.ctrl.T.Helper()
-		m.ctrl.Call(m, "CheckAndDeactivateService", arg0, arg1, arg2, arg3)
-	 }
+// CheckAndDeactivateService mocks base method.
+func (m *MockApp) CheckAndDeactivateService(arg0 context.Context, arg1 *of.VoltSubFlow, arg2 string, arg3 string) {
+	m.ctrl.T.Helper()
+	m.ctrl.Call(m, "CheckAndDeactivateService", arg0, arg1, arg2, arg3)
+}
 
 // IsFlowDelThresholdReached indicates an expected call of IsFlowDelThresholdReached.
 func (mr *MockAppMockRecorder) IsFlowDelThresholdReached(arg0, arg1, arg2 interface{}) *gomock.Call {
 	mr.mock.ctrl.T.Helper()
 	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsFlowDelThresholdReached", reflect.TypeOf((*MockApp)(nil).IsFlowDelThresholdReached), arg0, arg1, arg2)
 }
-	// CheckAndDeactivateService indicates an expected call of CheckAndDeactivateService.
-	func (mr *MockAppMockRecorder) CheckAndDeactivateService(arg0, arg1, arg2, arg3 interface{}) *gomock.Call {
-		 mr.mock.ctrl.T.Helper()
-		return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckAndDeactivateService", reflect.TypeOf((*MockApp)(nil).CheckAndDeactivateService), arg0, arg1, arg2)
-	 }
+
+// CheckAndDeactivateService indicates an expected call of CheckAndDeactivateService.
+func (mr *MockAppMockRecorder) CheckAndDeactivateService(arg0, arg1, arg2, arg3 interface{}) *gomock.Call {
+	mr.mock.ctrl.T.Helper()
+	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CheckAndDeactivateService", reflect.TypeOf((*MockApp)(nil).CheckAndDeactivateService), arg0, arg1, arg2)
+}
+
 // SetRebootFlag mocks base method.
 func (m *MockApp) SetRebootFlag(arg0 bool) {
 	m.ctrl.T.Helper()
diff --git a/internal/test/mocks/mock_voltha.pb.go b/internal/test/mocks/mock_voltha.pb.go
index 078847d..f1d988f 100644
--- a/internal/test/mocks/mock_voltha.pb.go
+++ b/internal/test/mocks/mock_voltha.pb.go
@@ -6,8 +6,8 @@
 
 import (
 	context "context"
-	reflect "reflect"
 	voltha "github.com/opencord/voltha-protos/v5/go/voltha"
+	reflect "reflect"
 
 	gomock "github.com/golang/mock/gomock"
 	empty "github.com/golang/protobuf/ptypes/empty"
@@ -3197,4 +3197,4 @@
 func (mr *MockVolthaService_ReceiveChangeEventsServerMockRecorder) SetTrailer(arg0 interface{}) *gomock.Call {
 	mr.mock.ctrl.T.Helper()
 	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockVolthaService_ReceiveChangeEventsServer)(nil).SetTrailer), arg0)
-}
\ No newline at end of file
+}
