// Copyright 2025 Antrea Authors
//
// 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.
//

// Code generated by MockGen. DO NOT EDIT.
// Source: antrea.io/antrea/pkg/agent/types (interfaces: McastNetworkPolicyController,CNIDeleteChecker)
//
// Generated by this command:
//
//	mockgen -copyright_file hack/boilerplate/license_header.raw.txt -destination pkg/agent/types/testing/mock_types.go -package testing antrea.io/antrea/pkg/agent/types McastNetworkPolicyController,CNIDeleteChecker
//

// Package testing is a generated GoMock package.
package testing

import (
	net "net"
	reflect "reflect"

	types "antrea.io/antrea/pkg/agent/types"
	gomock "go.uber.org/mock/gomock"
)

// MockMcastNetworkPolicyController is a mock of McastNetworkPolicyController interface.
type MockMcastNetworkPolicyController struct {
	ctrl     *gomock.Controller
	recorder *MockMcastNetworkPolicyControllerMockRecorder
	isgomock struct{}
}

// MockMcastNetworkPolicyControllerMockRecorder is the mock recorder for MockMcastNetworkPolicyController.
type MockMcastNetworkPolicyControllerMockRecorder struct {
	mock *MockMcastNetworkPolicyController
}

// NewMockMcastNetworkPolicyController creates a new mock instance.
func NewMockMcastNetworkPolicyController(ctrl *gomock.Controller) *MockMcastNetworkPolicyController {
	mock := &MockMcastNetworkPolicyController{ctrl: ctrl}
	mock.recorder = &MockMcastNetworkPolicyControllerMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockMcastNetworkPolicyController) EXPECT() *MockMcastNetworkPolicyControllerMockRecorder {
	return m.recorder
}

// GetIGMPNPRuleInfo mocks base method.
func (m *MockMcastNetworkPolicyController) GetIGMPNPRuleInfo(podname, podNamespace string, groupAddress net.IP, igmpType uint8) (*types.IGMPNPRuleInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetIGMPNPRuleInfo", podname, podNamespace, groupAddress, igmpType)
	ret0, _ := ret[0].(*types.IGMPNPRuleInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetIGMPNPRuleInfo indicates an expected call of GetIGMPNPRuleInfo.
func (mr *MockMcastNetworkPolicyControllerMockRecorder) GetIGMPNPRuleInfo(podname, podNamespace, groupAddress, igmpType any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetIGMPNPRuleInfo", reflect.TypeOf((*MockMcastNetworkPolicyController)(nil).GetIGMPNPRuleInfo), podname, podNamespace, groupAddress, igmpType)
}

// MockCNIDeleteChecker is a mock of CNIDeleteChecker interface.
type MockCNIDeleteChecker struct {
	ctrl     *gomock.Controller
	recorder *MockCNIDeleteCheckerMockRecorder
	isgomock struct{}
}

// MockCNIDeleteCheckerMockRecorder is the mock recorder for MockCNIDeleteChecker.
type MockCNIDeleteCheckerMockRecorder struct {
	mock *MockCNIDeleteChecker
}

// NewMockCNIDeleteChecker creates a new mock instance.
func NewMockCNIDeleteChecker(ctrl *gomock.Controller) *MockCNIDeleteChecker {
	mock := &MockCNIDeleteChecker{ctrl: ctrl}
	mock.recorder = &MockCNIDeleteCheckerMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockCNIDeleteChecker) EXPECT() *MockCNIDeleteCheckerMockRecorder {
	return m.recorder
}

// AllowCNIDelete mocks base method.
func (m *MockCNIDeleteChecker) AllowCNIDelete(podName, podNamespace string) bool {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AllowCNIDelete", podName, podNamespace)
	ret0, _ := ret[0].(bool)
	return ret0
}

// AllowCNIDelete indicates an expected call of AllowCNIDelete.
func (mr *MockCNIDeleteCheckerMockRecorder) AllowCNIDelete(podName, podNamespace any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AllowCNIDelete", reflect.TypeOf((*MockCNIDeleteChecker)(nil).AllowCNIDelete), podName, podNamespace)
}
