store simplification (use name,key->value so we can manage many k-v stores)
[epoint] / store / store_test.go
diff --git a/store/store_test.go b/store/store_test.go
new file mode 100644 (file)
index 0000000..f36fcbb
--- /dev/null
@@ -0,0 +1,79 @@
+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))
+               }
+       }
+}