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 }