github.com/Finschia/finschia-sdk@v0.48.1/x/authz/keeper/genesis_test.go (about) 1 package keeper_test 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/suite" 8 tmproto "github.com/tendermint/tendermint/proto/tendermint/types" 9 10 "github.com/Finschia/finschia-sdk/crypto/keys/secp256k1" 11 "github.com/Finschia/finschia-sdk/simapp" 12 sdk "github.com/Finschia/finschia-sdk/types" 13 "github.com/Finschia/finschia-sdk/x/authz/keeper" 14 bank "github.com/Finschia/finschia-sdk/x/bank/types" 15 ) 16 17 type GenesisTestSuite struct { 18 suite.Suite 19 20 ctx sdk.Context 21 keeper keeper.Keeper 22 } 23 24 func (suite *GenesisTestSuite) SetupTest() { 25 checkTx := false 26 app := simapp.Setup(checkTx) 27 28 suite.ctx = app.BaseApp.NewContext(checkTx, tmproto.Header{Height: 1}) 29 suite.keeper = app.AuthzKeeper 30 } 31 32 var ( 33 granteePub = secp256k1.GenPrivKey().PubKey() 34 granterPub = secp256k1.GenPrivKey().PubKey() 35 granteeAddr = sdk.AccAddress(granteePub.Address()) 36 granterAddr = sdk.AccAddress(granterPub.Address()) 37 ) 38 39 func (suite *GenesisTestSuite) TestImportExportGenesis() { 40 coins := sdk.NewCoins(sdk.NewCoin("foo", sdk.NewInt(1_000))) 41 42 now := suite.ctx.BlockHeader().Time 43 grant := &bank.SendAuthorization{SpendLimit: coins} 44 err := suite.keeper.SaveGrant(suite.ctx, granteeAddr, granterAddr, grant, now.Add(time.Hour)) 45 suite.Require().NoError(err) 46 genesis := suite.keeper.ExportGenesis(suite.ctx) 47 48 // Clear keeper 49 suite.keeper.DeleteGrant(suite.ctx, granteeAddr, granterAddr, grant.MsgTypeURL()) 50 51 suite.keeper.InitGenesis(suite.ctx, genesis) 52 newGenesis := suite.keeper.ExportGenesis(suite.ctx) 53 suite.Require().Equal(genesis, newGenesis) 54 } 55 56 func TestGenesisTestSuite(t *testing.T) { 57 suite.Run(t, new(GenesisTestSuite)) 58 }