gobot.io/x/gobot/v2@v2.1.0/drivers/gpio/buzzer_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 = (*BuzzerDriver)(nil) 13 14 func initTestBuzzerDriver(conn DigitalWriter) *BuzzerDriver { 15 return NewBuzzerDriver(conn, "1") 16 } 17 18 func TestBuzzerDriverDefaultName(t *testing.T) { 19 g := initTestBuzzerDriver(newGpioTestAdaptor()) 20 gobottest.Assert(t, strings.HasPrefix(g.Name(), "Buzzer"), true) 21 } 22 23 func TestBuzzerDriverSetName(t *testing.T) { 24 g := initTestBuzzerDriver(newGpioTestAdaptor()) 25 g.SetName("mybot") 26 gobottest.Assert(t, g.Name(), "mybot") 27 } 28 29 func TestBuzzerDriverStart(t *testing.T) { 30 d := initTestBuzzerDriver(newGpioTestAdaptor()) 31 gobottest.Assert(t, d.Start(), nil) 32 } 33 34 func TestBuzzerDriverHalt(t *testing.T) { 35 d := initTestBuzzerDriver(newGpioTestAdaptor()) 36 gobottest.Assert(t, d.Halt(), nil) 37 } 38 39 func TestBuzzerDriverToggle(t *testing.T) { 40 d := initTestBuzzerDriver(newGpioTestAdaptor()) 41 d.Off() 42 d.Toggle() 43 gobottest.Assert(t, d.State(), true) 44 d.Toggle() 45 gobottest.Assert(t, d.State(), false) 46 } 47 48 func TestBuzzerDriverTone(t *testing.T) { 49 d := initTestBuzzerDriver(newGpioTestAdaptor()) 50 gobottest.Assert(t, d.Tone(100, 0.01), nil) 51 } 52 53 func TestBuzzerDriverOnError(t *testing.T) { 54 a := newGpioTestAdaptor() 55 d := initTestBuzzerDriver(a) 56 a.TestAdaptorDigitalWrite(func(string, byte) (err error) { 57 return errors.New("write error") 58 }) 59 60 gobottest.Assert(t, d.On(), errors.New("write error")) 61 } 62 63 func TestBuzzerDriverOffError(t *testing.T) { 64 a := newGpioTestAdaptor() 65 d := initTestBuzzerDriver(a) 66 a.TestAdaptorDigitalWrite(func(string, byte) (err error) { 67 return errors.New("write error") 68 }) 69 70 gobottest.Assert(t, d.Off(), errors.New("write error")) 71 } 72 73 func TestBuzzerDriverToneError(t *testing.T) { 74 a := newGpioTestAdaptor() 75 d := initTestBuzzerDriver(a) 76 a.TestAdaptorDigitalWrite(func(string, byte) (err error) { 77 return errors.New("write error") 78 }) 79 80 gobottest.Assert(t, d.Tone(100, 0.01), errors.New("write error")) 81 }