2022-03-15 20:49:55 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import "os"
|
|
|
|
|
import "testing"
|
|
|
|
|
|
|
|
|
|
func TestStore(t *testing.T) {
|
|
|
|
|
dir, err := os.MkdirTemp("", "")
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
defer os.RemoveAll(dir)
|
|
|
|
|
|
|
|
|
|
store := NewStore(dir)
|
|
|
|
|
|
|
|
|
|
err = store.Write(&storeTest{
|
|
|
|
|
Id: "id1",
|
|
|
|
|
Opaque: "foo",
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = store.Write(&storeTest{
|
|
|
|
|
Id: "id2",
|
|
|
|
|
Opaque: "bar",
|
|
|
|
|
})
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
out1 := &storeTest{
|
|
|
|
|
Id: "id1",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = store.Read(out1)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if out1.Opaque != "foo" {
|
2022-03-16 03:32:03 +00:00
|
|
|
t.Errorf("%+v", out1)
|
2022-03-15 20:49:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
out2 := &storeTest{
|
|
|
|
|
Id: "id2",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
err = store.Read(out2)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if out2.Opaque != "bar" {
|
2022-03-16 03:32:03 +00:00
|
|
|
t.Errorf("%+v", out2)
|
2022-03-15 20:49:55 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type storeTest struct {
|
|
|
|
|
Id string
|
|
|
|
|
Opaque string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (st *storeTest) GetType() string {
|
|
|
|
|
return "storeTest"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (st *storeTest) GetId() string {
|
|
|
|
|
return st.Id
|
|
|
|
|
}
|