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

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

import (
	reflect "reflect"

	v1beta1 "antrea.io/antrea/pkg/apis/crd/v1beta1"
	gomock "go.uber.org/mock/gomock"
)

// MockIPAssigner is a mock of IPAssigner interface.
type MockIPAssigner struct {
	ctrl     *gomock.Controller
	recorder *MockIPAssignerMockRecorder
	isgomock struct{}
}

// MockIPAssignerMockRecorder is the mock recorder for MockIPAssigner.
type MockIPAssignerMockRecorder struct {
	mock *MockIPAssigner
}

// NewMockIPAssigner creates a new mock instance.
func NewMockIPAssigner(ctrl *gomock.Controller) *MockIPAssigner {
	mock := &MockIPAssigner{ctrl: ctrl}
	mock.recorder = &MockIPAssignerMockRecorder{mock}
	return mock
}

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

// AssignIP mocks base method.
func (m *MockIPAssigner) AssignIP(ip string, subnetInfo *v1beta1.SubnetInfo, forceAdvertise bool) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AssignIP", ip, subnetInfo, forceAdvertise)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// AssignIP indicates an expected call of AssignIP.
func (mr *MockIPAssignerMockRecorder) AssignIP(ip, subnetInfo, forceAdvertise any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignIP", reflect.TypeOf((*MockIPAssigner)(nil).AssignIP), ip, subnetInfo, forceAdvertise)
}

// AssignedIPs mocks base method.
func (m *MockIPAssigner) AssignedIPs() map[string]*v1beta1.SubnetInfo {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "AssignedIPs")
	ret0, _ := ret[0].(map[string]*v1beta1.SubnetInfo)
	return ret0
}

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

// GetInterfaceID mocks base method.
func (m *MockIPAssigner) GetInterfaceID(subnetInfo *v1beta1.SubnetInfo) (int, bool) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetInterfaceID", subnetInfo)
	ret0, _ := ret[0].(int)
	ret1, _ := ret[1].(bool)
	return ret0, ret1
}

// GetInterfaceID indicates an expected call of GetInterfaceID.
func (mr *MockIPAssignerMockRecorder) GetInterfaceID(subnetInfo any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetInterfaceID", reflect.TypeOf((*MockIPAssigner)(nil).GetInterfaceID), subnetInfo)
}

// InitIPs mocks base method.
func (m *MockIPAssigner) InitIPs(arg0 map[string]*v1beta1.SubnetInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "InitIPs", arg0)
	ret0, _ := ret[0].(error)
	return ret0
}

// InitIPs indicates an expected call of InitIPs.
func (mr *MockIPAssignerMockRecorder) InitIPs(arg0 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "InitIPs", reflect.TypeOf((*MockIPAssigner)(nil).InitIPs), arg0)
}

// Run mocks base method.
func (m *MockIPAssigner) Run(arg0 <-chan struct{}) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Run", arg0)
}

// Run indicates an expected call of Run.
func (mr *MockIPAssignerMockRecorder) Run(arg0 any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Run", reflect.TypeOf((*MockIPAssigner)(nil).Run), arg0)
}

// UnassignIP mocks base method.
func (m *MockIPAssigner) UnassignIP(ip string) (bool, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UnassignIP", ip)
	ret0, _ := ret[0].(bool)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// UnassignIP indicates an expected call of UnassignIP.
func (mr *MockIPAssignerMockRecorder) UnassignIP(ip any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UnassignIP", reflect.TypeOf((*MockIPAssigner)(nil).UnassignIP), ip)
}
