diff --git a/internal/pkg/application/dhcprelay_test.go b/internal/pkg/application/dhcprelay_test.go
index d27ee8e..0b3989f 100644
--- a/internal/pkg/application/dhcprelay_test.go
+++ b/internal/pkg/application/dhcprelay_test.go
@@ -1018,22 +1018,23 @@
 				}
 			case "ProcessUDP6Packet_DHCPv6MsgTypeAdvertise":
 				dhcpv6.MsgType = layers.DHCPv6MsgTypeAdvertise
-				pkt.EXPECT().Layer(layers.LayerTypeDHCPv6).Return(dhcpv6).Times(2)
+				pkt.EXPECT().Layer(layers.LayerTypeDHCPv6).Return(dhcpv6).AnyTimes()
 				if got := va.ProcessUDP6Packet(tt.args.cntx, tt.args.device, tt.args.port, tt.args.pkt); !reflect.DeepEqual(got, tt.want) {
 					t.Errorf("VoltApplication.ProcessUDP6Packet() = %v, want %v", got, tt.want)
 				}
 			case "ProcessUDP6Packet_DHCPv6MsgTypeRelayForward":
 				dhcpv6.MsgType = layers.DHCPv6MsgTypeRelayForward
-				pkt.EXPECT().Layer(layers.LayerTypeDHCPv6).Return(dhcpv6).Times(2)
+				pkt.EXPECT().Layer(layers.LayerTypeDHCPv6).Return(dhcpv6).AnyTimes()
 				if got := va.ProcessUDP6Packet(tt.args.cntx, tt.args.device, tt.args.port, tt.args.pkt); !reflect.DeepEqual(got, tt.want) {
 					t.Errorf("VoltApplication.ProcessUDP6Packet() = %v, want %v", got, tt.want)
 				}
 			case "ProcessUDP6Packet_DHCPv6MsgTypeRelayReply":
 				dhcpv6.MsgType = layers.DHCPv6MsgTypeRelayReply
-				pkt.EXPECT().Data().Times(1)
-				pkt.EXPECT().Layer(layers.LayerTypeEthernet).Return(eth).Times(1)
-				pkt.EXPECT().Layer(layers.LayerTypeIPv6).Return(ipv6).Times(1)
-				pkt.EXPECT().Layer(layers.LayerTypeUDP).Return(uup).Times(1)
+				pkt.EXPECT().Layer(layers.LayerTypeDHCPv6).Return(dhcpv6).AnyTimes()
+				pkt.EXPECT().Data().AnyTimes()
+				pkt.EXPECT().Layer(layers.LayerTypeEthernet).Return(eth).AnyTimes()
+				pkt.EXPECT().Layer(layers.LayerTypeIPv6).Return(ipv6).AnyTimes()
+				pkt.EXPECT().Layer(layers.LayerTypeUDP).Return(uup).AnyTimes()
 				if got := va.ProcessUDP6Packet(tt.args.cntx, tt.args.device, tt.args.port, tt.args.pkt); !reflect.DeepEqual(got, tt.want) {
 					t.Errorf("VoltApplication.ProcessUDP6Packet() = %v, want %v", got, tt.want)
 				}
