chore: add tests
This commit is contained in:
parent
bdc5f406a4
commit
901e30f76e
3 changed files with 108 additions and 3 deletions
|
|
@ -7,7 +7,7 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
//go:generate go tool mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Tariff
|
||||
//go:generate go tool mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff
|
||||
|
||||
// Meter provides total active power in W
|
||||
type Meter interface {
|
||||
|
|
|
|||
57
api/mock.go
57
api/mock.go
|
|
@ -1,9 +1,9 @@
|
|||
// Code generated by MockGen. DO NOT EDIT.
|
||||
// Source: github.com/evcc-io/evcc/api (interfaces: Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Tariff)
|
||||
// Source: github.com/evcc-io/evcc/api (interfaces: Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff)
|
||||
//
|
||||
// Generated by this command:
|
||||
//
|
||||
// mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Tariff
|
||||
// mockgen -package api -destination mock.go github.com/evcc-io/evcc/api Charger,ChargeState,CurrentLimiter,CurrentGetter,PhaseSwitcher,PhaseGetter,FeatureDescriber,Identifier,Meter,MeterEnergy,PhaseCurrents,Vehicle,ConnectionTimer,ChargeRater,Battery,BatteryController,BatterySocLimiter,Circuit,Dimmer,Tariff
|
||||
//
|
||||
|
||||
// Package api is a generated GoMock package.
|
||||
|
|
@ -1084,6 +1084,59 @@ func (mr *MockCircuitMockRecorder) Wrap(parent any) *gomock.Call {
|
|||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Wrap", reflect.TypeOf((*MockCircuit)(nil).Wrap), parent)
|
||||
}
|
||||
|
||||
// MockDimmer is a mock of Dimmer interface.
|
||||
type MockDimmer struct {
|
||||
ctrl *gomock.Controller
|
||||
recorder *MockDimmerMockRecorder
|
||||
isgomock struct{}
|
||||
}
|
||||
|
||||
// MockDimmerMockRecorder is the mock recorder for MockDimmer.
|
||||
type MockDimmerMockRecorder struct {
|
||||
mock *MockDimmer
|
||||
}
|
||||
|
||||
// NewMockDimmer creates a new mock instance.
|
||||
func NewMockDimmer(ctrl *gomock.Controller) *MockDimmer {
|
||||
mock := &MockDimmer{ctrl: ctrl}
|
||||
mock.recorder = &MockDimmerMockRecorder{mock}
|
||||
return mock
|
||||
}
|
||||
|
||||
// EXPECT returns an object that allows the caller to indicate expected use.
|
||||
func (m *MockDimmer) EXPECT() *MockDimmerMockRecorder {
|
||||
return m.recorder
|
||||
}
|
||||
|
||||
// Dim mocks base method.
|
||||
func (m *MockDimmer) Dim(arg0 bool) error {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Dim", arg0)
|
||||
ret0, _ := ret[0].(error)
|
||||
return ret0
|
||||
}
|
||||
|
||||
// Dim indicates an expected call of Dim.
|
||||
func (mr *MockDimmerMockRecorder) Dim(arg0 any) *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Dim", reflect.TypeOf((*MockDimmer)(nil).Dim), arg0)
|
||||
}
|
||||
|
||||
// Dimmed mocks base method.
|
||||
func (m *MockDimmer) Dimmed() (bool, error) {
|
||||
m.ctrl.T.Helper()
|
||||
ret := m.ctrl.Call(m, "Dimmed")
|
||||
ret0, _ := ret[0].(bool)
|
||||
ret1, _ := ret[1].(error)
|
||||
return ret0, ret1
|
||||
}
|
||||
|
||||
// Dimmed indicates an expected call of Dimmed.
|
||||
func (mr *MockDimmerMockRecorder) Dimmed() *gomock.Call {
|
||||
mr.mock.ctrl.T.Helper()
|
||||
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Dimmed", reflect.TypeOf((*MockDimmer)(nil).Dimmed))
|
||||
}
|
||||
|
||||
// MockTariff is a mock of Tariff interface.
|
||||
type MockTariff struct {
|
||||
ctrl *gomock.Controller
|
||||
|
|
|
|||
52
core/site_circuit_test.go
Normal file
52
core/site_circuit_test.go
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
package core
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/evcc-io/evcc/api"
|
||||
"github.com/evcc-io/evcc/util"
|
||||
"github.com/evcc-io/evcc/util/config"
|
||||
"github.com/stretchr/testify/require"
|
||||
"go.uber.org/mock/gomock"
|
||||
)
|
||||
|
||||
func TestDimming(t *testing.T) {
|
||||
ctrl := gomock.NewController(t)
|
||||
|
||||
meter := api.NewMockMeter(ctrl)
|
||||
dimmer := api.NewMockDimmer(ctrl)
|
||||
mm := &struct {
|
||||
api.Meter
|
||||
api.Dimmer
|
||||
}{
|
||||
Meter: meter,
|
||||
Dimmer: dimmer,
|
||||
}
|
||||
|
||||
s := &Site{
|
||||
log: util.NewLogger("foo"),
|
||||
auxMeters: []config.Device[api.Meter]{config.NewStaticDevice[api.Meter](config.Named{}, mm)},
|
||||
}
|
||||
|
||||
for _, tc := range []struct {
|
||||
has, want bool
|
||||
}{
|
||||
{has: false, want: false},
|
||||
{has: false, want: true},
|
||||
{has: true, want: false},
|
||||
{has: true, want: true},
|
||||
} {
|
||||
t.Logf("%+v", tc)
|
||||
|
||||
dimmer.EXPECT().Dimmed().Return(tc.has, nil)
|
||||
if tc.has != tc.want {
|
||||
dimmer.EXPECT().Dim(tc.want).Return(nil)
|
||||
}
|
||||
|
||||
require.NoError(t, s.dimMeters(tc.want))
|
||||
|
||||
if !ctrl.Satisfied() {
|
||||
ctrl.Finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue