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  }