Add more driver and adaptor test coverage
This commit is contained in:
parent
84363c6699
commit
988bce8e6d
|
@ -37,7 +37,6 @@ func NewAdaptor(name string, adaptorType string, v ...interface{}) *Adaptor {
|
||||||
switch v[i].(type) {
|
switch v[i].(type) {
|
||||||
case string:
|
case string:
|
||||||
a.port = v[i].(string)
|
a.port = v[i].(string)
|
||||||
default:
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
package gobot
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestAdaptor(t *testing.T) {
|
||||||
|
a := NewAdaptor("", "testBot", "/dev/null")
|
||||||
|
Refute(t, a.Name(), "")
|
||||||
|
a.SetPort("/dev/null1")
|
||||||
|
Assert(t, a.Port(), "/dev/null1")
|
||||||
|
a.SetName("myAdaptor")
|
||||||
|
Assert(t, a.Name(), "myAdaptor")
|
||||||
|
a.SetConnected(true)
|
||||||
|
Assert(t, a.Connected(), true)
|
||||||
|
}
|
|
@ -58,8 +58,6 @@ func NewDriver(name string, driverType string, v ...interface{}) *Driver {
|
||||||
d.adaptor = v[i].(AdaptorInterface)
|
d.adaptor = v[i].(AdaptorInterface)
|
||||||
case time.Duration:
|
case time.Duration:
|
||||||
d.interval = v[i].(time.Duration)
|
d.interval = v[i].(time.Duration)
|
||||||
default:
|
|
||||||
fmt.Println("Unknown argument passed to NewDriver")
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
package gobot
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"testing"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestDriver(t *testing.T) {
|
||||||
|
a := NewTestAdaptor("testAdaptor")
|
||||||
|
d := NewDriver("",
|
||||||
|
"testDriver",
|
||||||
|
a,
|
||||||
|
"1",
|
||||||
|
5*time.Second,
|
||||||
|
)
|
||||||
|
|
||||||
|
Refute(t, d.Name(), "")
|
||||||
|
Assert(t, d.Type(), "testDriver")
|
||||||
|
Assert(t, d.Interval(), 5*time.Second)
|
||||||
|
Assert(t, d.Pin(), "1")
|
||||||
|
Assert(t, d.Adaptor(), a)
|
||||||
|
|
||||||
|
d.SetPin("10")
|
||||||
|
Assert(t, d.Pin(), "10")
|
||||||
|
|
||||||
|
d.SetName("myDriver")
|
||||||
|
Assert(t, d.Name(), "myDriver")
|
||||||
|
|
||||||
|
d.SetInterval(100 * time.Second)
|
||||||
|
Assert(t, d.Interval(), 100*time.Second)
|
||||||
|
|
||||||
|
Assert(t, len(d.Commands()), 0)
|
||||||
|
d.AddCommand("cmd1", func(params map[string]interface{}) interface{} {
|
||||||
|
return fmt.Sprintf("hello from %v", params["name"])
|
||||||
|
})
|
||||||
|
Assert(t, len(d.Commands()), 1)
|
||||||
|
Assert(t,
|
||||||
|
d.Command("cmd1")(map[string]interface{}{"name": d.Name()}).(string),
|
||||||
|
"hello from "+d.Name(),
|
||||||
|
)
|
||||||
|
|
||||||
|
Assert(t, len(d.Events()), 0)
|
||||||
|
d.AddEvent("event1")
|
||||||
|
Assert(t, len(d.Events()), 1)
|
||||||
|
Refute(t, d.Event("event1"), nil)
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
r := recover()
|
||||||
|
if r != nil {
|
||||||
|
Assert(t, "Unknown Driver Event: event2", r)
|
||||||
|
} else {
|
||||||
|
t.Errorf("Did not return Unknown Event error")
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
d.Event("event2")
|
||||||
|
}
|
|
@ -9,21 +9,22 @@ import (
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
func logFailure(t *testing.T, a interface{}, b interface{}) {
|
func logFailure(t *testing.T, message string) {
|
||||||
_, file, line, _ := runtime.Caller(2)
|
_, file, line, _ := runtime.Caller(2)
|
||||||
s := strings.Split(file, "/")
|
s := strings.Split(file, "/")
|
||||||
t.Errorf("%v:%v Got %v - type %v, Asserted %v - type %v",
|
t.Errorf("%v:%v: %v", s[len(s)-1], line, message)
|
||||||
s[len(s)-1], line, a, reflect.TypeOf(a), b, reflect.TypeOf(b))
|
|
||||||
}
|
}
|
||||||
func Assert(t *testing.T, a interface{}, b interface{}) {
|
func Assert(t *testing.T, a interface{}, b interface{}) {
|
||||||
if !reflect.DeepEqual(a, b) {
|
if !reflect.DeepEqual(a, b) {
|
||||||
logFailure(t, a, b)
|
logFailure(t, fmt.Sprintf("%v - \"%v\", should equal, %v - \"%v\"",
|
||||||
|
a, reflect.TypeOf(a), b, reflect.TypeOf(b)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func Refute(t *testing.T, a interface{}, b interface{}) {
|
func Refute(t *testing.T, a interface{}, b interface{}) {
|
||||||
if reflect.DeepEqual(a, b) {
|
if reflect.DeepEqual(a, b) {
|
||||||
logFailure(t, a, b)
|
logFailure(t, fmt.Sprintf("%v - \"%v\", should not equal, %v - \"%v\"",
|
||||||
|
a, reflect.TypeOf(a), b, reflect.TypeOf(b)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -102,10 +103,6 @@ func NewTestAdaptor(name string) *testAdaptor {
|
||||||
name,
|
name,
|
||||||
"TestAdaptor",
|
"TestAdaptor",
|
||||||
"/dev/null",
|
"/dev/null",
|
||||||
map[string]interface{}{
|
|
||||||
"param1": "1",
|
|
||||||
"param2": 2,
|
|
||||||
},
|
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue