-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgobdb_test.go
107 lines (93 loc) · 2.29 KB
/
gobdb_test.go
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package gobdb_test
import (
"testing"
"github.com/google/go-cmp/cmp"
"github.com/waltervargas/gobdb"
)
func TestList(t *testing.T) {
t.Parallel()
db, err := gobdb.Open[string]("tests/list.gobdb")
if err != nil {
t.Fatalf("unable to open db: %s", err)
}
want := []string{"barbara", "victor", "walter"}
got := db.List()
if !cmp.Equal(want, got) {
t.Error(cmp.Diff(want, got))
}
}
func TestAdd(t *testing.T) {
t.Parallel()
path := t.TempDir() + "/add.gobdb"
db, err := gobdb.Open[string](path)
if err != nil {
t.Fatalf("unable to open db: %s", err)
}
want := []string{"barbara", "victor", "walter"}
err = db.Add(want...)
if err != nil {
t.Fatalf("unable to add data %v: %s", want, err)
}
got := db.List()
if !cmp.Equal(want, got) {
t.Error(cmp.Diff(want, got))
}
}
func TestDelete(t *testing.T) {
t.Parallel()
path := t.TempDir() + "/db.gobdb"
db, err := gobdb.Open[string](path)
if err != nil {
t.Fatalf("unable to open db: %s", err)
}
want := []string{"barbara", "victor", "walter", "walter"}
err = db.Add(want...)
if err != nil {
t.Errorf("unable to add data %v: %s", want, err)
}
// extra validation, check everything, check the state, tests should not
// depend on other tests.
want = []string{"barbara", "victor", "walter", "walter"}
got := db.List()
if !cmp.Equal(want, got) {
t.Fatal(cmp.Diff(want, got))
}
err = db.Delete("walter")
if err != nil {
t.Fatalf("unable to delete: %s", err)
}
want = []string{"barbara", "victor"}
got = db.List()
if !cmp.Equal(want, got) {
t.Error(cmp.Diff(want, got))
}
}
func TestDeleteAll(t *testing.T) {
t.Parallel()
path := t.TempDir() + "/db.gobdb"
db, err := gobdb.Open[string](path)
if err != nil {
t.Fatalf("unable to open db: %s", err)
}
want := []string{"barbara", "victor", "walter", "walter"}
err = db.Add(want...)
if err != nil {
t.Errorf("unable to add data %v: %s", want, err)
}
// extra validation, check everything, check the state, tests should not
// depend on other tests.
want = []string{"barbara", "victor", "walter", "walter"}
got := db.List()
if !cmp.Equal(want, got) {
t.Fatal(cmp.Diff(want, got))
}
err = db.DeleteAll()
if err != nil {
t.Fatalf("unable to delete all: %s", err)
}
want = []string{}
got = db.List()
if !cmp.Equal(want, got) {
t.Error(cmp.Diff(want, got))
}
}