internal/database: write the rest of the tests
This commit is contained in:
parent
0088a7dc09
commit
220b2a8994
|
@ -189,6 +189,7 @@ func (b *boltTokenStorage) Put(ctx context.Context, t Token) (Token, error) {
|
|||
t.ID = uuid.New()
|
||||
t.CreatedAt = time.Now()
|
||||
t.Active = true
|
||||
t.Body = uuid.New()
|
||||
}
|
||||
|
||||
err := b.db.Save(&t)
|
||||
|
|
|
@ -5,7 +5,6 @@ import (
|
|||
"os"
|
||||
"testing"
|
||||
|
||||
"git.xeserv.us/xena/route/internal/routecrypto"
|
||||
"github.com/Xe/uuid"
|
||||
)
|
||||
|
||||
|
@ -57,21 +56,9 @@ func testCerts(ctx context.Context, t *testing.T, c Certs) {
|
|||
}
|
||||
|
||||
func TestBoltDBCertStorage(t *testing.T) {
|
||||
k, err := routecrypto.ParseKey(cryptoKey)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
p := uuid.New()
|
||||
st, p, ctx, cancel := newTestBoltStorage(t)
|
||||
defer os.RemoveAll(p)
|
||||
|
||||
st, err := NewBoltStorage(p, k)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer st.Close()
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
testCerts(ctx, t, st.Certs())
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"git.xeserv.us/xena/route/internal/routecrypto"
|
||||
"github.com/Xe/uuid"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
func newTestBoltStorage(t *testing.T) (Storage, string, context.Context, context.CancelFunc) {
|
||||
k, err := routecrypto.ParseKey(cryptoKey)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
p := uuid.New()
|
||||
|
||||
st, err := NewBoltStorage(p, k)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
|
||||
return st, p, ctx, cancel
|
||||
}
|
|
@ -0,0 +1,77 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/Xe/uuid"
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
const (
|
||||
creator = "shachi"
|
||||
hostBase = "shachi.loves."
|
||||
)
|
||||
|
||||
func testRoutes(ctx context.Context, t *testing.T, r Routes) {
|
||||
hostname := hostBase + uuid.New()
|
||||
id := uuid.New()
|
||||
|
||||
t.Run("put", func(t *testing.T) {
|
||||
rt := Route{
|
||||
ID: id,
|
||||
Creator: creator,
|
||||
Hostname: hostname,
|
||||
}
|
||||
|
||||
_, err := r.Put(ctx, rt)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("get", func(t *testing.T) {
|
||||
_, err := r.Get(ctx, id)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("getHost", func(t *testing.T) {
|
||||
_, err := r.GetHost(ctx, hostname)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("getAll", func(t *testing.T) {
|
||||
res, err := r.GetAll(ctx, creator)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(res) == 0 {
|
||||
t.Fatal("didn't get any routes back for shachi")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("delete", func(t *testing.T) {
|
||||
_, err := r.Delete(ctx, Route{ID: id})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = r.Get(ctx, id)
|
||||
if err == nil {
|
||||
t.Fatal("able to fetch a deleted item")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestBoltDBRouteStorage(t *testing.T) {
|
||||
st, p, ctx, cancel := newTestBoltStorage(t)
|
||||
defer os.RemoveAll(p)
|
||||
defer st.Close()
|
||||
defer cancel()
|
||||
|
||||
testRoutes(ctx, t, st.Routes())
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
package database
|
||||
|
||||
import (
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"golang.org/x/net/context"
|
||||
)
|
||||
|
||||
func testTokens(ctx context.Context, t *testing.T, tk Tokens) {
|
||||
var (
|
||||
tokenID string
|
||||
tokenBody string
|
||||
)
|
||||
|
||||
t.Run("put", func(t *testing.T) {
|
||||
tok := Token{
|
||||
Owner: creator,
|
||||
}
|
||||
|
||||
tok2, err := tk.Put(ctx, tok)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
tokenID = tok2.ID
|
||||
tokenBody = tok2.Body
|
||||
})
|
||||
|
||||
t.Run("get", func(t *testing.T) {
|
||||
_, err := tk.Get(ctx, tokenID)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("getBody", func(t *testing.T) {
|
||||
_, err := tk.GetBody(ctx, tokenBody)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("getAll", func(t *testing.T) {
|
||||
lis, err := tk.GetAll(ctx, creator)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(lis) == 0 {
|
||||
t.Fatal("expected results but got none")
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("delete", func(t *testing.T) {
|
||||
_, err := tk.Delete(ctx, tokenID)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
_, err = tk.Get(ctx, tokenID)
|
||||
if err == nil {
|
||||
t.Fatal("can fetch a deleted resource")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func TestBoltDBTokenStorage(t *testing.T) {
|
||||
st, p, ctx, cancel := newTestBoltStorage(t)
|
||||
defer os.RemoveAll(p)
|
||||
defer st.Close()
|
||||
defer cancel()
|
||||
|
||||
testTokens(ctx, t, st.Tokens())
|
||||
}
|
Loading…
Reference in New Issue