github.com/cosmos/cosmos-sdk@v0.50.10/x/crisis/keeper/genesis_test.go (about) 1 package keeper_test 2 3 import ( 4 "testing" 5 6 "github.com/golang/mock/gomock" 7 "github.com/stretchr/testify/suite" 8 9 sdkmath "cosmossdk.io/math" 10 storetypes "cosmossdk.io/store/types" 11 12 "github.com/cosmos/cosmos-sdk/codec" 13 addresscodec "github.com/cosmos/cosmos-sdk/codec/address" 14 "github.com/cosmos/cosmos-sdk/runtime" 15 "github.com/cosmos/cosmos-sdk/testutil" 16 sdk "github.com/cosmos/cosmos-sdk/types" 17 moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" 18 "github.com/cosmos/cosmos-sdk/x/crisis" 19 "github.com/cosmos/cosmos-sdk/x/crisis/keeper" 20 crisistestutil "github.com/cosmos/cosmos-sdk/x/crisis/testutil" 21 "github.com/cosmos/cosmos-sdk/x/crisis/types" 22 ) 23 24 type GenesisTestSuite struct { 25 suite.Suite 26 27 sdkCtx sdk.Context 28 keeper keeper.Keeper 29 cdc codec.BinaryCodec 30 } 31 32 func TestGenesisTestSuite(t *testing.T) { 33 suite.Run(t, new(GenesisTestSuite)) 34 } 35 36 func (s *GenesisTestSuite) SetupTest() { 37 key := storetypes.NewKVStoreKey(types.StoreKey) 38 storeService := runtime.NewKVStoreService(key) 39 testCtx := testutil.DefaultContextWithDB(s.T(), key, storetypes.NewTransientStoreKey("transient_test")) 40 encCfg := moduletestutil.MakeTestEncodingConfig(crisis.AppModuleBasic{}) 41 42 // gomock initializations 43 ctrl := gomock.NewController(s.T()) 44 s.cdc = codec.NewProtoCodec(encCfg.InterfaceRegistry) 45 s.sdkCtx = testCtx.Ctx 46 47 supplyKeeper := crisistestutil.NewMockSupplyKeeper(ctrl) 48 49 s.keeper = *keeper.NewKeeper(s.cdc, storeService, 5, supplyKeeper, "", "", addresscodec.NewBech32Codec("cosmos")) 50 } 51 52 func (s *GenesisTestSuite) TestImportExportGenesis() { 53 // default params 54 constantFee := sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1000)) 55 err := s.keeper.ConstantFee.Set(s.sdkCtx, constantFee) 56 s.Require().NoError(err) 57 genesis := s.keeper.ExportGenesis(s.sdkCtx) 58 59 // set constant fee to zero 60 constantFee = sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(0)) 61 err = s.keeper.ConstantFee.Set(s.sdkCtx, constantFee) 62 s.Require().NoError(err) 63 64 s.keeper.InitGenesis(s.sdkCtx, genesis) 65 newGenesis := s.keeper.ExportGenesis(s.sdkCtx) 66 s.Require().Equal(genesis, newGenesis) 67 } 68 69 func (s *GenesisTestSuite) TestInitGenesis() { 70 genesisState := types.DefaultGenesisState() 71 genesisState.ConstantFee = sdk.NewCoin(sdk.DefaultBondDenom, sdkmath.NewInt(1000)) 72 s.keeper.InitGenesis(s.sdkCtx, genesisState) 73 74 constantFee, err := s.keeper.ConstantFee.Get(s.sdkCtx) 75 s.Require().NoError(err) 76 s.Require().Equal(genesisState.ConstantFee, constantFee) 77 }