add basic tests for float.parse

This commit is contained in:
Joel Wetzell
2025-12-07 11:20:37 -06:00
parent e3b6783a98
commit 917f728f14

View File

@@ -0,0 +1,50 @@
package processor_test
import (
"testing"
"github.com/jwetzell/showbridge-go/internal/processor"
)
func TestGoodFloatParse(t *testing.T) {
floatParser := processor.FloatParse{}
tests := []struct {
processor processor.Processor
name string
payload any
expected float64
}{
{
name: "positive number",
payload: "12345.67",
expected: 12345.67,
},
{
name: "negative number",
payload: "-12345.67",
expected: -12345.67,
},
{
name: "zero",
payload: "0",
expected: 0,
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
got, err := floatParser.Process(t.Context(), test.payload)
gotFloat, ok := got.(float64)
if !ok {
t.Errorf("float.parse returned a %T payload: %s", got, got)
}
if err != nil {
t.Errorf("float.parse failed: %s", err)
}
if gotFloat != test.expected {
t.Errorf("float.parse got %f, expected %f", gotFloat, test.expected)
}
})
}
}