package oracle

import "testing"

func TestStore_SaveAndGet(t *testing.T) {
	s := NewStore(3)
	d := &OracleData{Key: "ETH-BRL", Value: 10000.0}

	s.Save(d)

	if got := s.Get("ETH-BRL"); got == nil || got.Value != 10000.0 {
		t.Error("falha ao buscar valor salvo")
	}
}

func TestStore_History(t *testing.T) {
	s := NewStore(2)

	s.Save(&OracleData{Key: "ETH-BRL", Value: 1})
	s.Save(&OracleData{Key: "ETH-BRL", Value: 2})
	s.Save(&OracleData{Key: "ETH-BRL", Value: 3}) // deve descartar o primeiro

	hist := s.History("ETH-BRL")
	if len(hist) != 2 {
		t.Errorf("esperado 2 entradas no histórico, obtido %d", len(hist))
	}
	if hist[0].Value != 2 || hist[1].Value != 3 {
		t.Error("histórico não está correto")
	}
}