github.com/Finschia/finschia-sdk@v0.49.1/x/auth/client/cli/encode_test.go (about)

     1  package cli
     2  
     3  import (
     4  	"context"
     5  	"encoding/base64"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"github.com/Finschia/finschia-sdk/client"
    11  	simappparams "github.com/Finschia/finschia-sdk/simapp/params"
    12  	"github.com/Finschia/finschia-sdk/testutil"
    13  	sdk "github.com/Finschia/finschia-sdk/types"
    14  	authtypes "github.com/Finschia/finschia-sdk/x/auth/types"
    15  )
    16  
    17  func TestGetCommandEncode(t *testing.T) {
    18  	encodingConfig := simappparams.MakeTestEncodingConfig()
    19  
    20  	cmd := GetEncodeCommand()
    21  	_ = testutil.ApplyMockIODiscardOutErr(cmd)
    22  
    23  	authtypes.RegisterLegacyAminoCodec(encodingConfig.Amino)
    24  	sdk.RegisterLegacyAminoCodec(encodingConfig.Amino)
    25  
    26  	txCfg := encodingConfig.TxConfig
    27  
    28  	// Build a test transaction
    29  	builder := txCfg.NewTxBuilder()
    30  	builder.SetGasLimit(50000)
    31  	builder.SetFeeAmount(sdk.Coins{sdk.NewInt64Coin("atom", 150)})
    32  	builder.SetMemo("foomemo")
    33  	jsonEncoded, err := txCfg.TxJSONEncoder()(builder.GetTx())
    34  	require.NoError(t, err)
    35  
    36  	txFile := testutil.WriteToNewTempFile(t, string(jsonEncoded))
    37  	txFileName := txFile.Name()
    38  
    39  	ctx := context.Background()
    40  	clientCtx := client.Context{}.
    41  		WithTxConfig(encodingConfig.TxConfig).
    42  		WithCodec(encodingConfig.Marshaler)
    43  	ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
    44  
    45  	cmd.SetArgs([]string{txFileName})
    46  	err = cmd.ExecuteContext(ctx)
    47  	require.NoError(t, err)
    48  }
    49  
    50  func TestGetCommandDecode(t *testing.T) {
    51  	encodingConfig := simappparams.MakeTestEncodingConfig()
    52  
    53  	clientCtx := client.Context{}.
    54  		WithTxConfig(encodingConfig.TxConfig).
    55  		WithCodec(encodingConfig.Marshaler)
    56  
    57  	cmd := GetDecodeCommand()
    58  	_ = testutil.ApplyMockIODiscardOutErr(cmd)
    59  
    60  	sdk.RegisterLegacyAminoCodec(encodingConfig.Amino)
    61  
    62  	txCfg := encodingConfig.TxConfig
    63  	clientCtx = clientCtx.WithTxConfig(txCfg)
    64  
    65  	// Build a test transaction
    66  	builder := txCfg.NewTxBuilder()
    67  	builder.SetGasLimit(50000)
    68  	builder.SetFeeAmount(sdk.Coins{sdk.NewInt64Coin("atom", 150)})
    69  	builder.SetMemo("foomemo")
    70  
    71  	// Encode transaction
    72  	txBytes, err := clientCtx.TxConfig.TxEncoder()(builder.GetTx())
    73  	require.NoError(t, err)
    74  
    75  	// Convert the transaction into base64 encoded string
    76  	base64Encoded := base64.StdEncoding.EncodeToString(txBytes)
    77  
    78  	ctx := context.Background()
    79  	ctx = context.WithValue(ctx, client.ClientContextKey, &clientCtx)
    80  
    81  	// Execute the command
    82  	cmd.SetArgs([]string{base64Encoded})
    83  	require.NoError(t, cmd.ExecuteContext(ctx))
    84  }