🧑‍💻 Created dummy and stub repository and use case for token

This commit is contained in:
Maxim Lebedev 2024-05-08 15:13:42 +05:00
parent 9048d0f77c
commit ff40be5057
Signed by: toby3d
GPG Key ID: 1F14E25B7C119FC5
2 changed files with 84 additions and 4 deletions

View File

@ -6,12 +6,48 @@ import (
"source.toby3d.me/toby3d/auth/internal/domain"
)
type Repository interface {
Create(ctx context.Context, accessToken domain.Token) error
Get(ctx context.Context, accessToken string) (*domain.Token, error)
}
type (
Repository interface {
Create(ctx context.Context, accessToken domain.Token) error
Get(ctx context.Context, accessToken string) (*domain.Token, error)
}
dummyTokenRepository struct{}
stubTokenRepository struct {
token *domain.Token
error error
}
)
var (
ErrExist error = domain.NewError(domain.ErrorCodeServerError, "token already exist", "")
ErrNotExist error = domain.NewError(domain.ErrorCodeServerError, "token not exist", "")
)
func NewDummyTokenRepository() Repository {
return dummyTokenRepository{}
}
func (dummyTokenRepository) Create(_ context.Context, _ domain.Token) error {
return nil
}
func (dummyTokenRepository) Get(_ context.Context, _ string) (*domain.Token, error) {
return nil, nil
}
func NewStubTokenRepository(token *domain.Token, err error) Repository {
return &stubTokenRepository{
token: token,
error: err,
}
}
func (repo *stubTokenRepository) Create(_ context.Context, _ domain.Token) error {
return repo.error
}
func (repo *stubTokenRepository) Get(_ context.Context, _ string) (*domain.Token, error) {
return repo.token, repo.error
}

View File

@ -24,6 +24,14 @@ type (
// Revoke revokes the AccessToken and blocks its further use.
Revoke(ctx context.Context, accessToken string) error
}
dummyTokenUseCase struct{}
stubTokenUseCase struct {
token *domain.Token
profile *domain.Profile
error error
}
)
var (
@ -54,3 +62,39 @@ var (
"https://indieauth.net/source/#request",
)
)
func NewDummyTokenUseCase() UseCase {
return dummyTokenUseCase{}
}
func (dummyTokenUseCase) Exchange(_ context.Context, _ ExchangeOptions) (*domain.Token, *domain.Profile, error) {
return nil, nil, nil
}
func (dummyTokenUseCase) Revoke(_ context.Context, _ string) error {
return nil
}
func (dummyTokenUseCase) Verify(_ context.Context, _ string) (*domain.Token, *domain.Profile, error) {
return nil, nil, nil
}
func NewStubTokenUseCase(token *domain.Token, profile *domain.Profile, err error) UseCase {
return &stubTokenUseCase{
token: token,
profile: profile,
error: err,
}
}
func (ucase *stubTokenUseCase) Exchange(_ context.Context, _ ExchangeOptions) (*domain.Token, *domain.Profile, error) {
return ucase.token, ucase.profile, ucase.error
}
func (ucase *stubTokenUseCase) Revoke(_ context.Context, _ string) error {
return ucase.error
}
func (ucase *stubTokenUseCase) Verify(_ context.Context, _ string) (*domain.Token, *domain.Profile, error) {
return ucase.token, ucase.profile, ucase.error
}