gobot.io/x/gobot/v2@v2.1.0/platforms/opencv/camera_driver_test.go (about) 1 package opencv 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 = (*CameraDriver)(nil) 13 14 func initTestCameraDriver() *CameraDriver { 15 d := NewCameraDriver("") 16 d.start = func(c *CameraDriver) (err error) { 17 d.camera = &testCapture{} 18 return nil 19 } 20 return d 21 } 22 23 func TestCameraDriver(t *testing.T) { 24 d := initTestCameraDriver() 25 gobottest.Assert(t, d.Name(), "Camera") 26 gobottest.Assert(t, d.Connection(), (gobot.Connection)(nil)) 27 } 28 29 func TestCameraDriverName(t *testing.T) { 30 d := initTestCameraDriver() 31 gobottest.Assert(t, strings.HasPrefix(d.Name(), "Camera"), true) 32 d.SetName("NewName") 33 gobottest.Assert(t, d.Name(), "NewName") 34 } 35 36 func TestCameraDriverStart(t *testing.T) { 37 sem := make(chan bool) 38 d := initTestCameraDriver() 39 gobottest.Assert(t, d.Start(), nil) 40 d.On(d.Event("frame"), func(data interface{}) { 41 sem <- true 42 }) 43 select { 44 case <-sem: 45 case <-time.After(100 * time.Millisecond): 46 t.Errorf("Event \"frame\" was not published") 47 } 48 49 d = NewCameraDriver("") 50 gobottest.Assert(t, d.Start(), nil) 51 52 d = NewCameraDriver(true) 53 gobottest.Refute(t, d.Start(), nil) 54 } 55 56 func TestCameraDriverHalt(t *testing.T) { 57 d := initTestCameraDriver() 58 gobottest.Assert(t, d.Halt(), nil) 59 }