package user import ( "context" "source.toby3d.me/toby3d/auth/internal/domain" ) type ( Repository interface { Fetch(ctx context.Context, me domain.Me) (*domain.User, error) } dummyUserRepository struct{} stubUserRepository struct { user *domain.User error error } ) var ErrNotExist error = domain.NewError(domain.ErrorCodeServerError, "user not exist", "") func NewDummyUserRepository() Repository { return dummyUserRepository{} } func (dummyUserRepository) Fetch(_ context.Context, _ domain.Me) (*domain.User, error) { return nil, nil } func NewStubUserRepository(user *domain.User, err error) Repository { return &stubUserRepository{ user: user, error: err, } } func (repo *stubUserRepository) Fetch(_ context.Context, _ domain.Me) (*domain.User, error) { return repo.user, repo.error }