Files
2026-07-19 17:00:47 +02:00

48 lines
1.0 KiB
Go

package db0102
import (
"bytes"
"testing"
"github.com/stretchr/testify/assert"
)
func TestKVBasic(t *testing.T) {
kv := KV{}
err := kv.Open()
assert.Nil(t, err)
defer kv.Close()
updated, err := kv.Set([]byte("k1"), []byte("v1"))
assert.True(t, updated && err == nil)
val, ok, err := kv.Get([]byte("k1"))
assert.True(t, string(val) == "v1" && ok && err == nil)
_, ok, err = kv.Get([]byte("xxx"))
assert.True(t, !ok && err == nil)
updated, err = kv.Del([]byte("xxx"))
assert.True(t, !updated && err == nil)
updated, err = kv.Del([]byte("k1"))
assert.True(t, updated && err == nil)
_, ok, err = kv.Get([]byte("xxx"))
assert.True(t, !ok && err == nil)
}
func TestEntryEncode(t *testing.T) {
ent := Entry{key: []byte("k1"), val: []byte("xxx")}
data := []byte{2, 0, 0, 0, 3, 0, 0, 0, 'k', '1', 'x', 'x', 'x'}
assert.Equal(t, data, ent.Encode())
decoded := Entry{}
err := decoded.Decode(bytes.NewBuffer(data))
assert.Nil(t, err)
assert.Equal(t, ent, decoded)
}
// QzBQWVJJOUhU https://trialofcode.org/