arnaucube
arnaucube/slowlorisdbPublic Self-hosted repository
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}