Files
dejo-node/internal/transactions/mempool_test.go
2025-05-23 10:44:32 -03:00

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")
}
}