github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/cosmos-sdk/x/distribution/client/cli/tx_test.go (about) 1 package cli 2 3 import ( 4 "testing" 5 6 "github.com/fibonacci-chain/fbc/libs/tendermint/crypto/secp256k1" 7 "github.com/stretchr/testify/assert" 8 9 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/client/context" 10 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/codec" 11 sdk "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/types" 12 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth" 13 "github.com/fibonacci-chain/fbc/libs/cosmos-sdk/x/auth/client/utils" 14 ) 15 16 func createFakeTxBuilder() auth.TxBuilder { 17 cdc := codec.New() 18 return auth.NewTxBuilder( 19 utils.GetTxEncoder(cdc), 20 123, 21 9876, 22 0, 23 1.2, 24 false, 25 "test_chain", 26 "hello", 27 sdk.NewCoins(sdk.NewCoin(sdk.DefaultBondDenom, sdk.NewInt(1))), 28 sdk.DecCoins{sdk.NewDecCoinFromDec(sdk.DefaultBondDenom, sdk.NewDecWithPrec(10000, sdk.Precision))}, 29 ) 30 } 31 32 func Test_splitAndCall_NoMessages(t *testing.T) { 33 ctx := context.CLIContext{} 34 txBldr := createFakeTxBuilder() 35 36 err := splitAndApply(nil, ctx, txBldr, nil, 10) 37 assert.NoError(t, err, "") 38 } 39 40 func Test_splitAndCall_Splitting(t *testing.T) { 41 ctx := context.CLIContext{} 42 txBldr := createFakeTxBuilder() 43 44 addr := sdk.AccAddress(secp256k1.GenPrivKey().PubKey().Address()) 45 46 // Add five messages 47 msgs := []sdk.Msg{ 48 sdk.NewTestMsg(addr), 49 sdk.NewTestMsg(addr), 50 sdk.NewTestMsg(addr), 51 sdk.NewTestMsg(addr), 52 sdk.NewTestMsg(addr), 53 } 54 55 // Keep track of number of calls 56 const chunkSize = 2 57 58 callCount := 0 59 err := splitAndApply( 60 func(ctx context.CLIContext, txBldr auth.TxBuilder, msgs []sdk.Msg) error { 61 callCount++ 62 63 assert.NotNil(t, ctx) 64 assert.NotNil(t, txBldr) 65 assert.NotNil(t, msgs) 66 67 if callCount < 3 { 68 assert.Equal(t, len(msgs), 2) 69 } else { 70 assert.Equal(t, len(msgs), 1) 71 } 72 73 return nil 74 }, 75 ctx, txBldr, msgs, chunkSize) 76 77 assert.NoError(t, err, "") 78 assert.Equal(t, 3, callCount) 79 }