gobot.io/x/gobot/v2@v2.1.0/drivers/spi/mfrc522_driver_test.go (about) 1 package spi 2 3 import ( 4 "strings" 5 "testing" 6 7 "gobot.io/x/gobot/v2" 8 "gobot.io/x/gobot/v2/gobottest" 9 ) 10 11 // this ensures that the implementation is based on spi.Driver, which implements the gobot.Driver 12 // and tests all implementations, so no further tests needed here for gobot.Driver interface 13 var _ gobot.Driver = (*MFRC522Driver)(nil) 14 15 func initTestMFRC522DriverWithStubbedAdaptor() (*MFRC522Driver, *spiTestAdaptor) { 16 a := newSpiTestAdaptor() 17 d := NewMFRC522Driver(a) 18 if err := d.Start(); err != nil { 19 panic(err) 20 } 21 // reset the written bytes during Start() 22 a.spi.Reset() 23 return d, a 24 } 25 26 func TestNewMFRC522Driver(t *testing.T) { 27 var di interface{} = NewMFRC522Driver(newSpiTestAdaptor()) 28 d, ok := di.(*MFRC522Driver) 29 if !ok { 30 t.Errorf("NewMFRC522Driver() should have returned a *MFRC522Driver") 31 } 32 gobottest.Refute(t, d.Driver, nil) 33 gobottest.Assert(t, strings.HasPrefix(d.Name(), "MFRC522"), true) 34 } 35 36 func TestMFRC522WriteByteData(t *testing.T) { 37 // arrange 38 d, a := initTestMFRC522DriverWithStubbedAdaptor() 39 // act 40 err := d.connection.WriteByteData(0x00, 0x00) 41 // assert 42 gobottest.Assert(t, err, nil) 43 gobottest.Assert(t, a.spi.Written(), []byte{0x00, 0x00}) 44 }