56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package fourbyte
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/trezor/blockbook/bchain"
|
|
)
|
|
|
|
func Test_parseSignatureFromText(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
signature string
|
|
want bchain.FourByteSignature
|
|
}{
|
|
{
|
|
name: "_gonsPerFragment",
|
|
signature: "_gonsPerFragment()",
|
|
want: bchain.FourByteSignature{
|
|
Name: "_gonsPerFragment",
|
|
},
|
|
},
|
|
{
|
|
name: "vestingDeposits",
|
|
signature: "vestingDeposits(address)",
|
|
want: bchain.FourByteSignature{
|
|
Name: "vestingDeposits",
|
|
Parameters: []string{"address"},
|
|
},
|
|
},
|
|
{
|
|
name: "batchTransferTokenB",
|
|
signature: "batchTransferTokenB(address[],uint256)",
|
|
want: bchain.FourByteSignature{
|
|
Name: "batchTransferTokenB",
|
|
Parameters: []string{"address[]", "uint256"},
|
|
},
|
|
},
|
|
{
|
|
name: "transmitAndSellTokenForEth",
|
|
signature: "transmitAndSellTokenForEth(address,uint256,uint256,uint256,address,(uint8,bytes32,bytes32),bytes)",
|
|
want: bchain.FourByteSignature{
|
|
Name: "transmitAndSellTokenForEth",
|
|
Parameters: []string{"address", "uint256", "uint256", "uint256", "address", "(uint8,bytes32,bytes32)", "bytes"},
|
|
},
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := parseSignatureFromText(tt.signature); !reflect.DeepEqual(*got, tt.want) {
|
|
t.Errorf("parseSignatureFromText() = %v, want %v", *got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|