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) {
|
||||
case 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)
|
||||
case 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"
|
||||
)
|
||||
|
||||
func logFailure(t *testing.T, a interface{}, b interface{}) {
|
||||
func logFailure(t *testing.T, message string) {
|
||||
_, file, line, _ := runtime.Caller(2)
|
||||
s := strings.Split(file, "/")
|
||||
t.Errorf("%v:%v Got %v - type %v, Asserted %v - type %v",
|
||||
s[len(s)-1], line, a, reflect.TypeOf(a), b, reflect.TypeOf(b))
|
||||
t.Errorf("%v:%v: %v", s[len(s)-1], line, message)
|
||||
}
|
||||
func Assert(t *testing.T, a interface{}, b interface{}) {
|
||||
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{}) {
|
||||
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,
|
||||
"TestAdaptor",
|
||||
"/dev/null",
|
||||
map[string]interface{}{
|
||||
"param1": "1",
|
||||
"param2": 2,
|
||||
},
|
||||
),
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue