gobot.io/x/gobot/v2@v2.1.0/platforms/microbit/temperature_driver_test.go (about) 1 package microbit 2 3 import ( 4 "strings" 5 "testing" 6 "time" 7 8 "gobot.io/x/gobot/v2" 9 "gobot.io/x/gobot/v2/gobottest" 10 ) 11 12 var _ gobot.Driver = (*TemperatureDriver)(nil) 13 14 func initTestTemperatureDriver() *TemperatureDriver { 15 d := NewTemperatureDriver(NewBleTestAdaptor()) 16 return d 17 } 18 19 func TestTemperatureDriver(t *testing.T) { 20 d := initTestTemperatureDriver() 21 gobottest.Assert(t, strings.HasPrefix(d.Name(), "Microbit Temperature"), true) 22 d.SetName("NewName") 23 gobottest.Assert(t, d.Name(), "NewName") 24 } 25 26 func TestTemperatureDriverStartAndHalt(t *testing.T) { 27 d := initTestTemperatureDriver() 28 gobottest.Assert(t, d.Start(), nil) 29 gobottest.Assert(t, d.Halt(), nil) 30 } 31 32 func TestTemperatureDriverReadData(t *testing.T) { 33 sem := make(chan bool) 34 a := NewBleTestAdaptor() 35 d := NewTemperatureDriver(a) 36 d.Start() 37 d.On(Temperature, func(data interface{}) { 38 gobottest.Assert(t, data, int8(0x22)) 39 sem <- true 40 }) 41 42 a.TestReceiveNotification([]byte{0x22}, nil) 43 44 select { 45 case <-sem: 46 case <-time.After(100 * time.Millisecond): 47 t.Errorf("Microbit Event \"Temperature\" was not published") 48 } 49 }