github.com/algorand/go-algorand-sdk@v1.24.0/types/basics_test.go (about)

     1  package types
     2  
     3  import (
     4  	"testing"
     5  
     6  	"encoding/base64"
     7  	"github.com/algorand/go-algorand-sdk/encoding/msgpack"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestSignedTxnFromBase64String(t *testing.T) {
    13  	note := []byte("Testing SignedTxnFromBase64String()")
    14  
    15  	// Create a signed transaction with a note and base64 encode it.
    16  	var st SignedTxn
    17  	st.Txn.Note = note
    18  	b64data := base64.StdEncoding.EncodeToString([]byte(string(msgpack.Encode(st))))
    19  
    20  	// Verify that FromBase64String() decodes the txn.
    21  	var vst SignedTxn
    22  	err := vst.FromBase64String(b64data)
    23  	require.NoError(t, err)
    24  	require.Equal(t, vst.Txn.Note, note)
    25  }
    26  
    27  func TestBlockFromBase64String(t *testing.T) {
    28  	protocol := "Testing BlockFromBase64String()"
    29  
    30  	// Create a block with a protocol string and base64 encode it.
    31  	var bl Block
    32  	bl.CurrentProtocol = protocol
    33  	b64data := base64.StdEncoding.EncodeToString([]byte(string(msgpack.Encode(bl))))
    34  
    35  	// Verify that FromBase64String() decodes the txn.
    36  	var vbl Block
    37  	err := vbl.FromBase64String(b64data)
    38  	require.NoError(t, err)
    39  	require.Equal(t, vbl.CurrentProtocol, protocol)
    40  }