github.com/Finschia/finschia-sdk@v0.49.1/x/fswap/keeper/genesis_test.go (about) 1 package keeper_test 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 tmproto "github.com/tendermint/tendermint/proto/tendermint/types" 9 10 "github.com/Finschia/finschia-sdk/simapp" 11 "github.com/Finschia/finschia-sdk/testutil/testdata" 12 sdk "github.com/Finschia/finschia-sdk/types" 13 "github.com/Finschia/finschia-sdk/x/fswap/types" 14 ) 15 16 func (s *KeeperTestSuite) TestInitAndExportGenesis() { 17 ctx, _ := s.ctx.CacheContext() 18 testGenesis := stubGenesisState() 19 err := s.keeper.InitGenesis(ctx, testGenesis) 20 s.Require().NoError(err) 21 22 exportGenesis := s.keeper.ExportGenesis(ctx) 23 fmt.Println(len(exportGenesis.GetSwaps())) 24 s.Require().Equal(testGenesis, exportGenesis) 25 s.Require().Equal(testGenesis.GetSwaps(), exportGenesis.GetSwaps()) 26 s.Require().Equal(testGenesis.GetSwapStats(), exportGenesis.GetSwapStats()) 27 s.Require().Equal(testGenesis.GetSwappeds(), exportGenesis.GetSwappeds()) 28 } 29 30 func TestInitGenesis(t *testing.T) { 31 checkTx := false 32 app := simapp.Setup(checkTx) 33 testdata.RegisterInterfaces(app.InterfaceRegistry()) 34 testdata.RegisterMsgServer(app.MsgServiceRouter(), testdata.MsgServerImpl{}) 35 ctx := app.BaseApp.NewContext(checkTx, tmproto.Header{}) 36 keeper := app.FswapKeeper 37 38 tests := []struct { 39 name string 40 genState *types.GenesisState 41 expectedError error 42 }{ 43 { 44 name: "valid", 45 genState: stubGenesisState(), 46 expectedError: nil, 47 }, 48 { 49 name: "invalid: swapCount", 50 genState: func() *types.GenesisState { 51 state := stubGenesisState() 52 state.SwapStats.SwapCount = -1 53 return state 54 }(), 55 expectedError: types.ErrInvalidState, 56 }, 57 { 58 name: "invalid: swaps count exceeds limit", 59 genState: func() *types.GenesisState { 60 state := stubGenesisState() 61 state.Swaps = append(state.Swaps, state.Swaps[0]) 62 state.Swappeds = append(state.Swappeds, state.Swappeds[0]) 63 state.SwapStats.SwapCount = 2 64 return state 65 }(), 66 expectedError: types.ErrCanNotHaveMoreSwap, 67 }, 68 } 69 for _, tc := range tests { 70 t.Run(tc.name, func(t *testing.T) { 71 err := keeper.InitGenesis(ctx, tc.genState) 72 require.ErrorIs(t, tc.expectedError, err) 73 }) 74 } 75 } 76 77 func stubGenesisState() *types.GenesisState { 78 testSwapRate, _ := sdk.NewDecFromStr("1234567890") 79 return &types.GenesisState{ 80 Swaps: []types.Swap{ 81 { 82 FromDenom: "aaa", 83 ToDenom: "bbb", 84 AmountCapForToDenom: sdk.NewInt(1234567890000), 85 SwapRate: testSwapRate, 86 }, 87 }, 88 SwapStats: types.SwapStats{ 89 SwapCount: 1, 90 }, 91 Swappeds: []types.Swapped{ 92 { 93 FromCoinAmount: sdk.Coin{ 94 Denom: "aaa", 95 Amount: sdk.ZeroInt(), 96 }, 97 ToCoinAmount: sdk.Coin{ 98 Denom: "bbb", 99 Amount: sdk.ZeroInt(), 100 }, 101 }, 102 }, 103 } 104 }