gobot.io/x/gobot@v1.16.0/drivers/gpio/rgb_led_driver_test.go (about) 1 package gpio 2 3 import ( 4 "errors" 5 "strings" 6 "testing" 7 8 "gobot.io/x/gobot" 9 "gobot.io/x/gobot/gobottest" 10 ) 11 12 var _ gobot.Driver = (*RgbLedDriver)(nil) 13 14 func initTestRgbLedDriver() *RgbLedDriver { 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 NewRgbLedDriver(a, "1", "2", "3") 23 } 24 25 func TestRgbLedDriver(t *testing.T) { 26 var err interface{} 27 28 a := newGpioTestAdaptor() 29 d := NewRgbLedDriver(a, "1", "2", "3") 30 31 gobottest.Assert(t, d.Pin(), "r=1, g=2, b=3") 32 gobottest.Assert(t, d.RedPin(), "1") 33 gobottest.Assert(t, d.GreenPin(), "2") 34 gobottest.Assert(t, d.BluePin(), "3") 35 gobottest.Refute(t, d.Connection(), nil) 36 37 a.testAdaptorDigitalWrite = func(string, byte) (err error) { 38 return errors.New("write error") 39 } 40 a.testAdaptorPwmWrite = func(string, byte) (err error) { 41 return errors.New("pwm error") 42 } 43 44 err = d.Command("Toggle")(nil) 45 gobottest.Assert(t, err.(error), errors.New("pwm error")) 46 47 err = d.Command("On")(nil) 48 gobottest.Assert(t, err.(error), errors.New("pwm error")) 49 50 err = d.Command("Off")(nil) 51 gobottest.Assert(t, err.(error), errors.New("pwm error")) 52 53 err = d.Command("SetRGB")(map[string]interface{}{"r": 0xff, "g": 0xff, "b": 0xff}) 54 gobottest.Assert(t, err.(error), errors.New("pwm error")) 55 } 56 57 func TestRgbLedDriverStart(t *testing.T) { 58 d := initTestRgbLedDriver() 59 gobottest.Assert(t, d.Start(), nil) 60 } 61 62 func TestRgbLedDriverHalt(t *testing.T) { 63 d := initTestRgbLedDriver() 64 gobottest.Assert(t, d.Halt(), nil) 65 } 66 67 func TestRgbLedDriverToggle(t *testing.T) { 68 d := initTestRgbLedDriver() 69 d.Off() 70 d.Toggle() 71 gobottest.Assert(t, d.State(), true) 72 d.Toggle() 73 gobottest.Assert(t, d.State(), false) 74 } 75 76 func TestRgbLedDriverSetLevel(t *testing.T) { 77 a := newGpioTestAdaptor() 78 d := NewRgbLedDriver(a, "1", "2", "3") 79 gobottest.Assert(t, d.SetLevel("1", 150), nil) 80 81 d = NewRgbLedDriver(a, "1", "2", "3") 82 a.testAdaptorPwmWrite = func(string, byte) (err error) { 83 err = errors.New("pwm error") 84 return 85 } 86 gobottest.Assert(t, d.SetLevel("1", 150), errors.New("pwm error")) 87 } 88 89 func TestRgbLedDriverDefaultName(t *testing.T) { 90 a := newGpioTestAdaptor() 91 d := NewRgbLedDriver(a, "1", "2", "3") 92 gobottest.Assert(t, strings.HasPrefix(d.Name(), "RGB"), true) 93 } 94 95 func TestRgbLedDriverSetName(t *testing.T) { 96 a := newGpioTestAdaptor() 97 d := NewRgbLedDriver(a, "1", "2", "3") 98 d.SetName("mybot") 99 gobottest.Assert(t, d.Name(), "mybot") 100 }