diff --git a/adaptor.go b/adaptor.go index 4d1db857..c2a7b0b5 100644 --- a/adaptor.go +++ b/adaptor.go @@ -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: } } diff --git a/adaptor_test.go b/adaptor_test.go new file mode 100644 index 00000000..240f2d3c --- /dev/null +++ b/adaptor_test.go @@ -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) +} diff --git a/driver.go b/driver.go index db37b17b..96875a75 100644 --- a/driver.go +++ b/driver.go @@ -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") } } diff --git a/driver_test.go b/driver_test.go new file mode 100644 index 00000000..bc0c7284 --- /dev/null +++ b/driver_test.go @@ -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") +} diff --git a/test_helper.go b/test_helper.go index 76460926..19f77434 100644 --- a/test_helper.go +++ b/test_helper.go @@ -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, - }, ), } }