diff --git a/store_test.go b/store_test.go new file mode 100644 index 0000000..e8f7ce9 --- /dev/null +++ b/store_test.go @@ -0,0 +1,69 @@ +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" { + t.Errorf("Mismatach: %+v", out1) + } + + out2 := &storeTest{ + Id: "id2", + } + + err = store.Read(out2) + if err != nil { + t.Fatal(err) + } + + if out2.Opaque != "bar" { + t.Errorf("Mismatach: %+v", out2) + } +} + +type storeTest struct { + Id string + Opaque string +} + +func (st *storeTest) GetType() string { + return "storeTest" +} + +func (st *storeTest) GetId() string { + return st.Id +}