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  }