// Code generated by MockGen. DO NOT EDIT.
// Source: ./pkg/resourcemanager/account/account.go
//
// Generated by this command:
//
//	mockgen -destination ./test/resourcemanager/mockaccount/mock_account.go -package mockaccount -source ./pkg/resourcemanager/account/account.go
//

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

import (
	context "context"
	reflect "reflect"

	v1alpha1 "github.com/tidbcloud/infra-provider/regional-server/api/v1alpha1"
	models "github.com/tidbcloud/infra-provider/regional-server/pkg/common/models"
	gomock "go.uber.org/mock/gomock"
)

// MockAccountReaderWriter is a mock of AccountReaderWriter interface.
type MockAccountReaderWriter struct {
	ctrl     *gomock.Controller
	recorder *MockAccountReaderWriterMockRecorder
}

// MockAccountReaderWriterMockRecorder is the mock recorder for MockAccountReaderWriter.
type MockAccountReaderWriterMockRecorder struct {
	mock *MockAccountReaderWriter
}

// NewMockAccountReaderWriter creates a new mock instance.
func NewMockAccountReaderWriter(ctrl *gomock.Controller) *MockAccountReaderWriter {
	mock := &MockAccountReaderWriter{ctrl: ctrl}
	mock.recorder = &MockAccountReaderWriterMockRecorder{mock}
	return mock
}

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

// Bind mocks base method.
func (m *MockAccountReaderWriter) Bind(ctx context.Context, binding models.DataPlaneAccountInfo, target models.AccountBindingTarget) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Bind", ctx, binding, target)
	ret0, _ := ret[0].(error)
	return ret0
}

// Bind indicates an expected call of Bind.
func (mr *MockAccountReaderWriterMockRecorder) Bind(ctx, binding, target any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Bind", reflect.TypeOf((*MockAccountReaderWriter)(nil).Bind), ctx, binding, target)
}

// Create mocks base method.
func (m *MockAccountReaderWriter) Create(ctx context.Context, accountInfo *models.DataPlaneAccountInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, accountInfo)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// Delete mocks base method.
func (m *MockAccountReaderWriter) Delete(ctx context.Context, accountInfo *models.DataPlaneAccountInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Delete", ctx, accountInfo)
	ret0, _ := ret[0].(error)
	return ret0
}

// Delete indicates an expected call of Delete.
func (mr *MockAccountReaderWriterMockRecorder) Delete(ctx, accountInfo any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockAccountReaderWriter)(nil).Delete), ctx, accountInfo)
}

