2021-09-20 15:45:54 +00:00
|
|
|
package usecase_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2021-09-22 21:32:40 +00:00
|
|
|
"sync"
|
2021-09-20 15:45:54 +00:00
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
2021-09-29 20:35:39 +00:00
|
|
|
|
|
|
|
"source.toby3d.me/website/oauth/internal/domain"
|
2021-09-20 15:45:54 +00:00
|
|
|
repository "source.toby3d.me/website/oauth/internal/token/repository/memory"
|
|
|
|
"source.toby3d.me/website/oauth/internal/token/usecase"
|
|
|
|
)
|
|
|
|
|
2021-09-20 18:25:08 +00:00
|
|
|
func TestVerify(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
repo := repository.NewMemoryTokenRepository(new(sync.Map))
|
|
|
|
accessToken := domain.NewToken()
|
2021-09-20 18:25:08 +00:00
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
require.NoError(t, repo.Create(context.TODO(), accessToken))
|
2021-09-20 18:25:08 +00:00
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
token, err := usecase.NewTokenUseCase(repo).Verify(context.TODO(), accessToken.AccessToken)
|
|
|
|
require.NoError(t, err)
|
|
|
|
assert.Equal(t, accessToken, token)
|
2021-09-20 18:25:08 +00:00
|
|
|
}
|
|
|
|
|
2021-09-20 15:45:54 +00:00
|
|
|
func TestRevoke(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
repo := repository.NewMemoryTokenRepository(new(sync.Map))
|
|
|
|
accessToken := domain.TestToken(t)
|
2021-09-20 15:45:54 +00:00
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
require.NoError(t, repo.Create(context.TODO(), accessToken))
|
2021-09-20 15:45:54 +00:00
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
token, err := repo.Get(context.TODO(), accessToken.AccessToken)
|
|
|
|
require.NoError(t, err)
|
|
|
|
assert.NotNil(t, token)
|
2021-09-20 15:45:54 +00:00
|
|
|
|
2021-09-29 20:35:39 +00:00
|
|
|
require.NoError(t, usecase.NewTokenUseCase(repo).Revoke(context.TODO(), token.AccessToken))
|
2021-09-20 15:45:54 +00:00
|
|
|
|
|
|
|
token, err = repo.Get(context.TODO(), token.AccessToken)
|
2021-09-29 20:35:39 +00:00
|
|
|
require.NoError(t, err)
|
|
|
|
assert.Nil(t, token)
|
2021-09-20 15:45:54 +00:00
|
|
|
}
|