1
0
Fork 0
mirror of https://git.sr.ht/~ashkeel/strimertul synced 2024-09-18 01:50:50 +00:00
strimertul/database/database_test.go

80 lines
1.5 KiB
Go

package database
import (
kv "github.com/strimertul/kilovolt/v10"
"go.uber.org/zap/zaptest"
"testing"
)
func TestLocalDBClient_PutKey(t *testing.T) {
client, store := createLocalClient(t)
defer cleanupClient(client)
// Store a key using the local client
key := "test"
value := "value"
err := client.PutKey(key, value)
if err != nil {
t.Fatal(err)
}
// Retrieve the key from the store and verify it
stored, err := store.Get(key)
if err != nil {
t.Fatal(err)
}
if stored != value {
t.Fatalf("expected %s, got %s", value, stored)
}
}
func TestLocalDBClient_GetKey(t *testing.T) {
client, store := createLocalClient(t)
defer cleanupClient(client)
// Store a key directly in the store
key := "test"
value := "value"
err := store.Set(key, value)
if err != nil {
t.Fatal(err)
}
// Retrieve the key using the local client
stored, err := client.GetKey(key)
if err != nil {
t.Fatal(err)
}
if stored != value {
t.Fatalf("expected %s, got %s", value, stored)
}
}
func createLocalClient(t *testing.T) (*LocalDBClient, kv.Driver) {
logger := zaptest.NewLogger(t)
// Create in-memory store and hub
inmemStore := kv.MakeBackend()
hub, err := kv.NewHub(inmemStore, kv.HubOptions{}, logger)
if err != nil {
t.Fatal(err)
}
go hub.Run()
// Create local client
client, err := NewLocalClient(hub, logger)
if err != nil {
t.Fatal(err)
}
return client, inmemStore
}
func cleanupClient(client *LocalDBClient) {
if client.hub != nil {
_ = client.Close()
client.hub.Close()
}
}