cosmos-sdk/testutil/collections_test.go

55 lines
1.3 KiB
Go

package testutil_test
import (
"testing"
"github.com/stretchr/testify/require"
storetypes "cosmossdk.io/store/types"
"github.com/cosmos/cosmos-sdk/testutil"
)
func TestDiffCollectionsMigration(t *testing.T) {
key := storetypes.NewKVStoreKey("test")
ctx := testutil.DefaultContext(key, storetypes.NewTransientStoreKey("transient"))
// First try with some invalid hash
err := testutil.DiffCollectionsMigration(
ctx,
key,
5,
func(i int64) {
ctx.KVStore(key).Set([]byte{byte(i)}, []byte{byte(i)})
},
"abcdef0123456789",
)
require.Error(t, err)
// Now reset and try with the correct hash
ctx = testutil.DefaultContext(key, storetypes.NewTransientStoreKey("transient"))
err = testutil.DiffCollectionsMigration(
ctx,
key,
5,
func(i int64) {
ctx.KVStore(key).Set([]byte{byte(i)}, []byte{byte(i)})
},
"79541ed9da9c16cb7a1d43d5a3d5f6ee31a873c85a6cb4334fb99e021ee0e556",
)
require.NoError(t, err)
// Change the data a little and it will result in an error
ctx = testutil.DefaultContext(key, storetypes.NewTransientStoreKey("transient"))
err = testutil.DiffCollectionsMigration(
ctx,
key,
5,
func(i int64) {
ctx.KVStore(key).Set([]byte{byte(i)}, []byte{byte(i + 1)})
},
"79541ed9da9c16cb7a1d43d5a3d5f6ee31a873c85a6cb4334fb99e021ee0e556",
)
require.Error(t, err)
}