|
|
@@ -1,7 +1,13 @@
|
|
|
package rpc
|
|
|
|
|
|
import (
|
|
|
+ "bytes"
|
|
|
+ "encoding/json"
|
|
|
+ "math/big"
|
|
|
"testing"
|
|
|
+
|
|
|
+ "github.com/ethereum/go-ethereum/common"
|
|
|
+ "github.com/ethereum/go-ethereum/core/types"
|
|
|
)
|
|
|
|
|
|
func TestInvalidTypeError(t *testing.T) {
|
|
|
@@ -48,3 +54,151 @@ func TestValidationError(t *testing.T) {
|
|
|
t.Error(err.Error())
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+func TestHexdataMarshalNil(t *testing.T) {
|
|
|
+ hd := newHexData([]byte{})
|
|
|
+ hd.isNil = true
|
|
|
+ v, _ := json.Marshal(hd)
|
|
|
+ if string(v) != "null" {
|
|
|
+ t.Errorf("Expected null, got %s", v)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexnumMarshalNil(t *testing.T) {
|
|
|
+ hn := newHexNum([]byte{})
|
|
|
+ hn.isNil = true
|
|
|
+ v, _ := json.Marshal(hn)
|
|
|
+ if string(v) != "null" {
|
|
|
+ t.Errorf("Expected null, got %s", v)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataNil(t *testing.T) {
|
|
|
+ v := newHexData(nil)
|
|
|
+ if v.isNil != true {
|
|
|
+ t.Errorf("Expected isNil to be true, but is %v", v.isNil)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataPtrHash(t *testing.T) {
|
|
|
+ in := common.Hash{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}
|
|
|
+ v := newHexData(&in)
|
|
|
+ if bytes.Compare(in.Bytes(), v.data) != 0 {
|
|
|
+ t.Errorf("Got % x expected % x", in, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataPtrHashNil(t *testing.T) {
|
|
|
+ var in *common.Hash
|
|
|
+ in = nil
|
|
|
+ v := newHexData(in)
|
|
|
+ if !v.isNil {
|
|
|
+ t.Errorf("Expect isNil to be true, but is %v", v.isNil)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataPtrAddress(t *testing.T) {
|
|
|
+ in := common.Address{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}
|
|
|
+ v := newHexData(&in)
|
|
|
+ if bytes.Compare(in.Bytes(), v.data) != 0 {
|
|
|
+ t.Errorf("Got % x expected % x", in, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataPtrAddressNil(t *testing.T) {
|
|
|
+ var in *common.Address
|
|
|
+ in = nil
|
|
|
+ v := newHexData(in)
|
|
|
+ if !v.isNil {
|
|
|
+ t.Errorf("Expect isNil to be true, but is %v", v.isNil)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataPtrBloom(t *testing.T) {
|
|
|
+ in := types.Bloom{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19}
|
|
|
+ v := newHexData(&in)
|
|
|
+ if bytes.Compare(in.Bytes(), v.data) != 0 {
|
|
|
+ t.Errorf("Got % x expected % x", in, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataPtrBloomNil(t *testing.T) {
|
|
|
+ var in *types.Bloom
|
|
|
+ in = nil
|
|
|
+ v := newHexData(in)
|
|
|
+ if !v.isNil {
|
|
|
+ t.Errorf("Expect isNil to be true, but is %v", v.isNil)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataBigintNil(t *testing.T) {
|
|
|
+ var in *big.Int
|
|
|
+ in = nil
|
|
|
+ v := newHexData(in)
|
|
|
+ if !v.isNil {
|
|
|
+ t.Errorf("Expect isNil to be true, but is %v", v.isNil)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataUint(t *testing.T) {
|
|
|
+ var in = uint(16)
|
|
|
+ var expected = []byte{0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataInt8(t *testing.T) {
|
|
|
+ var in = int8(16)
|
|
|
+ var expected = []byte{0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataUint8(t *testing.T) {
|
|
|
+ var in = uint8(16)
|
|
|
+ var expected = []byte{0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataInt16(t *testing.T) {
|
|
|
+ var in = int16(16)
|
|
|
+ var expected = []byte{0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataUint16(t *testing.T) {
|
|
|
+ var in = uint16(16)
|
|
|
+ var expected = []byte{0x0, 0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataInt32(t *testing.T) {
|
|
|
+ var in = int32(16)
|
|
|
+ var expected = []byte{0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestHexdataUint32(t *testing.T) {
|
|
|
+ var in = uint32(16)
|
|
|
+ var expected = []byte{0x0, 0x0, 0x0, 0x10}
|
|
|
+ v := newHexData(in)
|
|
|
+ if bytes.Compare(expected, v.data) != 0 {
|
|
|
+ t.Errorf("Expected % x got % x", expected, v.data)
|
|
|
+ }
|
|
|
+}
|