From 5dc903f4ce64fee8786a902027f19d6ebc60ea9a Mon Sep 17 00:00:00 2001 From: andig Date: Sun, 17 May 2020 13:11:40 +0200 Subject: [PATCH] Check that optional interfaces are implemented (#159) --- charger/go-e-test.go | 20 ++++++++++++++++++++ charger/keba_test.go | 23 +++++++++++++++++++++++ charger/nrgble_linux_test.go | 15 +++++++++++++++ charger/nrgconnect_test.go | 19 +++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 charger/go-e-test.go create mode 100644 charger/keba_test.go create mode 100644 charger/nrgble_linux_test.go create mode 100644 charger/nrgconnect_test.go diff --git a/charger/go-e-test.go b/charger/go-e-test.go new file mode 100644 index 000000000..50f9217bb --- /dev/null +++ b/charger/go-e-test.go @@ -0,0 +1,20 @@ +package charger + +import ( + "testing" + + "github.com/andig/evcc/api" +) + +// TestGoE tests interfaces +func TestGoE(t *testing.T) { + var wb api.Charger = NewGoE("foo") + + if _, ok := wb.(api.MeterCurrent); !ok { + t.Error("missing MeterCurrents interface") + } + + if _, ok := wb.(api.ChargeRater); !ok { + t.Error("missing ChargeRater interface") + } +} diff --git a/charger/keba_test.go b/charger/keba_test.go new file mode 100644 index 000000000..f299299e6 --- /dev/null +++ b/charger/keba_test.go @@ -0,0 +1,23 @@ +package charger + +import ( + "testing" + + "github.com/andig/evcc/api" +) + +func TestKeba(t *testing.T) { + var wb api.Charger = NewKeba("foo", RFID{}, 0) + + if _, ok := wb.(api.MeterEnergy); !ok { + t.Error("missing MeterEnergy interface") + } + + if _, ok := wb.(api.MeterCurrent); !ok { + t.Error("missing MeterCurrents interface") + } + + if _, ok := wb.(api.ChargeRater); !ok { + t.Error("missing ChargeRater interface") + } +} diff --git a/charger/nrgble_linux_test.go b/charger/nrgble_linux_test.go new file mode 100644 index 000000000..80e27ac1e --- /dev/null +++ b/charger/nrgble_linux_test.go @@ -0,0 +1,15 @@ +package charger + +import ( + "testing" + + "github.com/andig/evcc/api" +) + +func TestNRGKickBLE(t *testing.T) { + var wb api.Charger = &NRGKickBLE{} + + if _, ok := wb.(api.MeterCurrent); !ok { + t.Error("missing MeterCurrents interface") + } +} diff --git a/charger/nrgconnect_test.go b/charger/nrgconnect_test.go new file mode 100644 index 000000000..14e2641c5 --- /dev/null +++ b/charger/nrgconnect_test.go @@ -0,0 +1,19 @@ +package charger + +import ( + "testing" + + "github.com/andig/evcc/api" +) + +func TestNRGKickConnect(t *testing.T) { + var wb api.Charger = NewNRGKickConnect("foo", "bar", "baz") + + if _, ok := wb.(api.MeterEnergy); !ok { + t.Error("missing MeterEnergy interface") + } + + if _, ok := wb.(api.MeterCurrent); !ok { + t.Error("missing MeterCurrents interface") + } +}