github.com/gravity-devs/liquidity@v1.5.3/x/liquidity/genesis_test.go (about) 1 package liquidity_test 2 3 import ( 4 "testing" 5 6 "github.com/cosmos/cosmos-sdk/codec" 7 sdk "github.com/cosmos/cosmos-sdk/types" 8 "github.com/stretchr/testify/require" 9 tmproto "github.com/tendermint/tendermint/proto/tendermint/types" 10 11 "github.com/gravity-devs/liquidity/app" 12 "github.com/gravity-devs/liquidity/x/liquidity" 13 "github.com/gravity-devs/liquidity/x/liquidity/types" 14 ) 15 16 func TestGenesisState(t *testing.T) { 17 cdc := codec.NewLegacyAmino() 18 types.RegisterLegacyAminoCodec(cdc) 19 simapp := app.Setup(false) 20 21 ctx := simapp.BaseApp.NewContext(false, tmproto.Header{}) 22 genesis := types.DefaultGenesisState() 23 24 liquidity.InitGenesis(ctx, simapp.LiquidityKeeper, *genesis) 25 26 defaultGenesisExported := liquidity.ExportGenesis(ctx, simapp.LiquidityKeeper) 27 28 require.Equal(t, genesis, defaultGenesisExported) 29 30 // define test denom X, Y for Liquidity Pool 31 denomX, denomY := types.AlphabeticalDenomPair("denomX", "denomY") 32 33 X := sdk.NewInt(1000000000) 34 Y := sdk.NewInt(1000000000) 35 36 addrs := app.AddTestAddrsIncremental(simapp, ctx, 20, sdk.NewInt(10000)) 37 poolID := app.TestCreatePool(t, simapp, ctx, X, Y, denomX, denomY, addrs[0]) 38 39 // begin block, init 40 app.TestDepositPool(t, simapp, ctx, X.QuoRaw(10), Y, addrs[1:2], poolID, true) 41 app.TestDepositPool(t, simapp, ctx, X, Y.QuoRaw(10), addrs[2:3], poolID, true) 42 43 // next block 44 ctx = ctx.WithBlockHeight(ctx.BlockHeight() + 1) 45 liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper) 46 47 price, _ := sdk.NewDecFromStr("1.1") 48 offerCoins := []sdk.Coin{sdk.NewCoin(denomX, sdk.NewInt(10000))} 49 orderPrices := []sdk.Dec{price} 50 orderAddrs := addrs[1:2] 51 _, _ = app.TestSwapPool(t, simapp, ctx, offerCoins, orderPrices, orderAddrs, poolID, false) 52 _, _ = app.TestSwapPool(t, simapp, ctx, offerCoins, orderPrices, orderAddrs, poolID, false) 53 _, _ = app.TestSwapPool(t, simapp, ctx, offerCoins, orderPrices, orderAddrs, poolID, true) 54 liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper) 55 _, _ = app.TestSwapPool(t, simapp, ctx, offerCoins, orderPrices, orderAddrs, poolID, true) 56 liquidity.BeginBlocker(ctx, simapp.LiquidityKeeper) 57 liquidity.EndBlocker(ctx, simapp.LiquidityKeeper) 58 59 genesisExported := liquidity.ExportGenesis(ctx, simapp.LiquidityKeeper) 60 bankGenesisExported := simapp.BankKeeper.ExportGenesis(ctx) 61 62 simapp2 := app.Setup(false) 63 64 ctx2 := simapp2.BaseApp.NewContext(false, tmproto.Header{}) 65 ctx2 = ctx2.WithBlockHeight(1) 66 67 simapp2.BankKeeper.InitGenesis(ctx2, bankGenesisExported) 68 liquidity.InitGenesis(ctx2, simapp2.LiquidityKeeper, *genesisExported) 69 simapp2GenesisExported := liquidity.ExportGenesis(ctx2, simapp2.LiquidityKeeper) 70 require.Equal(t, genesisExported, simapp2GenesisExported) 71 }