-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdb_test.go
More file actions
53 lines (45 loc) · 938 Bytes
/
db_test.go
File metadata and controls
53 lines (45 loc) · 938 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package kvstore_test
import (
"testing"
"github.com/flick-web/kvstore"
)
type testObj struct {
X map[string]string
Y string
Z int
}
func TestSqliteStore(t *testing.T) {
memDB := kvstore.NewMemoryStore()
sqliteDB, err := kvstore.NewSqliteDB("keyvalue.db")
if err != nil {
t.Error(err)
}
dbs := []kvstore.KeyValueStore{sqliteDB, memDB}
for _, db := range dbs {
testVal := testObj{
X: map[string]string{"one": "1", "two": "2"},
Y: "Hello!",
Z: 42,
}
err = db.Set("test", "12345", testVal)
if err != nil {
t.Error(err)
}
out := testObj{}
err = db.Get("test", "67890", &out)
if err == nil {
t.Error("Expected ErrKeyNotFound error")
}
if err != kvstore.ErrKeyNotFound {
t.Error(err)
}
err = db.Get("test", "12345", &out)
if err != nil {
t.Error(err)
}
if out.Y != testVal.Y || out.Z != testVal.Z {
t.Error("Objects did not match")
}
db.Delete("test", "12345")
}
}