github.com/cosmos/cosmos-sdk@v0.50.10/x/mint/keeper/grpc_query_test.go (about) 1 package keeper_test 2 3 import ( 4 gocontext "context" 5 "testing" 6 7 "github.com/golang/mock/gomock" 8 "github.com/stretchr/testify/suite" 9 10 storetypes "cosmossdk.io/store/types" 11 12 "github.com/cosmos/cosmos-sdk/baseapp" 13 "github.com/cosmos/cosmos-sdk/runtime" 14 "github.com/cosmos/cosmos-sdk/testutil" 15 sdk "github.com/cosmos/cosmos-sdk/types" 16 moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" 17 authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" 18 govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" 19 "github.com/cosmos/cosmos-sdk/x/mint" 20 "github.com/cosmos/cosmos-sdk/x/mint/keeper" 21 minttestutil "github.com/cosmos/cosmos-sdk/x/mint/testutil" 22 "github.com/cosmos/cosmos-sdk/x/mint/types" 23 ) 24 25 type MintTestSuite struct { 26 suite.Suite 27 28 ctx sdk.Context 29 queryClient types.QueryClient 30 mintKeeper keeper.Keeper 31 } 32 33 func (suite *MintTestSuite) SetupTest() { 34 encCfg := moduletestutil.MakeTestEncodingConfig(mint.AppModuleBasic{}) 35 key := storetypes.NewKVStoreKey(types.StoreKey) 36 storeService := runtime.NewKVStoreService(key) 37 testCtx := testutil.DefaultContextWithDB(suite.T(), key, storetypes.NewTransientStoreKey("transient_test")) 38 suite.ctx = testCtx.Ctx 39 40 // gomock initializations 41 ctrl := gomock.NewController(suite.T()) 42 accountKeeper := minttestutil.NewMockAccountKeeper(ctrl) 43 bankKeeper := minttestutil.NewMockBankKeeper(ctrl) 44 stakingKeeper := minttestutil.NewMockStakingKeeper(ctrl) 45 46 accountKeeper.EXPECT().GetModuleAddress("mint").Return(sdk.AccAddress{}) 47 48 suite.mintKeeper = keeper.NewKeeper( 49 encCfg.Codec, 50 storeService, 51 stakingKeeper, 52 accountKeeper, 53 bankKeeper, 54 authtypes.FeeCollectorName, 55 authtypes.NewModuleAddress(govtypes.ModuleName).String(), 56 ) 57 58 err := suite.mintKeeper.Params.Set(suite.ctx, types.DefaultParams()) 59 suite.Require().NoError(err) 60 suite.Require().NoError(suite.mintKeeper.Minter.Set(suite.ctx, types.DefaultInitialMinter())) 61 62 queryHelper := baseapp.NewQueryServerTestHelper(testCtx.Ctx, encCfg.InterfaceRegistry) 63 types.RegisterQueryServer(queryHelper, keeper.NewQueryServerImpl(suite.mintKeeper)) 64 65 suite.queryClient = types.NewQueryClient(queryHelper) 66 } 67 68 func (suite *MintTestSuite) TestGRPCParams() { 69 params, err := suite.queryClient.Params(gocontext.Background(), &types.QueryParamsRequest{}) 70 suite.Require().NoError(err) 71 kparams, err := suite.mintKeeper.Params.Get(suite.ctx) 72 suite.Require().NoError(err) 73 suite.Require().Equal(params.Params, kparams) 74 75 inflation, err := suite.queryClient.Inflation(gocontext.Background(), &types.QueryInflationRequest{}) 76 suite.Require().NoError(err) 77 minter, err := suite.mintKeeper.Minter.Get(suite.ctx) 78 suite.Require().NoError(err) 79 suite.Require().Equal(inflation.Inflation, minter.Inflation) 80 81 annualProvisions, err := suite.queryClient.AnnualProvisions(gocontext.Background(), &types.QueryAnnualProvisionsRequest{}) 82 suite.Require().NoError(err) 83 suite.Require().Equal(annualProvisions.AnnualProvisions, minter.AnnualProvisions) 84 } 85 86 func TestMintTestSuite(t *testing.T) { 87 suite.Run(t, new(MintTestSuite)) 88 }