Files
core/cluster/store/kvs_test.go
2024-07-09 12:26:02 +02:00

114 lines
1.9 KiB
Go

package store
import (
"io/fs"
"testing"
"github.com/stretchr/testify/require"
)
func TestSetKVCommand(t *testing.T) {
s, err := createStore()
require.NoError(t, err)
err = s.applyCommand(Command{
Operation: OpSetKV,
Data: CommandSetKV{
Key: "foo",
Value: "bar",
},
})
require.NoError(t, err)
_, ok := s.data.KVS["foo"]
require.True(t, ok)
}
func TestSetKV(t *testing.T) {
s, err := createStore()
require.NoError(t, err)
err = s.setKV(CommandSetKV{
Key: "foo",
Value: "bar",
})
require.NoError(t, err)
value, err := s.KVSGetValue("foo")
require.NoError(t, err)
require.Equal(t, "bar", value.Value)
updatedAt := value.UpdatedAt
err = s.setKV(CommandSetKV{
Key: "foo",
Value: "baz",
})
require.NoError(t, err)
value, err = s.KVSGetValue("foo")
require.NoError(t, err)
require.Equal(t, "baz", value.Value)
require.Greater(t, value.UpdatedAt, updatedAt)
}
func TestUnsetKVCommand(t *testing.T) {
s, err := createStore()
require.NoError(t, err)
err = s.applyCommand(Command{
Operation: OpSetKV,
Data: CommandSetKV{
Key: "foo",
Value: "bar",
},
})
require.NoError(t, err)
_, ok := s.data.KVS["foo"]
require.True(t, ok)
err = s.applyCommand(Command{
Operation: OpUnsetKV,
Data: CommandUnsetKV{
Key: "foo",
},
})
require.NoError(t, err)
_, ok = s.data.KVS["foo"]
require.False(t, ok)
err = s.applyCommand(Command{
Operation: OpUnsetKV,
Data: CommandUnsetKV{
Key: "foo",
},
})
require.Error(t, err)
require.ErrorIs(t, err, fs.ErrNotExist)
}
func TestUnsetKV(t *testing.T) {
s, err := createStore()
require.NoError(t, err)
err = s.setKV(CommandSetKV{
Key: "foo",
Value: "bar",
})
require.NoError(t, err)
_, err = s.KVSGetValue("foo")
require.NoError(t, err)
err = s.unsetKV(CommandUnsetKV{
Key: "foo",
})
require.NoError(t, err)
_, err = s.KVSGetValue("foo")
require.Error(t, err)
require.ErrorIs(t, err, fs.ErrNotExist)
}