// GetBinding mocks base method.
func (m *MockAccountReaderWriter) GetBinding(ctx context.Context, target models.AccountBindingTarget) (models.DataPlaneAccountInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetBinding", ctx, target)
	ret0, _ := ret[0].(models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetBinding indicates an expected call of GetBinding.
func (mr *MockAccountReaderWriterMockRecorder) GetBinding(ctx, target any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBinding", reflect.TypeOf((*MockAccountReaderWriter)(nil).GetBinding), ctx, target)
}

// GetByRef mocks base method.
func (m *MockAccountReaderWriter) GetByRef(ctx context.Context, ref *v1alpha1.AccountReference) (models.DataPlaneAccountInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByRef", ctx, ref)
	ret0, _ := ret[0].(models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByRef indicates an expected call of GetByRef.
func (mr *MockAccountReaderWriterMockRecorder) GetByRef(ctx, ref any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByRef", reflect.TypeOf((*MockAccountReaderWriter)(nil).GetByRef), ctx, ref)
}

// GetDefault mocks base method.
func (m *MockAccountReaderWriter) GetDefault(ctx context.Context) (models.DataPlaneAccountInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetDefault", ctx)
	ret0, _ := ret[0].(models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// List mocks base method.
func (m *MockAccountReaderWriter) List(ctx context.Context, opts ...models.ListAccountOption) ([]models.DataPlaneAccountInfo, 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].([]models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockAccountReaderWriterMockRecorder) 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((*MockAccountReaderWriter)(nil).List), varargs...)
}

// SetToDefault mocks base method.
func (m *MockAccountReaderWriter) SetToDefault(ctx context.Context, accountInfo *models.DataPlaneAccountInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetToDefault", ctx, accountInfo)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetToDefault indicates an expected call of SetToDefault.
func (mr *MockAccountReaderWriterMockRecorder) SetToDefault(ctx, accountInfo any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetToDefault", reflect.TypeOf((*MockAccountReaderWriter)(nil).SetToDefault), ctx, accountInfo)
}

// Unbind mocks base method.
func (m *MockAccountReaderWriter) Unbind(ctx context.Context, target models.AccountBindingTarget) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Unbind", ctx, target)
	ret0, _ := ret[0].(error)
	return ret0
}

// Unbind indicates an expected call of Unbind.
func (mr *MockAccountReaderWriterMockRecorder) Unbind(ctx, target any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unbind", reflect.TypeOf((*MockAccountReaderWriter)(nil).Unbind), ctx, target)
}

// MockAccountReader is a mock of AccountReader interface.
type MockAccountReader struct {
	ctrl     *gomock.Controller
	recorder *MockAccountReaderMockRecorder
}

// MockAccountReaderMockRecorder is the mock recorder for MockAccountReader.
type MockAccountReaderMockRecorder struct {
	mock *MockAccountReader
}

// NewMockAccountReader creates a new mock instance.
func NewMockAccountReader(ctrl *gomock.Controller) *MockAccountReader {
	mock := &MockAccountReader{ctrl: ctrl}
	mock.recorder = &MockAccountReaderMockRecorder{mock}
	return mock
}

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

// GetBinding mocks base method.
func (m *MockAccountReader) GetBinding(ctx context.Context, target models.AccountBindingTarget) (models.DataPlaneAccountInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetBinding", ctx, target)
	ret0, _ := ret[0].(models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetBinding indicates an expected call of GetBinding.
func (mr *MockAccountReaderMockRecorder) GetBinding(ctx, target any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetBinding", reflect.TypeOf((*MockAccountReader)(nil).GetBinding), ctx, target)
}

// GetByRef mocks base method.
func (m *MockAccountReader) GetByRef(ctx context.Context, ref *v1alpha1.AccountReference) (models.DataPlaneAccountInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetByRef", ctx, ref)
	ret0, _ := ret[0].(models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetByRef indicates an expected call of GetByRef.
func (mr *MockAccountReaderMockRecorder) GetByRef(ctx, ref any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetByRef", reflect.TypeOf((*MockAccountReader)(nil).GetByRef), ctx, ref)
}

// GetDefault mocks base method.
func (m *MockAccountReader) GetDefault(ctx context.Context) (models.DataPlaneAccountInfo, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetDefault", ctx)
	ret0, _ := ret[0].(models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

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

// List mocks base method.
func (m *MockAccountReader) List(ctx context.Context, opts ...models.ListAccountOption) ([]models.DataPlaneAccountInfo, 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].([]models.DataPlaneAccountInfo)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// List indicates an expected call of List.
func (mr *MockAccountReaderMockRecorder) 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((*MockAccountReader)(nil).List), varargs...)
}

// MockAccountWriter is a mock of AccountWriter interface.
type MockAccountWriter struct {
	ctrl     *gomock.Controller
	recorder *MockAccountWriterMockRecorder
}

// MockAccountWriterMockRecorder is the mock recorder for MockAccountWriter.
type MockAccountWriterMockRecorder struct {
	mock *MockAccountWriter
}

// NewMockAccountWriter creates a new mock instance.
func NewMockAccountWriter(ctrl *gomock.Controller) *MockAccountWriter {
	mock := &MockAccountWriter{ctrl: ctrl}
	mock.recorder = &MockAccountWriterMockRecorder{mock}
	return mock
}

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

// Bind mocks base method.
func (m *MockAccountWriter) Bind(ctx context.Context, binding models.DataPlaneAccountInfo, target models.AccountBindingTarget) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Bind", ctx, binding, target)
	ret0, _ := ret[0].(error)
	return ret0
}

// Bind indicates an expected call of Bind.
func (mr *MockAccountWriterMockRecorder) Bind(ctx, binding, target any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Bind", reflect.TypeOf((*MockAccountWriter)(nil).Bind), ctx, binding, target)
}

// Create mocks base method.
func (m *MockAccountWriter) Create(ctx context.Context, accountInfo *models.DataPlaneAccountInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Create", ctx, accountInfo)
	ret0, _ := ret[0].(error)
	return ret0
}

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

// Delete mocks base method.
func (m *MockAccountWriter) Delete(ctx context.Context, accountInfo *models.DataPlaneAccountInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Delete", ctx, accountInfo)
	ret0, _ := ret[0].(error)
	return ret0
}

// Delete indicates an expected call of Delete.
func (mr *MockAccountWriterMockRecorder) Delete(ctx, accountInfo any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockAccountWriter)(nil).Delete), ctx, accountInfo)
}

// SetToDefault mocks base method.
func (m *MockAccountWriter) SetToDefault(ctx context.Context, accountInfo *models.DataPlaneAccountInfo) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetToDefault", ctx, accountInfo)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetToDefault indicates an expected call of SetToDefault.
func (mr *MockAccountWriterMockRecorder) SetToDefault(ctx, accountInfo any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetToDefault", reflect.TypeOf((*MockAccountWriter)(nil).SetToDefault), ctx, accountInfo)
}

// Unbind mocks base method.
func (m *MockAccountWriter) Unbind(ctx context.Context, target models.AccountBindingTarget) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "Unbind", ctx, target)
	ret0, _ := ret[0].(error)
	return ret0
}

// Unbind indicates an expected call of Unbind.
func (mr *MockAccountWriterMockRecorder) Unbind(ctx, target any) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unbind", reflect.TypeOf((*MockAccountWriter)(nil).Unbind), ctx, target)
}