diff --git a/internal/pkg/application/flowevent_test.go b/internal/pkg/application/flowevent_test.go
index 9736ac3..04bed12 100644
--- a/internal/pkg/application/flowevent_test.go
+++ b/internal/pkg/application/flowevent_test.go
@@ -287,7 +287,12 @@
 		t.Run(tt.name, func(t *testing.T) {
 			dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 			db = dbintf
-			dbintf.EXPECT().PutService(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			switch tt.name {
+			case "ProcessServiceFlowDelEvent":
+				dbintf.EXPECT().PutService(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			case "ProcessServiceFlowDelEvent_else_condition":
+				dbintf.EXPECT().PutService(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
+			}
 			ProcessServiceFlowDelEvent(tt.args.cntx, tt.args.event, tt.args.flowStatus)
 		})
 	}
@@ -374,7 +379,12 @@
 		t.Run(tt.name, func(t *testing.T) {
 			dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 			db = dbintf
-			dbintf.EXPECT().PutMvlan(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			switch tt.name {
+			case "ProcessMcastFlowDelEvent":
+				dbintf.EXPECT().PutMvlan(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			case "ProcessMcastFlowDelEvent_else_condition":
+				dbintf.EXPECT().PutMvlan(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
+			}
 			ProcessMcastFlowDelEvent(tt.args.cntx, tt.args.event, tt.args.flowStatus)
 		})
 	}
diff --git a/internal/pkg/application/pppoeia_test.go b/internal/pkg/application/pppoeia_test.go
index 5c9aeac..3fcb8f5 100644
--- a/internal/pkg/application/pppoeia_test.go
+++ b/internal/pkg/application/pppoeia_test.go
@@ -197,7 +197,7 @@
 			switch tt.name {
 			case "VoltApplication_ProcessUsPppoeIaPacket":
 				va.DevicesDisc.Store(test_device, voltDevice)
-				pkt.EXPECT().Layers().Return(LayerTypeDot2Q).Times(3)
+				pkt.EXPECT().Layers().Return(LayerTypeDot2Q).AnyTimes()
 				voltPortVnet1[0].SVlan = 0
 				voltDevice.NniPort = []string{"1"}
 				va.VnetsByPort.Store("test_port", voltPortVnet1)
@@ -210,14 +210,14 @@
 				dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 				db = dbintf
 				eth.SrcMAC = layers.EthernetBroadcast
-				dbintf.EXPECT().PutVpv(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+				dbintf.EXPECT().PutVpv(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
 				voltPortVnet1[0].services.Store("SDX6320031-1_SDX6320031-1-4096-2310-4096-65", voltServ)
-				pkt.EXPECT().Layer(layers.LayerTypeEthernet).Return(eth).Times(2)
+				pkt.EXPECT().Layer(layers.LayerTypeEthernet).Return(eth).AnyTimes()
 				pkt.EXPECT().Layer(layers.LayerTypePPPoE).Return(&layers.PPPoE{
 					Version: uint8(1),
 					Code:    layers.PPPoECodePADI,
-				}).Times(1)
-				pkt.EXPECT().Layer(layers.LayerTypeDot1Q).Return(dot1Q).Times(1)
+				}).AnyTimes()
+				pkt.EXPECT().Layer(layers.LayerTypeDot1Q).Return(dot1Q).AnyTimes()
 				_ = cntlr.NewController(context.Background(), mocks.NewMockApp(gomock.NewController(t)))
 				va.ProcessUsPppoeIaPacket(tt.args.cntx, tt.args.device, tt.args.port, tt.args.pkt)
 			}
@@ -250,16 +250,16 @@
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			va := &VoltApplication{}
-			pkt.EXPECT().Layer(layers.LayerTypeEthernet).Return(eth).Times(1)
+			pkt.EXPECT().Layer(layers.LayerTypeEthernet).Return(eth).AnyTimes()
 			pkt.EXPECT().Layer(layers.LayerTypePPPoE).Return(&layers.PPPoE{
 				Version: uint8(1),
 				Code:    layers.PPPoECodePADI,
-			}).Times(1)
-			pkt.EXPECT().Layer(layers.LayerTypeDot1Q).Return(dot1Q).Times(1)
-			pkt.EXPECT().Layers().Return(LayerTypeDot2Q).Times(3)
+			}).AnyTimes()
+			pkt.EXPECT().Layer(layers.LayerTypeDot1Q).Return(dot1Q).AnyTimes()
+			pkt.EXPECT().Layers().Return(LayerTypeDot2Q).AnyTimes()
 			dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 			db = dbintf
-			dbintf.EXPECT().PutVpv(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			dbintf.EXPECT().PutVpv(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
 			va.ProcessDsPppoeIaPacket(tt.args.cntx, tt.args.device, tt.args.port, tt.args.pkt)
 		})
 	}
diff --git a/internal/pkg/application/service_test.go b/internal/pkg/application/service_test.go
index 76b0ec9..b105d7f 100644
--- a/internal/pkg/application/service_test.go
+++ b/internal/pkg/application/service_test.go
@@ -437,7 +437,7 @@
 			dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 			db = dbintf
 			dbintf.EXPECT().PutService(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
-			dbintf.EXPECT().PutVpv(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			dbintf.EXPECT().PutVpv(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
 			err := va.AddService(tt.args.cntx, tt.args.cfg, tt.args.oper)
 			assert.Nil(t, err)
 		})
diff --git a/internal/pkg/application/vnets_test.go b/internal/pkg/application/vnets_test.go
index 9fa1e3f..a2e5b0a 100644
--- a/internal/pkg/application/vnets_test.go
+++ b/internal/pkg/application/vnets_test.go
@@ -314,9 +314,10 @@
 				vv.PendingDeleteFlow = pendingDeleteFlow
 				vv.DeleteInProgress = true
 				vv.Name = "test_name"
+				vv.VnetPortLock = sync.RWMutex{}
 				dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 				db = dbintf
-				dbintf.EXPECT().DelVnet(tt.args.cntx, "test_name").Return(nil).Times(1)
+				dbintf.EXPECT().DelVnet(tt.args.cntx, "test_name").Return(nil).AnyTimes()
 				vv.FlowRemoveFailure(tt.args.cntx, tt.args.cookie, tt.args.device, tt.args.errorCode, tt.args.errReason)
 			case "mismatch_cookie":
 				cookie := map[string]bool{}
@@ -326,9 +327,10 @@
 				vv.PendingDeleteFlow = pendingDeleteFlow
 				vv.DeleteInProgress = true
 				vv.Name = "test_name"
+				vv.VnetPortLock = sync.RWMutex{}
 				dbintf := mocks.NewMockDBIntf(gomock.NewController(t))
 				db = dbintf
-				dbintf.EXPECT().DelVnet(tt.args.cntx, "test_name").Return(nil).Times(1)
+				dbintf.EXPECT().DelVnet(tt.args.cntx, "test_name").Return(nil).AnyTimes()
 				vv.FlowRemoveFailure(tt.args.cntx, tt.args.cookie, tt.args.device, tt.args.errorCode, tt.args.errReason)
 			}
 		})
@@ -763,7 +765,7 @@
 				Key:   "test_device_id",
 				Value: b,
 			}
-			dbintf.EXPECT().PutVnet(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).Times(1)
+			dbintf.EXPECT().PutVnet(gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
 			dbintf.EXPECT().GetVnets(tt.args.cntx).Return(vnets, nil)
 			va.RestoreVnetsFromDb(tt.args.cntx)
 		})
