forked from hybridgroup/gobot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
robot_test.go
67 lines (56 loc) · 1.61 KB
/
robot_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package gobot
import (
"testing"
"time"
"gobot.io/x/gobot/v2/gobottest"
)
func TestRobotConnectionEach(t *testing.T) {
r := newTestRobot("Robot1")
i := 0
r.Connections().Each(func(conn Connection) {
i++
})
gobottest.Assert(t, r.Connections().Len(), i)
}
func TestRobotToJSON(t *testing.T) {
r := newTestRobot("Robot99")
r.AddCommand("test_function", func(params map[string]interface{}) interface{} {
return nil
})
json := NewJSONRobot(r)
gobottest.Assert(t, len(json.Devices), r.Devices().Len())
gobottest.Assert(t, len(json.Commands), len(r.Commands()))
}
func TestRobotDevicesToJSON(t *testing.T) {
r := newTestRobot("Robot99")
json := NewJSONRobot(r)
gobottest.Assert(t, len(json.Devices), r.Devices().Len())
gobottest.Assert(t, json.Devices[0].Name, "Device1")
gobottest.Assert(t, json.Devices[0].Driver, "*gobot.testDriver")
gobottest.Assert(t, json.Devices[0].Connection, "Connection1")
gobottest.Assert(t, len(json.Devices[0].Commands), 1)
}
func TestRobotStart(t *testing.T) {
r := newTestRobot("Robot99")
gobottest.Assert(t, r.Start(), nil)
gobottest.Assert(t, r.Stop(), nil)
gobottest.Assert(t, r.Running(), false)
}
func TestRobotStartAutoRun(t *testing.T) {
adaptor1 := newTestAdaptor("Connection1", "/dev/null")
driver1 := newTestDriver(adaptor1, "Device1", "0")
//work := func() {}
r := NewRobot("autorun",
[]Connection{adaptor1},
[]Device{driver1},
//work,
)
go func() {
gobottest.Assert(t, r.Start(), nil)
}()
time.Sleep(10 * time.Millisecond)
gobottest.Assert(t, r.Running(), true)
// stop it
gobottest.Assert(t, r.Stop(), nil)
gobottest.Assert(t, r.Running(), false)
}