55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
package storage
|
|
|
|
import (
|
|
"bytes"
|
|
"context"
|
|
"testing"
|
|
|
|
memdb "git.defalsify.org/vise.git/db/mem"
|
|
)
|
|
|
|
func TestSubPrefix(t *testing.T) {
|
|
ctx := context.Background()
|
|
db := memdb.NewMemDb()
|
|
err := db.Connect(ctx, "")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
sdba := NewSubPrefixDb(db, []byte("tinkywinky"))
|
|
err = sdba.Put(ctx, []byte("foo"), []byte("dipsy"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
r, err := sdba.Get(ctx, []byte("foo"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(r, []byte("dipsy")) {
|
|
t.Fatalf("expected 'dipsy', got %s", r)
|
|
}
|
|
|
|
sdbb := NewSubPrefixDb(db, []byte("lala"))
|
|
r, err = sdbb.Get(ctx, []byte("foo"))
|
|
if err == nil {
|
|
t.Fatal("expected not found")
|
|
}
|
|
|
|
err = sdbb.Put(ctx, []byte("foo"), []byte("pu"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
r, err = sdbb.Get(ctx, []byte("foo"))
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !bytes.Equal(r, []byte("pu")) {
|
|
t.Fatalf("expected 'pu', got %s", r)
|
|
}
|
|
|
|
r, err = sdba.Get(ctx, []byte("foo"))
|
|
if !bytes.Equal(r, []byte("dipsy")) {
|
|
t.Fatalf("expected 'dipsy', got %s", r)
|
|
}
|
|
}
|