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

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

import (
	context "context"
	reflect "reflect"

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

// MockOperationRepo is a mock of OperationRepo interface.
type MockOperationRepo struct {
	ctrl     *gomock.Controller
	recorder *MockOperationRepoMockRecorder
	isgomock struct{}
}

// MockOperationRepoMockRecorder is the mock recorder for MockOperationRepo.
type MockOperationRepoMockRecorder struct {
	mock *MockOperationRepo
}

// NewMockOperationRepo creates a new mock instance.
func NewMockOperationRepo(ctrl *gomock.Controller) *MockOperationRepo {
	mock := &MockOperationRepo{ctrl: ctrl}
	mock.recorder = &MockOperationRepoMockRecorder{mock}
	return mock
}

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

// CountInstance mocks base method.
func (m *MockOperationRepo) CountInstance(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, "CountInstance", varargs...)
	ret0, _ := ret[0].(int64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// CreateInstance mocks base method.
func (m *MockOperationRepo) CreateInstance(ctx context.Context, instance *operation.Instance) (*operation.Instance, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateInstance", ctx, instance)
	ret0, _ := ret[0].(*operation.Instance)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CreateInstance indicates an expected call of CreateInstance.
func (mr *MockOperationRepoMockRecorder) CreateInstance(ctx, instance any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateInstance", reflect.TypeOf((*MockOperationRepo)(nil).CreateInstance), ctx, instance)
}

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

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

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

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

// PatchInstance mocks base method.
func (m *MockOperationRepo) PatchInstance(ctx context.Context, current *operation.Instance, patch ...PatchInstance) error {
	m.ctrl.T.Helper()
	varargs := []any{ctx, current}
	for _, a := range patch {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "PatchInstance", varargs...)
	ret0, _ := ret[0].(error)
	return ret0
}

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