aboutsummaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-04-04 20:08:35 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-04-04 20:08:35 +0800
commit71e62eb62026899955e9466cbc2d0c79ee8cd7a2 (patch)
tree0d59a1479a48cdb7b8c57d6e07cf4913434c6f06 /rpc
parent2b9b9e77040bd35e6c5eb1d1eaeeef7abb1d93c1 (diff)
downloaddexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.tar
dexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.tar.gz
dexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.tar.bz2
dexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.tar.lz
dexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.tar.xz
dexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.tar.zst
dexon-71e62eb62026899955e9466cbc2d0c79ee8cd7a2.zip
More test coverage for responses
Diffstat (limited to 'rpc')
-rw-r--r--rpc/responses_test.go145
1 files changed, 111 insertions, 34 deletions
diff --git a/rpc/responses_test.go b/rpc/responses_test.go
index 2ec6d9d15..ab80f8274 100644
--- a/rpc/responses_test.go
+++ b/rpc/responses_test.go
@@ -26,13 +26,6 @@ const (
)
func TestNewBlockRes(t *testing.T) {
- parentHash := common.HexToHash("0x01")
- coinbase := common.HexToAddress("0x01")
- root := common.HexToHash("0x01")
- difficulty := common.Big1
- nonce := uint64(1)
- extra := ""
- block := types.NewBlock(parentHash, coinbase, root, difficulty, nonce, extra)
tests := map[string]string{
"number": reNum,
"hash": reHash,
@@ -55,16 +48,8 @@ func TestNewBlockRes(t *testing.T) {
// "uncles": reListHash,
}
- to := common.HexToAddress("0x02")
- amount := big.NewInt(1)
- gasAmount := big.NewInt(1)
- gasPrice := big.NewInt(1)
- data := []byte{1, 2, 3}
- tx := types.NewTransactionMessage(to, amount, gasAmount, gasPrice, data)
-
+ block := makeBlock()
v := NewBlockRes(block, false)
- v.Transactions = make([]*TransactionRes, 1)
- v.Transactions[0] = NewTransactionRes(tx)
j, _ := json.Marshal(v)
for k, re := range tests {
@@ -75,14 +60,7 @@ func TestNewBlockRes(t *testing.T) {
}
}
-func TestNewBlockResWithTrans(t *testing.T) {
- parentHash := common.HexToHash("0x01")
- coinbase := common.HexToAddress("0x01")
- root := common.HexToHash("0x01")
- difficulty := common.Big1
- nonce := uint64(1)
- extra := ""
- block := types.NewBlock(parentHash, coinbase, root, difficulty, nonce, extra)
+func TestNewBlockResTxFull(t *testing.T) {
tests := map[string]string{
"number": reNum,
"hash": reHash,
@@ -101,20 +79,12 @@ func TestNewBlockResWithTrans(t *testing.T) {
// "minGasPrice": "0x",
"gasUsed": reNum,
"timestamp": reNum,
- // "transactions": `[{.*}]`,
+ // "transactions": reListHash,
// "uncles": reListHash,
}
- to := common.HexToAddress("0x02")
- amount := big.NewInt(1)
- gasAmount := big.NewInt(1)
- gasPrice := big.NewInt(1)
- data := []byte{1, 2, 3}
- tx := types.NewTransactionMessage(to, amount, gasAmount, gasPrice, data)
-
+ block := makeBlock()
v := NewBlockRes(block, true)
- v.Transactions = make([]*TransactionRes, 1)
- v.Transactions[0] = NewTransactionRes(tx)
j, _ := json.Marshal(v)
for k, re := range tests {
@@ -125,6 +95,16 @@ func TestNewBlockResWithTrans(t *testing.T) {
}
}
+func TestBlockNil(t *testing.T) {
+ var block *types.Block
+ block = nil
+ u := NewBlockRes(block, false)
+ j, _ := json.Marshal(u)
+ if string(j) != "null" {
+ t.Errorf("Expected null but got %v", string(j))
+ }
+}
+
func TestNewTransactionRes(t *testing.T) {
to := common.HexToAddress("0x02")
amount := big.NewInt(1)
@@ -161,6 +141,55 @@ func TestNewTransactionRes(t *testing.T) {
}
+func TestTransactionNil(t *testing.T) {
+ var tx *types.Transaction
+ tx = nil
+ u := NewTransactionRes(tx)
+ j, _ := json.Marshal(u)
+ if string(j) != "null" {
+ t.Errorf("Expected null but got %v", string(j))
+ }
+}
+
+func TestNewUncleRes(t *testing.T) {
+ header := makeHeader()
+ u := NewUncleRes(header)
+ tests := map[string]string{
+ "number": reNum,
+ "hash": reHash,
+ "parentHash": reHash,
+ "nonce": reData,
+ "sha3Uncles": reHash,
+ "receiptHash": reHash,
+ "transactionsRoot": reHash,
+ "stateRoot": reHash,
+ "miner": reAddress,
+ "difficulty": reNum,
+ "extraData": reData,
+ "gasLimit": reNum,
+ "gasUsed": reNum,
+ "timestamp": reNum,
+ }
+
+ j, _ := json.Marshal(u)
+ for k, re := range tests {
+ match, _ := regexp.MatchString(fmt.Sprintf(`{.*"%s":%s.*}`, k, re), string(j))
+ if !match {
+ t.Error(fmt.Sprintf("`%s` output json does not match format %s. Source %s", k, re, j))
+ }
+ }
+}
+
+func TestUncleNil(t *testing.T) {
+ var header *types.Header
+ header = nil
+ u := NewUncleRes(header)
+ j, _ := json.Marshal(u)
+ if string(j) != "null" {
+ t.Errorf("Expected null but got %v", string(j))
+ }
+}
+
func TestNewLogRes(t *testing.T) {
log := makeStateLog(0)
tests := map[string]string{
@@ -217,3 +246,51 @@ func makeStateLog(num int) state.Log {
log := state.NewLog(address, topics, data, number)
return log
}
+
+func makeHeader() *types.Header {
+ header := &types.Header{
+ ParentHash: common.StringToHash("0x00"),
+ UncleHash: common.StringToHash("0x00"),
+ Coinbase: common.StringToAddress("0x00"),
+ Root: common.StringToHash("0x00"),
+ TxHash: common.StringToHash("0x00"),
+ ReceiptHash: common.StringToHash("0x00"),
+ // Bloom:
+ Difficulty: big.NewInt(88888888),
+ Number: big.NewInt(16),
+ GasLimit: big.NewInt(70000),
+ GasUsed: big.NewInt(25000),
+ Time: 124356789,
+ Extra: "",
+ MixDigest: common.StringToHash("0x00"),
+ Nonce: [8]byte{0, 1, 2, 3, 4, 5, 6, 7},
+ }
+ return header
+}
+
+func makeBlock() *types.Block {
+ parentHash := common.HexToHash("0x01")
+ coinbase := common.HexToAddress("0x01")
+ root := common.HexToHash("0x01")
+ difficulty := common.Big1
+ nonce := uint64(1)
+ extra := ""
+ block := types.NewBlock(parentHash, coinbase, root, difficulty, nonce, extra)
+
+ txto := common.HexToAddress("0x02")
+ txamount := big.NewInt(1)
+ txgasAmount := big.NewInt(1)
+ txgasPrice := big.NewInt(1)
+ txdata := []byte{1, 2, 3}
+
+ tx := types.NewTransactionMessage(txto, txamount, txgasAmount, txgasPrice, txdata)
+ txs := make([]*types.Transaction, 1)
+ txs[0] = tx
+ block.SetTransactions(txs)
+
+ uncles := make([]*types.Header, 1)
+ uncles[0] = makeHeader()
+ block.SetUncles(uncles)
+
+ return block
+}