83 lines
1.4 KiB
Go
83 lines
1.4 KiB
Go
package authstore
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestStore(t *testing.T) {
|
|
// Note: test output is cached (running twice will not result in two records)
|
|
|
|
connStr := "postgres://postgres:postgres@localhost/postgres"
|
|
if strings.Contains(connStr, "@localhost/") || strings.Contains(connStr, "@localhost:") {
|
|
connStr += "?sslmode=disable"
|
|
} else {
|
|
connStr += "?sslmode=required"
|
|
}
|
|
|
|
// TODO url.Parse
|
|
|
|
store, err := NewStore(connStr, initSQL)
|
|
if nil != err {
|
|
t.Fatal("connection error", err)
|
|
return
|
|
}
|
|
|
|
num := "8"
|
|
slug := num + "-xxx-client"
|
|
secret := "3-xxxx-zzzz-yyyy"
|
|
pubkey := ToPublicKeyString(secret)
|
|
auth1 := &Authorization{
|
|
Slug: slug,
|
|
SharedKey: secret,
|
|
PublicKey: pubkey,
|
|
}
|
|
err = store.Add(auth1)
|
|
if nil != err {
|
|
t.Fatal("add error", err)
|
|
return
|
|
}
|
|
|
|
auth, err := store.Get(slug)
|
|
if nil != err {
|
|
t.Fatal("get by slug error", err)
|
|
return
|
|
}
|
|
|
|
auth, err = store.Get(pubkey)
|
|
if nil != err {
|
|
t.Fatal("get by pub error", err)
|
|
return
|
|
}
|
|
|
|
auth, err = store.Get(secret)
|
|
if nil != err {
|
|
t.Fatal("get by key error", err)
|
|
return
|
|
}
|
|
|
|
auth1.MachinePPID = "a-secretish-id"
|
|
err = store.Set(auth1)
|
|
if nil != err {
|
|
t.Fatal("set machine id", err)
|
|
return
|
|
}
|
|
|
|
err = store.Delete(auth1)
|
|
if nil != err {
|
|
t.Fatal("set machine id", err)
|
|
return
|
|
}
|
|
|
|
auth, err = store.Get(slug)
|
|
if nil == err {
|
|
t.Fatal("should get nothing back")
|
|
return
|
|
}
|
|
|
|
store.Close()
|
|
|
|
fmt.Printf("%#v\n", auth)
|
|
}
|