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) } }