arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
hermez-node/txselector/txselector_test.go
txselector/txselector_test.goRaw
 1package txselector
 2
 3/*
 4   TODO update transactions generation
 5func initTest(t *testing.T, testSet string) *TxSelector {
 6	pass := os.Getenv("POSTGRES_PASS")
 7	db, err := dbUtils.InitSQLDB(5432, "localhost", "hermez", pass, "hermez")
 8	require.Nil(t, err)
 9	l2DB := l2db.NewL2DB(db, 10, 100, 24*time.Hour)
10
11	dir, err := ioutil.TempDir("", "tmpdb")
12	require.Nil(t, err)
13	sdb, err := statedb.NewStateDB(dir, statedb.TypeTxSelector, 0)
14	require.Nil(t, err)
15
16	txselDir, err := ioutil.TempDir("", "tmpTxSelDB")
17	require.Nil(t, err)
18	txsel, err := NewTxSelector(txselDir, sdb, l2DB, 100, 100, 1000)
19	require.Nil(t, err)
20
21	return txsel
22}
23func addL2Txs(t *testing.T, txsel *TxSelector, poolL2Txs []common.PoolL2Tx) {
24	for i := 0; i < len(poolL2Txs); i++ {
25		err := txsel.l2db.AddTxTest(&poolL2Txs[i])
26		require.Nil(t, err)
27	}
28}
29
30func addTokens(t *testing.T, tokens []common.Token, db *sqlx.DB) {
31	hdb := historydb.NewHistoryDB(db)
32	assert.NoError(t, hdb.Reorg(-1))
33	assert.NoError(t, hdb.AddBlock(&common.Block{
34		EthBlockNum: 1,
35	}))
36	assert.NoError(t, hdb.AddTokens(tokens))
37}
38
39func TestGetL2TxSelection(t *testing.T) {
40	txsel := initTest(t, transakcio.SetPool0)
41	test.CleanL2DB(txsel.l2db.DB())
42
43	   	// generate test transactions
44	   	l1Txs, _, poolL2Txs, tokens := test.GenerateTestTxsFromSet(t, test.SetTest0)
45
46	   	// add tokens to HistoryDB to avoid breaking FK constrains
47	   	addTokens(t, tokens, txsel.l2db.DB())
48	   	// add the first batch of transactions to the TxSelector
49	   	addL2Txs(t, txsel, poolL2Txs[0])
50
51	   	_, err := txsel.GetL2TxSelection(0)
52	   	assert.Nil(t, err)
53
54	   	_, _, _, err = txsel.GetL1L2TxSelection(0, l1Txs[0])
55	   	assert.Nil(t, err)
56
57	   	// txs, err := txsel.GetL2TxSelection(0)
58	   	// assert.Nil(t, err)
59	   	// for _, tx := range txs {
60	   	//         fmt.Println(tx.FromIdx, tx.ToIdx, tx.AbsoluteFee)
61	   	// }
62	   	// assert.Equal(t, 3, len(txs))
63	   	// assert.Equal(t, uint64(6), txs[0].AbsoluteFee)
64	   	// assert.Equal(t, uint64(5), txs[1].AbsoluteFee)
65	   	// assert.Equal(t, uint64(4), txs[2].AbsoluteFee)
66}
67*/