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  }