45 lines
932 B
Go
45 lines
932 B
Go
package with_test
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"testing"
|
|
|
|
"gitea.bel.blue/bel/with"
|
|
)
|
|
|
|
func TestKV(t *testing.T) {
|
|
ctx := context.Background()
|
|
if err := with.Sqlite(ctx, ":memory:", func(db *sql.DB) error {
|
|
return with.KV(ctx, db, func(kv with.SQLKV) error {
|
|
if _, err := kv.Get(ctx, "k"); err == nil {
|
|
t.Error("404 no err")
|
|
}
|
|
|
|
if err := kv.Set(ctx, "k", []byte("v")); err != nil {
|
|
t.Error("err on insert", err)
|
|
}
|
|
|
|
if v, err := kv.Get(ctx, "k"); err != nil {
|
|
t.Error("err on get", err)
|
|
} else if string(v) != "v" {
|
|
t.Errorf("expected 'v' but got %q", v)
|
|
}
|
|
|
|
if err := kv.Set(ctx, "k", []byte("v2")); err != nil {
|
|
t.Error("err on update", err)
|
|
}
|
|
|
|
if v, err := kv.Get(ctx, "k"); err != nil {
|
|
t.Error("err on get updated", err)
|
|
} else if string(v) != "v2" {
|
|
t.Errorf("expected 'v2' but got %q", v)
|
|
}
|
|
|
|
return nil
|
|
})
|
|
}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|