+package store
+
+import (
+ "testing"
+)
+
+var testData = map[string]string {
+ "A" : "a",
+ "B" : "b",
+ "C" : "c",
+ "D" : "d",
+ "foo_bar-baz" : "a\nb\nc\nd\n",
+}
+
+func TestStore(t *testing.T) {
+ c, err := Open("teststore")
+ defer c.Close()
+ if err != nil {
+ t.Errorf("open failed: %s", err)
+ return
+ }
+ err = c.Ensure("abc")
+ if err != nil {
+ t.Errorf("ensure failed: %s", err)
+ return
+ }
+ for k, v := range testData {
+ err = c.Set("abc", k, []byte(v))
+ if err != nil {
+ t.Errorf("Set failed: %s", err)
+ }
+ }
+ for k, v := range testData {
+ d, err := c.Get("abc", k)
+ if err != nil {
+ t.Errorf("Get failed: %s", err)
+ continue
+ }
+ if string(d) != v {
+ t.Errorf("expected %s; got %s", v, string(d))
+ }
+ }
+}
+
+func TestPersist(t *testing.T) {
+ c, err := Open("teststore")
+ if err != nil {
+ t.Errorf("open failed: %s", err)
+ return
+ }
+ err = c.Ensure("abc")
+ if err != nil {
+ t.Errorf("ensure failed: %s", err)
+ return
+ }
+ for k, v := range testData {
+ err = c.Set("abc", k, []byte(v))
+ if err != nil {
+ t.Errorf("Set failed: %s", err)
+ }
+ }
+ c.Close()
+
+ c, err = Open("teststore")
+ if err != nil {
+ t.Errorf("open failed: %s", err)
+ return
+ }
+ for k, v := range testData {
+ d, err := c.Get("abc", k)
+ if err != nil {
+ t.Errorf("Get failed: %s", err)
+ continue
+ }
+ if string(d) != v {
+ t.Errorf("expected %s; got %s", v, string(d))
+ }
+ }
+}