github.com/cosmos/cosmos-sdk@v0.50.10/x/crisis/keeper/keeper_test.go (about)

     1  package keeper_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/golang/mock/gomock"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	storetypes "cosmossdk.io/store/types"
    10  
    11  	addresscodec "github.com/cosmos/cosmos-sdk/codec/address"
    12  	"github.com/cosmos/cosmos-sdk/runtime"
    13  	"github.com/cosmos/cosmos-sdk/testutil"
    14  	sdk "github.com/cosmos/cosmos-sdk/types"
    15  	moduletestutil "github.com/cosmos/cosmos-sdk/types/module/testutil"
    16  	"github.com/cosmos/cosmos-sdk/x/crisis"
    17  	"github.com/cosmos/cosmos-sdk/x/crisis/keeper"
    18  	crisistestutil "github.com/cosmos/cosmos-sdk/x/crisis/testutil"
    19  	"github.com/cosmos/cosmos-sdk/x/crisis/types"
    20  )
    21  
    22  func TestLogger(t *testing.T) {
    23  	ctrl := gomock.NewController(t)
    24  	supplyKeeper := crisistestutil.NewMockSupplyKeeper(ctrl)
    25  
    26  	key := storetypes.NewKVStoreKey(types.StoreKey)
    27  	storeService := runtime.NewKVStoreService(key)
    28  	testCtx := testutil.DefaultContextWithDB(t, key, storetypes.NewTransientStoreKey("transient_test"))
    29  	encCfg := moduletestutil.MakeTestEncodingConfig(crisis.AppModuleBasic{})
    30  	keeper := keeper.NewKeeper(encCfg.Codec, storeService, 5, supplyKeeper, "", "", addresscodec.NewBech32Codec("cosmos"))
    31  
    32  	require.Equal(t,
    33  		testCtx.Ctx.Logger().With("module", "x/"+types.ModuleName),
    34  		keeper.Logger(testCtx.Ctx))
    35  }
    36  
    37  func TestInvariants(t *testing.T) {
    38  	ctrl := gomock.NewController(t)
    39  	supplyKeeper := crisistestutil.NewMockSupplyKeeper(ctrl)
    40  
    41  	key := storetypes.NewKVStoreKey(types.StoreKey)
    42  	storeService := runtime.NewKVStoreService(key)
    43  	encCfg := moduletestutil.MakeTestEncodingConfig(crisis.AppModuleBasic{})
    44  	keeper := keeper.NewKeeper(encCfg.Codec, storeService, 5, supplyKeeper, "", "", addresscodec.NewBech32Codec("cosmos"))
    45  	require.Equal(t, keeper.InvCheckPeriod(), uint(5))
    46  
    47  	orgInvRoutes := keeper.Routes()
    48  	keeper.RegisterRoute("testModule", "testRoute", func(sdk.Context) (string, bool) { return "", false })
    49  	invar := keeper.Invariants()
    50  	require.Equal(t, len(invar), len(orgInvRoutes)+1)
    51  }
    52  
    53  func TestAssertInvariants(t *testing.T) {
    54  	ctrl := gomock.NewController(t)
    55  	supplyKeeper := crisistestutil.NewMockSupplyKeeper(ctrl)
    56  
    57  	key := storetypes.NewKVStoreKey(types.StoreKey)
    58  	storeService := runtime.NewKVStoreService(key)
    59  	testCtx := testutil.DefaultContextWithDB(t, key, storetypes.NewTransientStoreKey("transient_test"))
    60  	encCfg := moduletestutil.MakeTestEncodingConfig(crisis.AppModuleBasic{})
    61  	keeper := keeper.NewKeeper(encCfg.Codec, storeService, 5, supplyKeeper, "", "", addresscodec.NewBech32Codec("cosmos"))
    62  
    63  	keeper.RegisterRoute("testModule", "testRoute1", func(sdk.Context) (string, bool) { return "", false })
    64  	require.NotPanics(t, func() { keeper.AssertInvariants(testCtx.Ctx) })
    65  
    66  	keeper.RegisterRoute("testModule", "testRoute2", func(sdk.Context) (string, bool) { return "", true })
    67  	require.Panics(t, func() { keeper.AssertInvariants(testCtx.Ctx) })
    68  }