205 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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) {
 | |
| 	err := NewInvalidTypeError("testField", "not string")
 | |
| 	expected := "invalid type on field testField: not string"
 | |
| 
 | |
| 	if err.Error() != expected {
 | |
| 		t.Error(err.Error())
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestInsufficientParamsError(t *testing.T) {
 | |
| 	err := NewInsufficientParamsError(0, 1)
 | |
| 	expected := "insufficient params, want 1 have 0"
 | |
| 
 | |
| 	if err.Error() != expected {
 | |
| 		t.Error(err.Error())
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestNotImplementedError(t *testing.T) {
 | |
| 	err := NewNotImplementedError("foo")
 | |
| 	expected := "foo method not implemented"
 | |
| 
 | |
| 	if err.Error() != expected {
 | |
| 		t.Error(err.Error())
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestDecodeParamError(t *testing.T) {
 | |
| 	err := NewDecodeParamError("foo")
 | |
| 	expected := "could not decode, foo"
 | |
| 
 | |
| 	if err.Error() != expected {
 | |
| 		t.Error(err.Error())
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func TestValidationError(t *testing.T) {
 | |
| 	err := NewValidationError("foo", "should be `bar`")
 | |
| 	expected := "foo not valid, should be `bar`"
 | |
| 
 | |
| 	if err.Error() != expected {
 | |
| 		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)
 | |
| 	}
 | |
| }
 |