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  }