// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/tidbcloud/devops/pkg/service/approval/api (interfaces: ApprovalServiceAPI)
//
// Generated by this command:
//
//	mockgen -destination approval_service_mock.go -package=api github.com/tidbcloud/devops/pkg/service/approval/api ApprovalServiceAPI
//

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

import (
	context "context"
	reflect "reflect"

	entity "github.com/tidbcloud/devops/entity/approval"
	gomock "go.uber.org/mock/gomock"
)

// MockApprovalServiceAPI is a mock of ApprovalServiceAPI interface.
type MockApprovalServiceAPI struct {
	ctrl     *gomock.Controller
	recorder *MockApprovalServiceAPIMockRecorder
	isgomock struct{}
}

// MockApprovalServiceAPIMockRecorder is the mock recorder for MockApprovalServiceAPI.
type MockApprovalServiceAPIMockRecorder struct {
	mock *MockApprovalServiceAPI
}

// NewMockApprovalServiceAPI creates a new mock instance.
func NewMockApprovalServiceAPI(ctrl *gomock.Controller) *MockApprovalServiceAPI {
	mock := &MockApprovalServiceAPI{ctrl: ctrl}
	mock.recorder = &MockApprovalServiceAPIMockRecorder{mock}
	return mock
}

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

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

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

// CheckApprovalPermission mocks base method.
func (m *MockApprovalServiceAPI) CheckApprovalPermission(ctx context.Context, id uint64, userEmail string) (*ApprovalPermission, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CheckApprovalPermission", ctx, id, userEmail)
	ret0, _ := ret[0].(*ApprovalPermission)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// CreateApproval mocks base method.
func (m *MockApprovalServiceAPI) CreateApproval(ctx context.Context, param CreateApprovalParam) (*uint64, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "CreateApproval", ctx, param)
	ret0, _ := ret[0].(*uint64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CreateApproval indicates an expected call of CreateApproval.
func (mr *MockApprovalServiceAPIMockRecorder) CreateApproval(ctx, param any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateApproval", reflect.TypeOf((*MockApprovalServiceAPI)(nil).CreateApproval), ctx, param)
}

// CreateApprovalFromTemplate mocks base method.
func (m *MockApprovalServiceAPI) CreateApprovalFromTemplate(ctx context.Context, param CreateApprovalFromTemplateParam, mutates ...func(*CreateApprovalParam)) (*uint64, error) {
	m.ctrl.T.Helper()
	varargs := []any{ctx, param}
	for _, a := range mutates {
		varargs = append(varargs, a)
	}
	ret := m.ctrl.Call(m, "CreateApprovalFromTemplate", varargs...)
	ret0, _ := ret[0].(*uint64)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// CreateApprovalFromTemplate indicates an expected call of CreateApprovalFromTemplate.
func (mr *MockApprovalServiceAPIMockRecorder) CreateApprovalFromTemplate(ctx, param any, mutates ...any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	varargs := append([]any{ctx, param}, mutates...)
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateApprovalFromTemplate", reflect.TypeOf((*MockApprovalServiceAPI)(nil).CreateApprovalFromTemplate), varargs...)
}

// FinishApprovalAdminTask mocks base method.
func (m *MockApprovalServiceAPI) FinishApprovalAdminTask(ctx context.Context, id uint64, param FinishApprovalTaskParam) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "FinishApprovalAdminTask", ctx, id, param)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// FinishApprovalTask mocks base method.
func (m *MockApprovalServiceAPI) FinishApprovalTask(ctx context.Context, id uint64, param FinishApprovalTaskParam) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "FinishApprovalTask", ctx, id, param)
	ret0, _ := ret[0].(error)
	return ret0
}

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

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

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

// RegisterTemplate mocks base method.
func (m *MockApprovalServiceAPI) RegisterTemplate(ctx context.Context, tmpl entity.Template) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "RegisterTemplate", ctx, tmpl)
	ret0, _ := ret[0].(error)
	return ret0
}

// RegisterTemplate indicates an expected call of RegisterTemplate.
func (mr *MockApprovalServiceAPIMockRecorder) RegisterTemplate(ctx, tmpl any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RegisterTemplate", reflect.TypeOf((*MockApprovalServiceAPI)(nil).RegisterTemplate), ctx, tmpl)
}
