2020-02-19 03:52:20 -08:00
|
|
|
package keeper_test
|
2019-05-27 17:47:12 -07:00
|
|
|
|
|
|
|
import (
|
2020-02-27 02:53:22 -08:00
|
|
|
abci "github.com/tendermint/tendermint/abci/types"
|
|
|
|
"github.com/tendermint/tendermint/libs/log"
|
|
|
|
dbm "github.com/tendermint/tm-db"
|
|
|
|
|
2020-08-13 06:20:02 -07:00
|
|
|
"github.com/cosmos/cosmos-sdk/simapp"
|
|
|
|
|
2019-05-27 17:47:12 -07:00
|
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
|
|
"github.com/cosmos/cosmos-sdk/store"
|
|
|
|
sdk "github.com/cosmos/cosmos-sdk/types"
|
2020-02-19 03:52:20 -08:00
|
|
|
paramskeeper "github.com/cosmos/cosmos-sdk/x/params/keeper"
|
2019-05-27 17:47:12 -07:00
|
|
|
)
|
|
|
|
|
2020-08-13 06:20:02 -07:00
|
|
|
func testComponents() (*codec.LegacyAmino, sdk.Context, sdk.StoreKey, sdk.StoreKey, paramskeeper.Keeper) {
|
|
|
|
marshaler := simapp.MakeEncodingConfig().Marshaler
|
|
|
|
legacyAmino := createTestCodec()
|
2020-02-19 03:52:20 -08:00
|
|
|
mkey := sdk.NewKVStoreKey("test")
|
|
|
|
tkey := sdk.NewTransientStoreKey("transient_test")
|
|
|
|
ctx := defaultContext(mkey, tkey)
|
2020-08-13 06:20:02 -07:00
|
|
|
keeper := paramskeeper.NewKeeper(marshaler, legacyAmino, mkey, tkey)
|
2020-02-19 03:52:20 -08:00
|
|
|
|
2020-08-13 06:20:02 -07:00
|
|
|
return legacyAmino, ctx, mkey, tkey, keeper
|
2020-02-19 03:52:20 -08:00
|
|
|
}
|
|
|
|
|
2019-05-27 17:47:12 -07:00
|
|
|
type invalid struct{}
|
|
|
|
|
|
|
|
type s struct {
|
|
|
|
I int
|
|
|
|
}
|
|
|
|
|
2020-08-13 06:20:02 -07:00
|
|
|
func createTestCodec() *codec.LegacyAmino {
|
2019-05-27 17:47:12 -07:00
|
|
|
cdc := codec.New()
|
|
|
|
sdk.RegisterCodec(cdc)
|
|
|
|
cdc.RegisterConcrete(s{}, "test/s", nil)
|
|
|
|
cdc.RegisterConcrete(invalid{}, "test/invalid", nil)
|
2020-08-13 06:20:02 -07:00
|
|
|
return cdc
|
2019-05-27 17:47:12 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
func defaultContext(key sdk.StoreKey, tkey sdk.StoreKey) sdk.Context {
|
|
|
|
db := dbm.NewMemDB()
|
|
|
|
cms := store.NewCommitMultiStore(db)
|
|
|
|
cms.MountStoreWithDB(key, sdk.StoreTypeIAVL, db)
|
|
|
|
cms.MountStoreWithDB(tkey, sdk.StoreTypeTransient, db)
|
|
|
|
err := cms.LoadLatestVersion()
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
ctx := sdk.NewContext(cms, abci.Header{}, false, log.NewNopLogger())
|
|
|
|
return ctx
|
|
|
|
}
|