2021-12-30 00:27:52 +00:00
|
|
|
package memory_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"path"
|
|
|
|
"sync"
|
|
|
|
"testing"
|
2022-01-20 19:45:26 +00:00
|
|
|
"time"
|
2021-12-30 00:27:52 +00:00
|
|
|
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
2022-01-04 17:31:33 +00:00
|
|
|
"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
|
|
|
)
|
|
|
|
|
2022-01-20 19:45:26 +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.Background(), 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)
|
2022-01-20 19:45:26 +00:00
|
|
|
store.Store(path.Join(repository.DefaultPathPrefix, ticket.Ticket), &repository.Ticket{
|
|
|
|
CreatedAt: time.Now().UTC(),
|
|
|
|
Ticket: ticket,
|
|
|
|
})
|
2021-12-30 00:27:52 +00:00
|
|
|
|
2022-01-20 19:45:26 +00:00
|
|
|
result, err := repository.NewMemoryTicketRepository(store, domain.TestConfig(t)).
|
|
|
|
GetAndDelete(context.Background(), ticket.Ticket)
|
2021-12-30 00:27:52 +00:00
|
|
|
require.NoError(t, err)
|
2022-01-20 19:45:26 +00:00
|
|
|
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
|
|
|
}
|