auth/internal/ticket/repository/memory/memory_ticket_test.go

54 lines
1.3 KiB
Go
Raw Normal View History

2021-12-30 00:27:52 +00:00
package memory_test
import (
"context"
"path"
"sync"
"testing"
"time"
2021-12-30 00:27:52 +00:00
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"source.toby3d.me/website/indieauth/internal/domain"
repository "source.toby3d.me/website/indieauth/internal/ticket/repository/memory"
2021-12-30 00:27:52 +00:00
)
func TestCreate(t *testing.T) {
t.Parallel()
store := new(sync.Map)
ticket := domain.TestTicket(t)
require.NoError(t, repository.NewMemoryTicketRepository(store, domain.TestConfig(t)).
Create(context.TODO(), ticket))
src, ok := store.Load(path.Join(repository.DefaultPathPrefix, ticket.Ticket))
require.True(t, ok)
result, ok := src.(*repository.Ticket)
require.True(t, ok)
assert.Equal(t, ticket, result.Ticket)
}
func TestGetAndDelete(t *testing.T) {
2021-12-30 00:27:52 +00:00
t.Parallel()
ticket := domain.TestTicket(t)
store := new(sync.Map)
store.Store(path.Join(repository.DefaultPathPrefix, ticket.Ticket), &repository.Ticket{
CreatedAt: time.Now().UTC(),
Ticket: ticket,
})
2021-12-30 00:27:52 +00:00
result, err := repository.NewMemoryTicketRepository(store, domain.TestConfig(t)).
GetAndDelete(context.TODO(), ticket.Ticket)
2021-12-30 00:27:52 +00:00
require.NoError(t, err)
assert.Equal(t, ticket, result)
src, ok := store.Load(path.Join(repository.DefaultPathPrefix, ticket.Ticket))
assert.False(t, ok)
assert.Nil(t, src)
2021-12-30 00:27:52 +00:00
}