arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/common/tx_test.go
common/tx_test.goRaw
 1package common
 2
 3import (
 4	"database/sql"
 5	"database/sql/driver"
 6	"encoding/binary"
 7	"encoding/hex"
 8	"testing"
 9
10	"github.com/stretchr/testify/assert"
11)
12
13func TestSignatureConstant(t *testing.T) {
14	signatureConstant := uint32(3322668559)
15	var signatureConstantBytes [4]byte
16	binary.BigEndian.PutUint32(signatureConstantBytes[:], signatureConstant)
17	assert.Equal(t, SignatureConstantBytes, signatureConstantBytes[:])
18	assert.Equal(t, "c60be60f", hex.EncodeToString(SignatureConstantBytes))
19}
20
21func TestTxIDScannerValue(t *testing.T) {
22	txid0 := &TxID{}
23	txid1 := &TxID{}
24	txid0B := [TxIDLen]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2,
25		3, 4, 5, 6, 7, 8, 9, 0, 1, 2}
26	txid1B := [TxIDLen]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
27		0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
28
29	copy(txid0[:], txid0B[:])
30	copy(txid1[:], txid1B[:])
31
32	var value driver.Valuer
33	var scan sql.Scanner
34	value = txid0
35	scan = txid1
36	fromDB, err := value.Value()
37	assert.NoError(t, err)
38	assert.NoError(t, scan.Scan(fromDB))
39	assert.Equal(t, value, scan)
40}
41
42func TestTxIDMarshalers(t *testing.T) {
43	h := []byte("0x02f8b4197b990fcef7ab11021675b4532e584b2c6b3f32562a5128ff00dceb9a5b")
44	var txid TxID
45	err := txid.UnmarshalText(h)
46	assert.NoError(t, err)
47	assert.Equal(t, h, []byte(txid.String()))
48
49	h2, err := txid.MarshalText()
50	assert.NoError(t, err)
51	assert.Equal(t, h, h2)
52
53	var txid2 TxID
54	err = txid2.UnmarshalText(h2)
55	assert.NoError(t, err)
56	assert.Equal(t, h2, []byte(txid2.String()))
57	assert.Equal(t, h, h2)
58}