gobot.io/x/gobot/v2@v2.1.0/drivers/gpio/led_driver_test.go (about) 1 package gpio 2 3 import ( 4 "errors" 5 "strings" 6 "testing" 7 8 "gobot.io/x/gobot/v2" 9 "gobot.io/x/gobot/v2/gobottest" 10 ) 11 12 var _ gobot.Driver = (*LedDriver)(nil) 13 14 func initTestLedDriver() *LedDriver { 15 a := newGpioTestAdaptor() 16 a.testAdaptorDigitalWrite = func(string, byte) (err error) { 17 return nil 18 } 19 a.testAdaptorPwmWrite = func(string, byte) (err error) { 20 return nil 21 } 22 return NewLedDriver(a, "1") 23 } 24 25 func TestLedDriver(t *testing.T) { 26 var err interface{} 27 a := newGpioTestAdaptor() 28 d := NewLedDriver(a, "1") 29 30 gobottest.Assert(t, d.Pin(), "1") 31 gobottest.Refute(t, d.Connection(), nil) 32 33 a.testAdaptorDigitalWrite = func(string, byte) (err error) { 34 return errors.New("write error") 35 } 36 a.testAdaptorPwmWrite = func(string, byte) (err error) { 37 return errors.New("pwm error") 38 } 39 40 err = d.Command("Toggle")(nil) 41 gobottest.Assert(t, err.(error), errors.New("write error")) 42 43 err = d.Command("On")(nil) 44 gobottest.Assert(t, err.(error), errors.New("write error")) 45 46 err = d.Command("Off")(nil) 47 gobottest.Assert(t, err.(error), errors.New("write error")) 48 49 err = d.Command("Brightness")(map[string]interface{}{"level": 100.0}) 50 gobottest.Assert(t, err.(error), errors.New("pwm error")) 51 52 } 53 54 func TestLedDriverStart(t *testing.T) { 55 d := initTestLedDriver() 56 gobottest.Assert(t, d.Start(), nil) 57 } 58 59 func TestLedDriverHalt(t *testing.T) { 60 d := initTestLedDriver() 61 gobottest.Assert(t, d.Halt(), nil) 62 } 63 64 func TestLedDriverToggle(t *testing.T) { 65 d := initTestLedDriver() 66 d.Off() 67 d.Toggle() 68 gobottest.Assert(t, d.State(), true) 69 d.Toggle() 70 gobottest.Assert(t, d.State(), false) 71 } 72 73 func TestLedDriverBrightness(t *testing.T) { 74 a := newGpioTestAdaptor() 75 d := NewLedDriver(a, "1") 76 a.testAdaptorPwmWrite = func(string, byte) (err error) { 77 err = errors.New("pwm error") 78 return 79 } 80 gobottest.Assert(t, d.Brightness(150), errors.New("pwm error")) 81 } 82 83 func TestLEDDriverDefaultName(t *testing.T) { 84 a := newGpioTestAdaptor() 85 d := NewLedDriver(a, "1") 86 gobottest.Assert(t, strings.HasPrefix(d.Name(), "LED"), true) 87 } 88 89 func TestLEDDriverSetName(t *testing.T) { 90 a := newGpioTestAdaptor() 91 d := NewLedDriver(a, "1") 92 d.SetName("mybot") 93 gobottest.Assert(t, d.Name(), "mybot") 94 }