// Copyright 2024 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/multicast (interfaces: RouteInterface)
//
// Generated by this command:
//
//	mockgen -copyright_file hack/boilerplate/license_header.raw.txt -destination pkg/agent/multicast/testing/mock_multicast.go -package testing antrea.io/antrea/pkg/agent/multicast RouteInterface
//

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

import (
	net "net"
	reflect "reflect"

	gomock "go.uber.org/mock/gomock"
)

// MockRouteInterface is a mock of RouteInterface interface.
type MockRouteInterface struct {
	ctrl     *gomock.Controller
	recorder *MockRouteInterfaceMockRecorder
	isgomock struct{}
}

// MockRouteInterfaceMockRecorder is the mock recorder for MockRouteInterface.
type MockRouteInterfaceMockRecorder struct {
	mock *MockRouteInterface
}

// NewMockRouteInterface creates a new mock instance.
func NewMockRouteInterface(ctrl *gomock.Controller) *MockRouteInterface {
	mock := &MockRouteInterface{ctrl: ctrl}
	mock.recorder = &MockRouteInterfaceMockRecorder{mock}
	return mock
}

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

// AddMrouteEntry mocks base method.
func (m *MockRouteInterface) AddMrouteEntry(src, group net.IP, iif uint16, oifs []uint16) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AddMrouteEntry", src, group, iif, oifs)
	ret0, _ := ret[0].(error)
	return ret0
}

// AddMrouteEntry indicates an expected call of AddMrouteEntry.
func (mr *MockRouteInterfaceMockRecorder) AddMrouteEntry(src, group, iif, oifs any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AddMrouteEntry", reflect.TypeOf((*MockRouteInterface)(nil).AddMrouteEntry), src, group, iif, oifs)
}

// AllocateVIFs mocks base method.
func (m *MockRouteInterface) AllocateVIFs(interfaceNames []string, startVIF uint16) ([]uint16, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AllocateVIFs", interfaceNames, startVIF)
	ret0, _ := ret[0].([]uint16)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// AllocateVIFs indicates an expected call of AllocateVIFs.
func (mr *MockRouteInterfaceMockRecorder) AllocateVIFs(interfaceNames, startVIF any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AllocateVIFs", reflect.TypeOf((*MockRouteInterface)(nil).AllocateVIFs), interfaceNames, startVIF)
}

// DelMrouteEntry mocks base method.
func (m *MockRouteInterface) DelMrouteEntry(src, group net.IP, iif uint16) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "DelMrouteEntry", src, group, iif)
	ret0, _ := ret[0].(error)
	return ret0
}

// DelMrouteEntry indicates an expected call of DelMrouteEntry.
func (mr *MockRouteInterfaceMockRecorder) DelMrouteEntry(src, group, iif any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DelMrouteEntry", reflect.TypeOf((*MockRouteInterface)(nil).DelMrouteEntry), src, group, iif)
}

// FlushMRoute mocks base method.
func (m *MockRouteInterface) FlushMRoute() {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "FlushMRoute")
}

// FlushMRoute indicates an expected call of FlushMRoute.
func (mr *MockRouteInterfaceMockRecorder) FlushMRoute() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FlushMRoute", reflect.TypeOf((*MockRouteInterface)(nil).FlushMRoute))
}

// GetFD mocks base method.
func (m *MockRouteInterface) GetFD() int {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetFD")
	ret0, _ := ret[0].(int)
	return ret0
}

// GetFD indicates an expected call of GetFD.
func (mr *MockRouteInterfaceMockRecorder) GetFD() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetFD", reflect.TypeOf((*MockRouteInterface)(nil).GetFD))
}

// GetMroutePacketCount mocks base method.
func (m *MockRouteInterface) GetMroutePacketCount(src, group net.IP) (uint32, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMroutePacketCount", src, group)
	ret0, _ := ret[0].(uint32)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetMroutePacketCount indicates an expected call of GetMroutePacketCount.
func (mr *MockRouteInterfaceMockRecorder) GetMroutePacketCount(src, group any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMroutePacketCount", reflect.TypeOf((*MockRouteInterface)(nil).GetMroutePacketCount), src, group)
}

// MulticastInterfaceJoinMgroup mocks base method.
func (m *MockRouteInterface) MulticastInterfaceJoinMgroup(mgroup, ifaceIP net.IP, ifaceName string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "MulticastInterfaceJoinMgroup", mgroup, ifaceIP, ifaceName)
	ret0, _ := ret[0].(error)
	return ret0
}

// MulticastInterfaceJoinMgroup indicates an expected call of MulticastInterfaceJoinMgroup.
func (mr *MockRouteInterfaceMockRecorder) MulticastInterfaceJoinMgroup(mgroup, ifaceIP, ifaceName any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MulticastInterfaceJoinMgroup", reflect.TypeOf((*MockRouteInterface)(nil).MulticastInterfaceJoinMgroup), mgroup, ifaceIP, ifaceName)
}

// MulticastInterfaceLeaveMgroup mocks base method.
func (m *MockRouteInterface) MulticastInterfaceLeaveMgroup(mgroup, ifaceIP net.IP, ifaceName string) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "MulticastInterfaceLeaveMgroup", mgroup, ifaceIP, ifaceName)
	ret0, _ := ret[0].(error)
	return ret0
}

// MulticastInterfaceLeaveMgroup indicates an expected call of MulticastInterfaceLeaveMgroup.
func (mr *MockRouteInterfaceMockRecorder) MulticastInterfaceLeaveMgroup(mgroup, ifaceIP, ifaceName any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MulticastInterfaceLeaveMgroup", reflect.TypeOf((*MockRouteInterface)(nil).MulticastInterfaceLeaveMgroup), mgroup, ifaceIP, ifaceName)
}
