package keeper_test import ( "testing" "github.com/golang/mock/gomock" "github.com/stretchr/testify/suite" "github.com/tendermint/tendermint/crypto" tmproto "github.com/tendermint/tendermint/proto/tendermint/types" tmtime "github.com/tendermint/tendermint/types/time" "github.com/cosmos/cosmos-sdk/baseapp" sdktestutil "github.com/cosmos/cosmos-sdk/testutil" "github.com/cosmos/cosmos-sdk/testutil/testdata" sdk "github.com/cosmos/cosmos-sdk/types" moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil" "github.com/cosmos/cosmos-sdk/x/slashing/testutil" slashingtestutil "github.com/cosmos/cosmos-sdk/x/slashing/testutil" slashingkeeper "github.com/cosmos/cosmos-sdk/x/slashing/keeper" govtypes "github.com/cosmos/cosmos-sdk/x/gov/types" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" ) var consAddr = sdk.ConsAddress(sdk.AccAddress([]byte("addr1_______________"))) type KeeperTestSuite struct { suite.Suite ctx sdk.Context stakingKeeper *slashingtestutil.MockStakingKeeper slashingKeeper slashingkeeper.Keeper queryClient slashingtypes.QueryClient msgServer slashingtypes.MsgServer } func (s *KeeperTestSuite) SetupTest() { key := sdk.NewKVStoreKey(slashingtypes.StoreKey) testCtx := sdktestutil.DefaultContextWithDB(s.T(), key, sdk.NewTransientStoreKey("transient_test")) ctx := testCtx.Ctx.WithBlockHeader(tmproto.Header{Time: tmtime.Now()}) encCfg := moduletestutil.MakeTestEncodingConfig() // gomock initializations ctrl := gomock.NewController(s.T()) s.stakingKeeper = slashingtestutil.NewMockStakingKeeper(ctrl) s.ctx = ctx s.slashingKeeper = slashingkeeper.NewKeeper( encCfg.Codec, encCfg.Amino, key, s.stakingKeeper, sdk.AccAddress(crypto.AddressHash([]byte(govtypes.ModuleName))).String(), ) // set test params s.slashingKeeper.SetParams(ctx, testutil.TestParams()) slashingtypes.RegisterInterfaces(encCfg.InterfaceRegistry) queryHelper := baseapp.NewQueryServerTestHelper(ctx, encCfg.InterfaceRegistry) slashingtypes.RegisterQueryServer(queryHelper, s.slashingKeeper) s.queryClient = slashingtypes.NewQueryClient(queryHelper) s.msgServer = slashingkeeper.NewMsgServerImpl(s.slashingKeeper) } func (s *KeeperTestSuite) TestPubkey() { ctx, keeper := s.ctx, s.slashingKeeper require := s.Require() _, pubKey, addr := testdata.KeyTestPubAddr() require.NoError(keeper.AddPubkey(ctx, pubKey)) expectedPubKey, err := keeper.GetPubkey(ctx, addr.Bytes()) require.NoError(err) require.Equal(pubKey, expectedPubKey) } func TestKeeperTestSuite(t *testing.T) { suite.Run(t, new(KeeperTestSuite)) }