// Code generated by MockGen. DO NOT EDIT.
// Source: engine/pkg/rpcutil/checker.go

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

import (
	reflect "reflect"

	gomock "github.com/golang/mock/gomock"
)

// MockForwardChecker is a mock of ForwardChecker interface.
type MockForwardChecker[T any] struct {
	ctrl     *gomock.Controller
	recorder *MockForwardCheckerMockRecorder[T]
}

// MockForwardCheckerMockRecorder is the mock recorder for MockForwardChecker.
type MockForwardCheckerMockRecorder[T any] struct {
	mock *MockForwardChecker[T]
}

// NewMockForwardChecker creates a new mock instance.
func NewMockForwardChecker[T any](ctrl *gomock.Controller) *MockForwardChecker[T] {
	mock := &MockForwardChecker[T]{ctrl: ctrl}
	mock.recorder = &MockForwardCheckerMockRecorder[T]{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockForwardChecker[T]) EXPECT() *MockForwardCheckerMockRecorder[T] {
	return m.recorder
}

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

// IsLeader indicates an expected call of IsLeader.
func (mr *MockForwardCheckerMockRecorder[T]) IsLeader() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsLeader", reflect.TypeOf((*MockForwardChecker[T])(nil).IsLeader))
}

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

// LeaderClient indicates an expected call of LeaderClient.
func (mr *MockForwardCheckerMockRecorder[T]) LeaderClient() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LeaderClient", reflect.TypeOf((*MockForwardChecker[T])(nil).LeaderClient))
}

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

// LeaderOnly indicates an expected call of LeaderOnly.
func (mr *MockForwardCheckerMockRecorder[T]) LeaderOnly(method interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "LeaderOnly", reflect.TypeOf((*MockForwardChecker[T])(nil).LeaderOnly), method)
}

// MockFeatureChecker is a mock of FeatureChecker interface.
type MockFeatureChecker struct {
	ctrl     *gomock.Controller
	recorder *MockFeatureCheckerMockRecorder
}

// MockFeatureCheckerMockRecorder is the mock recorder for MockFeatureChecker.
type MockFeatureCheckerMockRecorder struct {
	mock *MockFeatureChecker
}

// NewMockFeatureChecker creates a new mock instance.
func NewMockFeatureChecker(ctrl *gomock.Controller) *MockFeatureChecker {
	mock := &MockFeatureChecker{ctrl: ctrl}
	mock.recorder = &MockFeatureCheckerMockRecorder{mock}
	return mock
}

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

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

// Available indicates an expected call of Available.
func (mr *MockFeatureCheckerMockRecorder) Available(method interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Available", reflect.TypeOf((*MockFeatureChecker)(nil).Available), method)
}
