evcc-io/meter/sma_test.go
Andreas Linde 43af2e93d3
Added tests for SMA meter (#142)
- Restructure a bit to make it testable
- Added unit test for new `updatePower` method
2020-05-13 14:24:38 +02:00

49 lines
798 B
Go

package meter
import (
"testing"
"github.com/andig/evcc/meter/sma"
"github.com/andig/evcc/util"
)
func TestSMAUpdatePower(t *testing.T) {
tests := []struct {
name string
messsage sma.Telegram
wantPower float64
}{
{
"success export",
sma.Telegram{
Values: map[string]float64{
"1:1.4.0": 0,
"1:2.4.0": 37.9,
},
},
-37.9,
},
{
"success import",
sma.Telegram{
Values: map[string]float64{
"1:1.4.0": 20,
"1:2.4.0": 0,
},
},
20,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
sm := &SMA{
log: util.NewLogger("sma "),
}
sm.updatePower(tt.messsage)
if sm.power != tt.wantPower {
t.Errorf("Listener.processMessage() got %v, want %v", sm.power, tt.wantPower)
}
})
}
}