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  }