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)
 		})
 	}
