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  }