/*
 * Copyright 2022 CloudWeGo 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: ../../pkg/loadbalance/loadbalancer.go

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

import (
	context "context"
	reflect "reflect"

	discovery "github.com/cloudwego/kitex/pkg/discovery"
	loadbalance "github.com/cloudwego/kitex/pkg/loadbalance"
	gomock "github.com/golang/mock/gomock"
)

// MockPicker is a mock of Picker interface.
type MockPicker struct {
	ctrl     *gomock.Controller
	recorder *MockPickerMockRecorder
}

// MockPickerMockRecorder is the mock recorder for MockPicker.
type MockPickerMockRecorder struct {
	mock *MockPicker
}

// NewMockPicker creates a new mock instance.
func NewMockPicker(ctrl *gomock.Controller) *MockPicker {
	mock := &MockPicker{ctrl: ctrl}
	mock.recorder = &MockPickerMockRecorder{mock}
	return mock
}

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

// Next mocks base method.
func (m *MockPicker) Next(ctx context.Context, request interface{}) discovery.Instance {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Next", ctx, request)
	ret0, _ := ret[0].(discovery.Instance)
	return ret0
}

// Next indicates an expected call of Next.
func (mr *MockPickerMockRecorder) Next(ctx, request interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Next", reflect.TypeOf((*MockPicker)(nil).Next), ctx, request)
}

// MockLoadbalancer is a mock of Loadbalancer interface.
type MockLoadbalancer struct {
	ctrl     *gomock.Controller
	recorder *MockLoadbalancerMockRecorder
}

// MockLoadbalancerMockRecorder is the mock recorder for MockLoadbalancer.
type MockLoadbalancerMockRecorder struct {
	mock *MockLoadbalancer
}

// NewMockLoadbalancer creates a new mock instance.
func NewMockLoadbalancer(ctrl *gomock.Controller) *MockLoadbalancer {
	mock := &MockLoadbalancer{ctrl: ctrl}
	mock.recorder = &MockLoadbalancerMockRecorder{mock}
	return mock
}

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

// GetPicker mocks base method.
func (m *MockLoadbalancer) GetPicker(arg0 discovery.Result) loadbalance.Picker {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetPicker", arg0)
	ret0, _ := ret[0].(loadbalance.Picker)
	return ret0
}

// GetPicker indicates an expected call of GetPicker.
func (mr *MockLoadbalancerMockRecorder) GetPicker(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetPicker", reflect.TypeOf((*MockLoadbalancer)(nil).GetPicker), arg0)
}

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

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

// MockRebalancer is a mock of Rebalancer interface.
type MockRebalancer struct {
	ctrl     *gomock.Controller
	recorder *MockRebalancerMockRecorder
}

// MockRebalancerMockRecorder is the mock recorder for MockRebalancer.
type MockRebalancerMockRecorder struct {
	mock *MockRebalancer
}

// NewMockRebalancer creates a new mock instance.
func NewMockRebalancer(ctrl *gomock.Controller) *MockRebalancer {
	mock := &MockRebalancer{ctrl: ctrl}
	mock.recorder = &MockRebalancerMockRecorder{mock}
	return mock
}

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

// Delete mocks base method.
func (m *MockRebalancer) Delete(arg0 discovery.Change) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Delete", arg0)
}

// Delete indicates an expected call of Delete.
func (mr *MockRebalancerMockRecorder) Delete(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockRebalancer)(nil).Delete), arg0)
}

// Rebalance mocks base method.
func (m *MockRebalancer) Rebalance(arg0 discovery.Change) {
	m.ctrl.T.Helper()
	m.ctrl.Call(m, "Rebalance", arg0)
}

// Rebalance indicates an expected call of Rebalance.
func (mr *MockRebalancerMockRecorder) Rebalance(arg0 interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Rebalance", reflect.TypeOf((*MockRebalancer)(nil).Rebalance), arg0)
}
