evcc-io/core/metrics/accumulator_test.go

43 lines
856 B
Go

package metrics
import (
"testing"
"time"
"github.com/benbjohnson/clock"
"github.com/jinzhu/now"
"github.com/stretchr/testify/assert"
)
func TestMeterEnergyMeterTotal(t *testing.T) {
clock := clock.NewMock()
clock.Set(now.BeginningOfDay())
me := &Accumulator{clock: clock}
me.SetEnergyMeterTotal(10)
assert.Equal(t, 0.0, me.Energy)
me.SetEnergyMeterTotal(11)
assert.Equal(t, 1.0, me.Energy)
me.SetEnergyMeterTotal(11)
assert.Equal(t, 1.0, me.Energy)
}
func TestMeterEnergyAddPower(t *testing.T) {
clock := clock.NewMock()
clock.Set(now.BeginningOfDay())
me := &Accumulator{clock: clock}
clock.Add(60 * time.Minute)
me.AddPower(1e3)
assert.Equal(t, 0.0, me.Energy)
clock.Add(60 * time.Minute)
me.AddPower(1e3)
assert.Equal(t, 1.0, me.Energy)
clock.Add(30 * time.Minute)
me.AddPower(1e3)
assert.Equal(t, 1.5, me.Energy)
}