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

28 lines
755 B
Go

package oracle
import (
"testing"
"time"
)
func TestValidateMajority(t *testing.T) {
now := time.Now()
d1 := &OracleData{Key: "USD-BRL", Value: 5.00, Time: now}
d2 := &OracleData{Key: "USD-BRL", Value: 5.01, Time: now.Add(-1 * time.Minute)}
d3 := &OracleData{Key: "USD-BRL", Value: 4.99, Time: now.Add(-2 * time.Minute)}
res, err := ValidateMajority([]*OracleData{d1, d2, d3}, 0.05)
if err != nil {
t.Fatalf("Falha ao validar maioria: %v", err)
}
if res == nil || res.Value == 0 {
t.Error("Valor inválido retornado pelo consenso")
}
// sem consenso
d4 := &OracleData{Key: "USD-BRL", Value: 3.0, Time: now}
_, err = ValidateMajority([]*OracleData{d1, d4}, 0.001)
if err == nil {
t.Error("Esperado erro por falta de consenso")
}
}