// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/devops/pkg/service/clustermaintenance/repo/maintenance (interfaces: MaintenanceRepo)
//
// Generated by this command:
//
//	mockgen -destination repo_mock.go -package=maintenance github.com/tidbcloud/devops/pkg/service/clustermaintenance/repo/maintenance MaintenanceRepo
//

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

import (
	context "context"
	reflect "reflect"

	maintenance "github.com/tidbcloud/devops/entity/maintenance"
	repoopt "github.com/tidbcloud/devops/pkg/infra/utils/repoopt"
	gomock "go.uber.org/mock/gomock"
)

// MockMaintenanceRepo is a mock of MaintenanceRepo interface.
type MockMaintenanceRepo struct {
	ctrl     *gomock.Controller
	recorder *MockMaintenanceRepoMockRecorder
	isgomock struct{}
}

// MockMaintenanceRepoMockRecorder is the mock recorder for MockMaintenanceRepo.
type MockMaintenanceRepoMockRecorder struct {
	mock *MockMaintenanceRepo
}

// NewMockMaintenanceRepo creates a new mock instance.
func NewMockMaintenanceRepo(ctrl *gomock.Controller) *MockMaintenanceRepo {
	mock := &MockMaintenanceRepo{ctrl: ctrl}
	mock.recorder = &MockMaintenanceRepoMockRecorder{mock}
	return mock
}

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

// Count mocks base method.
func (m *MockMaintenanceRepo) Count(ctx context.Context, opts ...repoopt.Option) (int64, error) {
	m.ctrl.T.Helper()
	varargs := []any{ctx}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Count", varargs...)
	ret0, _ := ret[0].(int64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Count indicates an expected call of Count.
func (mr *MockMaintenanceRepoMockRecorder) Count(ctx any, opts ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx}, opts...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Count", reflect.TypeOf((*MockMaintenanceRepo)(nil).Count), varargs...)
}

// Create mocks base method.
func (m *MockMaintenanceRepo) Create(ctx context.Context, spec *maintenance.ClusterMaintenanceInRepo) (*maintenance.ClusterMaintenanceInRepo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, spec)
	ret0, _ := ret[0].(*maintenance.ClusterMaintenanceInRepo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Create indicates an expected call of Create.
func (mr *MockMaintenanceRepoMockRecorder) Create(ctx, spec any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockMaintenanceRepo)(nil).Create), ctx, spec)
}

// Get mocks base method.
func (m *MockMaintenanceRepo) Get(ctx context.Context, id uint64) (*maintenance.ClusterMaintenanceInRepo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Get", ctx, id)
	ret0, _ := ret[0].(*maintenance.ClusterMaintenanceInRepo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// Get indicates an expected call of Get.
func (mr *MockMaintenanceRepoMockRecorder) Get(ctx, id any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockMaintenanceRepo)(nil).Get), ctx, id)
}

// List mocks base method.
func (m *MockMaintenanceRepo) List(ctx context.Context, opts ...repoopt.Option) ([]*maintenance.ClusterMaintenanceInRepo, error) {
	m.ctrl.T.Helper()
	varargs := []any{ctx}
	for _, a := range opts {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "List", varargs...)
	ret0, _ := ret[0].([]*maintenance.ClusterMaintenanceInRepo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockMaintenanceRepoMockRecorder) List(ctx any, opts ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx}, opts...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockMaintenanceRepo)(nil).List), varargs...)
}

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

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

// Patch mocks base method.
func (m *MockMaintenanceRepo) Patch(ctx context.Context, current *maintenance.ClusterMaintenanceInRepo, patches ...Patch) error {
	m.ctrl.T.Helper()
	varargs := []any{ctx, current}
	for _, a := range patches {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "Patch", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

// Patch indicates an expected call of Patch.
func (mr *MockMaintenanceRepoMockRecorder) Patch(ctx, current any, patches ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, current}, patches...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Patch", reflect.TypeOf((*MockMaintenanceRepo)(nil).Patch), varargs...)
}
