github.com/trezor/blockbook@v0.4.1-0.20240328132726-e9a08582ee2c/fourbyte/fourbyte_test.go (about)

     1  package fourbyte
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  
     7  	"github.com/trezor/blockbook/bchain"
     8  )
     9  
    10  func Test_parseSignatureFromText(t *testing.T) {
    11  	tests := []struct {
    12  		name      string
    13  		signature string
    14  		want      bchain.FourByteSignature
    15  	}{
    16  		{
    17  			name:      "_gonsPerFragment",
    18  			signature: "_gonsPerFragment()",
    19  			want: bchain.FourByteSignature{
    20  				Name: "_gonsPerFragment",
    21  			},
    22  		},
    23  		{
    24  			name:      "vestingDeposits",
    25  			signature: "vestingDeposits(address)",
    26  			want: bchain.FourByteSignature{
    27  				Name:       "vestingDeposits",
    28  				Parameters: []string{"address"},
    29  			},
    30  		},
    31  		{
    32  			name:      "batchTransferTokenB",
    33  			signature: "batchTransferTokenB(address[],uint256)",
    34  			want: bchain.FourByteSignature{
    35  				Name:       "batchTransferTokenB",
    36  				Parameters: []string{"address[]", "uint256"},
    37  			},
    38  		},
    39  		{
    40  			name:      "transmitAndSellTokenForEth",
    41  			signature: "transmitAndSellTokenForEth(address,uint256,uint256,uint256,address,(uint8,bytes32,bytes32),bytes)",
    42  			want: bchain.FourByteSignature{
    43  				Name:       "transmitAndSellTokenForEth",
    44  				Parameters: []string{"address", "uint256", "uint256", "uint256", "address", "(uint8,bytes32,bytes32)", "bytes"},
    45  			},
    46  		},
    47  	}
    48  	for _, tt := range tests {
    49  		t.Run(tt.name, func(t *testing.T) {
    50  			if got := parseSignatureFromText(tt.signature); !reflect.DeepEqual(*got, tt.want) {
    51  				t.Errorf("parseSignatureFromText() = %v, want %v", *got, tt.want)
    52  			}
    53  		})
    54  	}
    55  }