// Code generated by mockery v2.53.3. DO NOT EDIT.

package mock

import (
	account "github.com/tidbcloud/account/idl/pbgen/proto/account"
	bizerr "github.com/tidbcloud/pkgv2/bizerr"

	context "context"

	mock "github.com/stretchr/testify/mock"
)

// AccountSvcGrpcClient is an autogenerated mock type for the AccountSvcGrpcClient type
type AccountSvcGrpcClient struct {
	mock.Mock
}

// GetAuthUser provides a mock function with given fields: ctx, req
func (_m *AccountSvcGrpcClient) GetAuthUser(ctx context.Context, req *account.GetAuthUserRequest) (*account.GetAuthUserResponse, bizerr.BizError) {
	ret := _m.Called(ctx, req)

	if len(ret) == 0 {
		panic("no return value specified for GetAuthUser")
	}

	var r0 *account.GetAuthUserResponse
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetAuthUserRequest) (*account.GetAuthUserResponse, bizerr.BizError)); ok {
		return rf(ctx, req)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetAuthUserRequest) *account.GetAuthUserResponse); ok {
		r0 = rf(ctx, req)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*account.GetAuthUserResponse)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *account.GetAuthUserRequest) bizerr.BizError); ok {
		r1 = rf(ctx, req)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// GetClient provides a mock function with no fields
func (_m *AccountSvcGrpcClient) GetClient() account.AccountAPIServiceClient {
	ret := _m.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetClient")
	}

	var r0 account.AccountAPIServiceClient
	if rf, ok := ret.Get(0).(func() account.AccountAPIServiceClient); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(account.AccountAPIServiceClient)
		}
	}

	return r0
}

// GetOrCreateSystemUser provides a mock function with given fields: ctx, req
func (_m *AccountSvcGrpcClient) GetOrCreateSystemUser(ctx context.Context, req *account.GetOrCreateSystemUserRequest) (*account.User, bizerr.BizError) {
	ret := _m.Called(ctx, req)

	if len(ret) == 0 {
		panic("no return value specified for GetOrCreateSystemUser")
	}

	var r0 *account.User
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetOrCreateSystemUserRequest) (*account.User, bizerr.BizError)); ok {
		return rf(ctx, req)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetOrCreateSystemUserRequest) *account.User); ok {
		r0 = rf(ctx, req)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*account.User)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *account.GetOrCreateSystemUserRequest) bizerr.BizError); ok {
		r1 = rf(ctx, req)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// GetOrgByID provides a mock function with given fields: ctx, orgId
func (_m *AccountSvcGrpcClient) GetOrgByID(ctx context.Context, orgId uint64) (*account.Org, bizerr.BizError) {
	ret := _m.Called(ctx, orgId)

	if len(ret) == 0 {
		panic("no return value specified for GetOrgByID")
	}

	var r0 *account.Org
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func(context.Context, uint64) (*account.Org, bizerr.BizError)); ok {
		return rf(ctx, orgId)
	}
	if rf, ok := ret.Get(0).(func(context.Context, uint64) *account.Org); ok {
		r0 = rf(ctx, orgId)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*account.Org)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, uint64) bizerr.BizError); ok {
		r1 = rf(ctx, orgId)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// GetProjectByID provides a mock function with given fields: ctx, req
func (_m *AccountSvcGrpcClient) GetProjectByID(ctx context.Context, req *account.GetProjectByIDRequest) (*account.GetProjectByIDResponse, bizerr.BizError) {
	ret := _m.Called(ctx, req)

	if len(ret) == 0 {
		panic("no return value specified for GetProjectByID")
	}

	var r0 *account.GetProjectByIDResponse
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetProjectByIDRequest) (*account.GetProjectByIDResponse, bizerr.BizError)); ok {
		return rf(ctx, req)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetProjectByIDRequest) *account.GetProjectByIDResponse); ok {
		r0 = rf(ctx, req)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*account.GetProjectByIDResponse)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *account.GetProjectByIDRequest) bizerr.BizError); ok {
		r1 = rf(ctx, req)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// GetUserByToken provides a mock function with given fields: ctx, req
func (_m *AccountSvcGrpcClient) GetUserByToken(ctx context.Context, req *account.GetUserByTokenRequest) (*account.GetUserByTokenResponse, bizerr.BizError) {
	ret := _m.Called(ctx, req)

	if len(ret) == 0 {
		panic("no return value specified for GetUserByToken")
	}

	var r0 *account.GetUserByTokenResponse
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetUserByTokenRequest) (*account.GetUserByTokenResponse, bizerr.BizError)); ok {
		return rf(ctx, req)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *account.GetUserByTokenRequest) *account.GetUserByTokenResponse); ok {
		r0 = rf(ctx, req)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*account.GetUserByTokenResponse)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *account.GetUserByTokenRequest) bizerr.BizError); ok {
		r1 = rf(ctx, req)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// ListOrgMapByIDs provides a mock function with given fields: ids
func (_m *AccountSvcGrpcClient) ListOrgMapByIDs(ids []uint64) (map[uint64]*account.Org, bizerr.BizError) {
	ret := _m.Called(ids)

	if len(ret) == 0 {
		panic("no return value specified for ListOrgMapByIDs")
	}

	var r0 map[uint64]*account.Org
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func([]uint64) (map[uint64]*account.Org, bizerr.BizError)); ok {
		return rf(ids)
	}
	if rf, ok := ret.Get(0).(func([]uint64) map[uint64]*account.Org); ok {
		r0 = rf(ids)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(map[uint64]*account.Org)
		}
	}

	if rf, ok := ret.Get(1).(func([]uint64) bizerr.BizError); ok {
		r1 = rf(ids)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// ListProjects provides a mock function with given fields: ctx, req
func (_m *AccountSvcGrpcClient) ListProjects(ctx context.Context, req *account.ProjectFilter) (*account.ListProjectsResponse, bizerr.BizError) {
	ret := _m.Called(ctx, req)

	if len(ret) == 0 {
		panic("no return value specified for ListProjects")
	}

	var r0 *account.ListProjectsResponse
	var r1 bizerr.BizError
	if rf, ok := ret.Get(0).(func(context.Context, *account.ProjectFilter) (*account.ListProjectsResponse, bizerr.BizError)); ok {
		return rf(ctx, req)
	}
	if rf, ok := ret.Get(0).(func(context.Context, *account.ProjectFilter) *account.ListProjectsResponse); ok {
		r0 = rf(ctx, req)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*account.ListProjectsResponse)
		}
	}

	if rf, ok := ret.Get(1).(func(context.Context, *account.ProjectFilter) bizerr.BizError); ok {
		r1 = rf(ctx, req)
	} else {
		if ret.Get(1) != nil {
			r1 = ret.Get(1).(bizerr.BizError)
		}
	}

	return r0, r1
}

// NewAccountSvcGrpcClient creates a new instance of AccountSvcGrpcClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewAccountSvcGrpcClient(t interface {
	mock.TestingT
	Cleanup(func())
}) *AccountSvcGrpcClient {
	mock := &AccountSvcGrpcClient{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
