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 := [12]byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}
25 txid1B := [12]byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
26 copy(txid0[:], txid0B[:])
27 copy(txid1[:], txid1B[:])
28
29 var value driver.Valuer
30 var scan sql.Scanner
31 value = txid0
32 scan = txid1
33 fromDB, err := value.Value()
34 assert.NoError(t, err)
35 assert.NoError(t, scan.Scan(fromDB))
36 assert.Equal(t, value, scan)
37}
38
39func TestTxIDMarshalers(t *testing.T) {
40 h := []byte("0x00000000000001e240004700")
41 var txid TxID
42 err := txid.UnmarshalText(h)
43 assert.NoError(t, err)
44 assert.Equal(t, h, []byte(txid.String()))
45
46 h2, err := txid.MarshalText()
47 assert.NoError(t, err)
48 assert.Equal(t, h, h2)
49
50 var txid2 TxID
51 err = txid2.UnmarshalText(h2)
52 assert.NoError(t, err)
53 assert.Equal(t, h2, []byte(txid2.String()))
54 assert.Equal(t, h, h2)
55}