OSDN Git Service

2d data for butxo state (#1921)
[bytom/bytom.git] / protocol / bc / types / map_test.go
index 21913f3..6f0b2b5 100644 (file)
@@ -2,23 +2,24 @@ package types
 
 import (
        "bytes"
+       "reflect"
        "testing"
 
        "github.com/davecgh/go-spew/spew"
 
-       "github.com/bytom/consensus"
-       "github.com/bytom/protocol/bc"
-       "github.com/bytom/testutil"
+       "github.com/bytom/bytom/consensus"
+       "github.com/bytom/bytom/protocol/bc"
+       "github.com/bytom/bytom/testutil"
 )
 
 func TestMapSpendTx(t *testing.T) {
        cases := []*TxData{
                &TxData{
                        Inputs: []*TxInput{
-                               NewSpendInput(nil, testutil.MustDecodeHash("fad5195a0c8e3b590b86a3c0a95e7529565888508aecca96e9aeda633002f409"), *consensus.BTMAssetID, 88, 3, []byte{1}),
+                               NewSpendInput(nil, testutil.MustDecodeHash("fad5195a0c8e3b590b86a3c0a95e7529565888508aecca96e9aeda633002f409"), *consensus.BTMAssetID, 88, 3, []byte{1}, [][]byte{[]byte{2}}),
                        },
                        Outputs: []*TxOutput{
-                               NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
+                               NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
                        },
                },
                &TxData{
@@ -26,17 +27,17 @@ func TestMapSpendTx(t *testing.T) {
                                NewIssuanceInput([]byte("nonce"), 254354, []byte("issuanceProgram"), [][]byte{[]byte("arguments1"), []byte("arguments2")}, []byte("assetDefinition")),
                        },
                        Outputs: []*TxOutput{
-                               NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
+                               NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
                        },
                },
                &TxData{
                        Inputs: []*TxInput{
                                NewIssuanceInput([]byte("nonce"), 254354, []byte("issuanceProgram"), [][]byte{[]byte("arguments1"), []byte("arguments2")}, []byte("assetDefinition")),
-                               NewSpendInput(nil, testutil.MustDecodeHash("db7b16ac737440d6e38559996ddabb207d7ce84fbd6f3bfd2525d234761dc863"), *consensus.BTMAssetID, 88, 3, []byte{1}),
+                               NewSpendInput(nil, testutil.MustDecodeHash("db7b16ac737440d6e38559996ddabb207d7ce84fbd6f3bfd2525d234761dc863"), *consensus.BTMAssetID, 88, 3, []byte{1}, [][]byte{[]byte{2}}),
                        },
                        Outputs: []*TxOutput{
-                               NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
-                               NewTxOutput(*consensus.BTMAssetID, 80, []byte{1}),
+                               NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
+                               NewOriginalTxOutput(*consensus.BTMAssetID, 80, []byte{1}, [][]byte{[]byte{2}}),
                        },
                },
        }
@@ -89,6 +90,9 @@ func TestMapSpendTx(t *testing.T) {
                        if !bytes.Equal(newOut.ControlProgram.Code, oldOut.ControlProgram) {
                                t.Errorf("header.ResultIds[%d].(*output).ControlProgram.Code is %x, expected %x", i, newOut.ControlProgram.Code, oldOut.ControlProgram)
                        }
+                       if !reflect.DeepEqual(newOut.StateData.StateData, oldOut.StateData) {
+                               t.Errorf("header.ResultIds[%d].(*output).StateData.StateData is %x, expected %x", i, newOut.StateData.StateData, oldOut.StateData)
+                       }
 
                }
        }
@@ -100,7 +104,7 @@ func TestMapCoinbaseTx(t *testing.T) {
                        NewCoinbaseInput([]byte("TestMapCoinbaseTx")),
                },
                Outputs: []*TxOutput{
-                       NewTxOutput(*consensus.BTMAssetID, 800000000000, []byte{1}),
+                       NewOriginalTxOutput(*consensus.BTMAssetID, 800000000000, []byte{1}, [][]byte{[]byte{2}}),
                },
        }
        oldOut := txData.Outputs[0]
@@ -114,8 +118,8 @@ func TestMapCoinbaseTx(t *testing.T) {
        if len(tx.SpentOutputIDs) != 0 {
                t.Errorf("coinbase tx doesn't spend any utxo")
        }
-       if len(tx.GasInputIDs) != 0 {
-               t.Errorf("coinbase tx doesn't spend any gas input")
+       if len(tx.GasInputIDs) != 1 {
+               t.Errorf("coinbase tx should have 1 gas input")
        }
        if len(tx.ResultIds) != 1 {
                t.Errorf("expect to  only have one output")