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 }