cosmos-sdk/server/mock/store_test.go
mergify[bot] 150d17c3fc
feat: replace the cosmos-db usecases in the tests with core/testing (backport #21525) (#21720)
Co-authored-by: cool-developer <51834436+cool-develope@users.noreply.github.com>
Co-authored-by: Julien Robert <julien@rbrt.fr>
2024-09-13 20:18:05 +00:00

36 lines
846 B
Go

package mock
import (
"testing"
"github.com/stretchr/testify/require"
coretesting "cosmossdk.io/core/testing"
storetypes "cosmossdk.io/store/types"
)
func TestStore(t *testing.T) {
db := coretesting.NewMemDB()
cms := NewCommitMultiStore()
key := storetypes.NewKVStoreKey("test")
cms.MountStoreWithDB(key, storetypes.StoreTypeIAVL, db)
err := cms.LoadLatestVersion()
require.Nil(t, err)
store := cms.GetKVStore(key)
require.NotNil(t, store)
k := []byte("hello")
v := []byte("world")
require.False(t, store.Has(k))
store.Set(k, v)
require.True(t, store.Has(k))
require.Equal(t, v, store.Get(k))
store.Delete(k)
require.False(t, store.Has(k))
require.Panics(t, func() { store.Set([]byte(""), v) }, "setting an empty key should panic")
require.Panics(t, func() { store.Set(nil, v) }, "setting a nil key should panic")
}