Skip to content
File

Blob: kv/sqlite3/simple_test.go

go79 lines
1package sqlite3
2 
3import (
4 "context"
5 "crypto/rand"
6 "testing"
7 
8 "github.com/stretchr/testify/assert"
9)
10 
11func TestEmpty(t *testing.T) {
12 as := assert.New(t)
13 kv := testGetKV(t)
14 
15 key := make([]byte, 6)
16 rand.Read(key)
17 
18 val, err := kv.Get(context.Background(), key)
19 as.NoError(err)
20 as.Nil(val)
21 
22 err = kv.Put(context.Background(), key, []byte("v"))
23 as.NoError(err)
24 
25 val, err = kv.Get(context.Background(), key)
26 as.NoError(err)
27 as.NotNil(val)
28 
29 err = kv.Delete(context.Background(), key)
30 as.NoError(err)
31 
32 val, err = kv.Get(context.Background(), key)
33 as.NoError(err)
34 as.Nil(val)
35 
36 keys, err := kv.RangeKeys(context.Background(), 0, 0)
37 as.NoError(err)
38 exp, err := kv.Export(context.Background(), keys)
39 as.NoError(err)
40 
41 kv2 := testGetKV(t)
42 as.NoError(kv2.Import(context.Background(), keys, exp))
43 
44 val, err = kv2.Get(context.Background(), key)
45 as.NoError(err)
46 as.Nil(val)
47 
48 err = kv2.Put(context.Background(), key, []byte{})
49 as.NoError(err)
50 
51 val, err = kv2.Get(context.Background(), key)
52 as.NoError(err)
53 as.NotNil(val)
54}
55 
56func TestEmptyValueTransferRoundTrip(t *testing.T) {
57 as := assert.New(t)
58 kv := testGetKV(t)
59 
60 key := make([]byte, 6)
61 rand.Read(key)
62 
63 err := kv.Put(context.Background(), key, []byte{})
64 as.NoError(err)
65 
66 keys, err := kv.RangeKeys(context.Background(), 0, 0)
67 as.NoError(err)
68 exp, err := kv.Export(context.Background(), keys)
69 as.NoError(err)
70 
71 kv2 := testGetKV(t)
72 as.NoError(kv2.Import(context.Background(), keys, exp))
73 
74 val, err := kv2.Get(context.Background(), key)
75 as.NoError(err)
76 as.NotNil(val)
77 as.Len(val, 0)
78}