slowlorisdb/db/leveldb_test.go
db/leveldb_test.goRaw
1package db
2
3import (
4 "io/ioutil"
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8
9 "github.com/syndtr/goleveldb/leveldb/errors"
10)
11
12func TestNew(t *testing.T) {
13 dir, err := ioutil.TempDir("", "db")
14 assert.Nil(t, err)
15 _, err = New(dir)
16 assert.Nil(t, err)
17}
18func TestPutAndGet(t *testing.T) {
19 dir, err := ioutil.TempDir("", "db")
20 assert.Nil(t, err)
21 db, err := New(dir)
22 assert.Nil(t, err)
23
24 k := []byte("test key")
25 v := []byte("test value")
26
27 err = db.Put(k, v)
28 assert.Nil(t, err)
29
30 vg, err := db.Get(k)
31 assert.Nil(t, err)
32 assert.Equal(t, v, vg)
33
34}
35
36func TestPrefix(t *testing.T) {
37 dir, err := ioutil.TempDir("", "db")
38 assert.Nil(t, err)
39 db, err := New(dir)
40 assert.Nil(t, err)
41
42 dbPrefix := db.WithPrefix([]byte("prefix1"))
43
44 err = dbPrefix.Put([]byte("k1"), []byte("v1"))
45 assert.Nil(t, err)
46
47 _, err = db.Get([]byte("k1"))
48 assert.Equal(t, err, errors.ErrNotFound)
49
50 v1, err := dbPrefix.Get([]byte("k1"))
51 assert.Nil(t, err)
52 assert.Equal(t, []byte("v1"), v1)
53}