You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

58 lines
1.5 KiB

package common
import (
"database/sql"
"database/sql/driver"
"encoding/binary"
"encoding/hex"
"testing"
"github.com/stretchr/testify/assert"
)
func TestSignatureConstant(t *testing.T) {
signatureConstant := uint32(3322668559)
var signatureConstantBytes [4]byte
binary.BigEndian.PutUint32(signatureConstantBytes[:], signatureConstant)
assert.Equal(t, SignatureConstantBytes, signatureConstantBytes[:])
assert.Equal(t, "c60be60f", hex.EncodeToString(SignatureConstantBytes))
}
func TestTxIDScannerValue(t *testing.T) {
txid0 := &TxID{}
txid1 := &TxID{}
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,
3, 4, 5, 6, 7, 8, 9, 0, 1, 2}
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,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
copy(txid0[:], txid0B[:])
copy(txid1[:], txid1B[:])
var value driver.Valuer
var scan sql.Scanner
value = txid0
scan = txid1
fromDB, err := value.Value()
assert.NoError(t, err)
assert.NoError(t, scan.Scan(fromDB))
assert.Equal(t, value, scan)
}
func TestTxIDMarshalers(t *testing.T) {
h := []byte("0x02f8b4197b990fcef7ab11021675b4532e584b2c6b3f32562a5128ff00dceb9a5b")
var txid TxID
err := txid.UnmarshalText(h)
assert.NoError(t, err)
assert.Equal(t, h, []byte(txid.String()))
h2, err := txid.MarshalText()
assert.NoError(t, err)
assert.Equal(t, h, h2)
var txid2 TxID
err = txid2.UnmarshalText(h2)
assert.NoError(t, err)
assert.Equal(t, h2, []byte(txid2.String()))
assert.Equal(t, h, h2)
}