arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/test/txs_test.go
test/txs_test.goRaw
 1package test
 2
 3import (
 4	"strings"
 5	"testing"
 6
 7	"github.com/hermeznetwork/hermez-node/common"
 8	"github.com/stretchr/testify/assert"
 9)
10
11func TestGenerateTestL2Txs(t *testing.T) {
12	s := `
13		A (1): 10
14		A (2): 20
15		B (1): 5
16		A-B (1): 6 1
17		B-C (1): 3 1
18		> advance batch
19		C-A (1): 3 1
20		A-B (1): 1 1
21		A-B (2): 15 1
22		User0   (1): 20
23		User1 (3) : 20
24		User0-User1 (1): 15 1
25		User1-User0 (3): 15 1
26		B-D (2): 3 1
27	`
28	parser := NewParser(strings.NewReader(s))
29	instructions, err := parser.Parse()
30	assert.Nil(t, err)
31
32	l1txs, coordinatorL1txs, l2txs, _ := GenerateTestTxs(t, instructions)
33	assert.Equal(t, 2, len(l1txs))
34	assert.Equal(t, 3, len(l1txs[0]))
35	assert.Equal(t, 1, len(coordinatorL1txs[0]))
36	assert.Equal(t, 2, len(l2txs[0]))
37	assert.Equal(t, 2, len(l1txs[1]))
38	assert.Equal(t, 4, len(coordinatorL1txs[1]))
39	assert.Equal(t, 6, len(l2txs[1]))
40
41	accounts := GenerateKeys(t, instructions.Accounts)
42
43	// l1txs
44	assert.Equal(t, common.TxTypeCreateAccountDeposit, l1txs[0][0].Type)
45	assert.Equal(t, accounts["A1"].BJJ.Public().String(), l1txs[0][0].FromBJJ.String())
46	assert.Equal(t, accounts["A2"].BJJ.Public().String(), l1txs[0][1].FromBJJ.String())
47	assert.Equal(t, accounts["B1"].BJJ.Public().String(), l1txs[0][2].FromBJJ.String())
48	assert.Equal(t, accounts["User13"].BJJ.Public().String(), l1txs[1][1].FromBJJ.String())
49
50	// l2txs
51	assert.Equal(t, common.TxTypeTransfer, l2txs[0][0].Type)
52	assert.Equal(t, common.Idx(256), l2txs[0][0].FromIdx)
53	assert.Equal(t, common.Idx(258), l2txs[0][0].ToIdx)
54	assert.Equal(t, accounts["B1"].BJJ.Public().String(), l2txs[0][0].ToBJJ.String())
55	assert.Equal(t, accounts["B1"].Addr.Hex(), l2txs[0][0].ToEthAddr.Hex())
56	assert.Equal(t, common.Nonce(0), l2txs[0][0].Nonce)
57	assert.Equal(t, common.Nonce(1), l2txs[1][1].Nonce)
58	assert.Equal(t, common.FeeSelector(1), l2txs[0][0].Fee)
59}