github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/x/dex/keeper/invariant_test.go (about) 1 //go:build ignore 2 3 package keeper 4 5 import ( 6 "testing" 7 8 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 9 "github.com/fibonacci-chain/fbc/x/dex/types" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestModuleAccountInvariant(t *testing.T) { 14 15 testInput := createTestInputWithBalance(t, 1, 10000) 16 ctx := testInput.Ctx 17 keeper := testInput.DexKeeper 18 accounts := testInput.TestAddrs 19 keeper.SetParams(ctx, *types.DefaultParams()) 20 21 builtInTP := GetBuiltInTokenPair() 22 builtInTP.Owner = accounts[0] 23 err := keeper.SaveTokenPair(ctx, builtInTP) 24 require.Nil(t, err) 25 26 // deposit xxb_fibo 100 fibo 27 depositMsg := types.NewMsgDeposit(builtInTP.Name(), 28 sdk.NewDecCoin(builtInTP.QuoteAssetSymbol, sdk.NewInt(100)), accounts[0]) 29 30 err = keeper.Deposit(ctx, builtInTP.Name(), depositMsg.Depositor, depositMsg.Amount) 31 require.Nil(t, err) 32 33 // module acount balance 100fibo 34 // xxb_fibo deposits 100 fibo. withdraw info 0 fibo 35 invariant := ModuleAccountInvariant(keeper, keeper.supplyKeeper) 36 _, broken := invariant(ctx) 37 require.False(t, broken) 38 39 // withdraw xxb_fibo 50 fibo 40 WithdrawMsg := types.NewMsgWithdraw(builtInTP.Name(), 41 sdk.NewDecCoin(builtInTP.QuoteAssetSymbol, sdk.NewInt(50)), accounts[0]) 42 43 err = keeper.Withdraw(ctx, builtInTP.Name(), WithdrawMsg.Depositor, WithdrawMsg.Amount) 44 require.Nil(t, err) 45 46 // module acount balance 100fibo 47 // xxb_fibo deposits 50 fibo. withdraw info 50 fibo 48 invariant = ModuleAccountInvariant(keeper, keeper.supplyKeeper) 49 _, broken = invariant(ctx) 50 require.False(t, broken) 51 52 }