From d3fc0bd1e51cdd3d19e46bab0878ac811b5a0e95 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Fri, 7 Apr 2017 17:38:57 +0200 Subject: [PATCH] i2c: increase test coverage for Adafruit Motor HAT Signed-off-by: deadprogram --- drivers/i2c/adafruit_driver_test.go | 40 ++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/drivers/i2c/adafruit_driver_test.go b/drivers/i2c/adafruit_driver_test.go index ca2fea3d..4312cea6 100644 --- a/drivers/i2c/adafruit_driver_test.go +++ b/drivers/i2c/adafruit_driver_test.go @@ -1,6 +1,7 @@ package i2c import ( + "errors" "strings" "testing" @@ -40,6 +41,14 @@ func TestAdafruitMotorHatDriverStart(t *testing.T) { gobottest.Assert(t, ada.Start(), nil) } +func TestAdafruitMotorHatDriverStartError(t *testing.T) { + d, adaptor := initTestAdafruitMotorHatDriverWithStubbedAdaptor() + adaptor.i2cWriteImpl = func([]byte) (int, error) { + return 0, errors.New("write error") + } + gobottest.Assert(t, d.Start(), errors.New("write error")) +} + func TestAdafruitMotorHatDriverHalt(t *testing.T) { ada, _ := initTestAdafruitMotorHatDriverWithStubbedAdaptor() @@ -88,16 +97,39 @@ func TestAdafruitMotorHatDriverSetDCMotorSpeed(t *testing.T) { gobottest.Assert(t, err, nil) } +func TestAdafruitMotorHatDriverSetDCMotorSpeedError(t *testing.T) { + ada, a := initTestAdafruitMotorHatDriverWithStubbedAdaptor() + + gobottest.Assert(t, ada.Start(), nil) + a.i2cWriteImpl = func([]byte) (int, error) { + return 0, errors.New("write error") + } + + gobottest.Assert(t, ada.SetDCMotorSpeed(1, 255), errors.New("write error")) +} + func TestAdafruitMotorHatDriverRunDCMotor(t *testing.T) { ada, _ := initTestAdafruitMotorHatDriverWithStubbedAdaptor() gobottest.Assert(t, ada.Start(), nil) dcMotor := 1 - // NOTE: not using the direction constant to prevent importing - // the i2c package - err := ada.RunDCMotor(dcMotor, 1) - gobottest.Assert(t, err, nil) + gobottest.Assert(t, ada.RunDCMotor(dcMotor, AdafruitForward), nil) + gobottest.Assert(t, ada.RunDCMotor(dcMotor, AdafruitBackward), nil) + gobottest.Assert(t, ada.RunDCMotor(dcMotor, AdafruitRelease), nil) +} + +func TestAdafruitMotorHatDriverRunDCMotorError(t *testing.T) { + ada, a := initTestAdafruitMotorHatDriverWithStubbedAdaptor() + gobottest.Assert(t, ada.Start(), nil) + a.i2cWriteImpl = func([]byte) (int, error) { + return 0, errors.New("write error") + } + + dcMotor := 1 + gobottest.Assert(t, ada.RunDCMotor(dcMotor, AdafruitForward), errors.New("write error")) + gobottest.Assert(t, ada.RunDCMotor(dcMotor, AdafruitBackward), errors.New("write error")) + gobottest.Assert(t, ada.RunDCMotor(dcMotor, AdafruitRelease), errors.New("write error")) } func TestAdafruitMotorHatDriverSetStepperMotorSpeed(t *testing.T) {