gobot.io/x/gobot/v2@v2.1.0/drivers/gpio/aip1640_driver_test.go (about)

     1  package gpio
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"gobot.io/x/gobot/v2"
     8  	"gobot.io/x/gobot/v2/gobottest"
     9  )
    10  
    11  var _ gobot.Driver = (*AIP1640Driver)(nil)
    12  
    13  // --------- HELPERS
    14  func initTestAIP1640Driver() (driver *AIP1640Driver) {
    15  	driver, _ = initTestAIP1640DriverWithStubbedAdaptor()
    16  	return
    17  }
    18  
    19  func initTestAIP1640DriverWithStubbedAdaptor() (*AIP1640Driver, *gpioTestAdaptor) {
    20  	adaptor := newGpioTestAdaptor()
    21  	return NewAIP1640Driver(adaptor, "1", "2"), adaptor
    22  }
    23  
    24  // --------- TESTS
    25  func TestAIP1640Driver(t *testing.T) {
    26  	var a interface{} = initTestAIP1640Driver()
    27  	_, ok := a.(*AIP1640Driver)
    28  	if !ok {
    29  		t.Errorf("NewAIP1640Driver() should have returned a *AIP1640Driver")
    30  	}
    31  }
    32  
    33  func TestAIP1640DriverStart(t *testing.T) {
    34  	d := initTestAIP1640Driver()
    35  	gobottest.Assert(t, d.Start(), nil)
    36  }
    37  
    38  func TestAIP1640DriverHalt(t *testing.T) {
    39  	d := initTestAIP1640Driver()
    40  	gobottest.Assert(t, d.Halt(), nil)
    41  }
    42  
    43  func TestAIP1640DriverDefaultName(t *testing.T) {
    44  	d := initTestAIP1640Driver()
    45  	gobottest.Assert(t, strings.HasPrefix(d.Name(), "AIP1640Driver"), true)
    46  }
    47  
    48  func TestAIP1640DriverSetName(t *testing.T) {
    49  	d := initTestAIP1640Driver()
    50  	d.SetName("mybot")
    51  	gobottest.Assert(t, d.Name(), "mybot")
    52  }
    53  
    54  func TestAIP1640DriveDrawPixel(t *testing.T) {
    55  	d := initTestAIP1640Driver()
    56  	d.DrawPixel(2, 3, true)
    57  	d.DrawPixel(0, 3, true)
    58  	gobottest.Assert(t, uint8(5), d.buffer[7-3])
    59  }
    60  
    61  func TestAIP1640DriverDrawRow(t *testing.T) {
    62  	d := initTestAIP1640Driver()
    63  	d.DrawRow(4, 0x3C)
    64  	gobottest.Assert(t, uint8(0x3C), d.buffer[7-4])
    65  }
    66  
    67  func TestAIP1640DriverDrawMatrix(t *testing.T) {
    68  	d := initTestAIP1640Driver()
    69  	drawing := [8]byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}
    70  	d.DrawMatrix(drawing)
    71  	gobottest.Assert(t, [8]byte{0xEF, 0xCD, 0xAB, 0x89, 0x67, 0x45, 0x23, 0x01}, d.buffer)
    72  }
    73  
    74  func TestAIP1640DriverClear(t *testing.T) {
    75  	d := initTestAIP1640Driver()
    76  	drawing := [8]byte{0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF}
    77  	d.DrawMatrix(drawing)
    78  	gobottest.Assert(t, [8]byte{0xEF, 0xCD, 0xAB, 0x89, 0x67, 0x45, 0x23, 0x01}, d.buffer)
    79  	d.Clear()
    80  	gobottest.Assert(t, [8]byte{}, d.buffer)
    81  }
    82  
    83  func TestAIP1640DriverSetIntensity(t *testing.T) {
    84  	d := initTestAIP1640Driver()
    85  	d.SetIntensity(3)
    86  	gobottest.Assert(t, uint8(3), d.intensity)
    87  }
    88  
    89  func TestAIP1640DriverSetIntensityHigherThan7(t *testing.T) {
    90  	d := initTestAIP1640Driver()
    91  	d.SetIntensity(19)
    92  	gobottest.Assert(t, uint8(7), d.intensity)
    93  }