54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package transactions_test
|
|
|
|
import (
|
|
"dejo_node/internal/transactions"
|
|
"testing"
|
|
)
|
|
|
|
func TestMempool_AddAndGet(t *testing.T) {
|
|
pool := transactions.NewMempool()
|
|
tx := &transactions.Transaction{
|
|
From: "0xabc",
|
|
To: "0xdef",
|
|
Nonce: 1,
|
|
Value: 10,
|
|
Gas: 1,
|
|
Signature: "sig",
|
|
}
|
|
|
|
err := pool.Add(tx)
|
|
if err != nil {
|
|
t.Fatalf("erro ao adicionar transação: %v", err)
|
|
}
|
|
|
|
txs := pool.All()
|
|
if len(txs) != 1 {
|
|
t.Errorf("esperava 1 transação, obteve %d", len(txs))
|
|
}
|
|
|
|
if !pool.Has(tx.Hash()) {
|
|
t.Error("transação deveria existir na mempool")
|
|
}
|
|
}
|
|
|
|
func TestMempool_Duplicates(t *testing.T) {
|
|
pool := transactions.NewMempool()
|
|
tx := &transactions.Transaction{From: "0xaaa", Nonce: 1}
|
|
|
|
_ = pool.Add(tx)
|
|
err := pool.Add(tx)
|
|
if err == nil {
|
|
t.Error("esperava erro de transação duplicada")
|
|
}
|
|
}
|
|
|
|
func TestMempool_Remove(t *testing.T) {
|
|
pool := transactions.NewMempool()
|
|
tx := &transactions.Transaction{From: "0xaaa", Nonce: 2}
|
|
_ = pool.Add(tx)
|
|
|
|
pool.Remove(tx.Hash())
|
|
if pool.Has(tx.Hash()) {
|
|
t.Error("transação ainda existe após remoção")
|
|
}
|
|
} |