github.com/Finschia/finschia-sdk@v0.48.1/server/mock/store_test.go (about) 1 package mock 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 dbm "github.com/tendermint/tm-db" 9 10 sdk "github.com/Finschia/finschia-sdk/types" 11 ) 12 13 func TestStore(t *testing.T) { 14 db := dbm.NewMemDB() 15 cms := NewCommitMultiStore() 16 17 key := sdk.NewKVStoreKey("test") 18 cms.MountStoreWithDB(key, sdk.StoreTypeIAVL, db) 19 err := cms.LoadLatestVersion() 20 require.Nil(t, err) 21 22 store := cms.GetKVStore(key) 23 require.NotNil(t, store) 24 25 k := []byte("hello") 26 v := []byte("world") 27 require.False(t, store.Has(k)) 28 store.Set(k, v) 29 require.True(t, store.Has(k)) 30 require.Equal(t, v, store.Get(k)) 31 store.Delete(k) 32 require.False(t, store.Has(k)) 33 require.Panics(t, func() { store.Set([]byte(""), v) }, "setting an empty key should panic") 34 require.Panics(t, func() { store.Set(nil, v) }, "setting a nil key should panic") 35 } 36 37 func TestMultiStore(t *testing.T) { 38 store := multiStore{} 39 require.Panics(t, func() { store.Snapshot(1, nil) }, "Snapshot should panic") 40 require.Panics(t, func() { store.Restore(1, 1, nil) }, "Restore should panic") 41 require.Panics(t, func() { store.SetIAVLDisableFastNode(false) }, "SetIAVLDisableFastNode should panic") 42 }