1
0
mirror of https://github.com/MontFerret/ferret.git synced 2024-12-16 11:37:36 +02:00
ferret/pkg/runtime/core/helpers_test.go
esell 0004667df6 add unit tests for runtime/core - helpers (#78)
* add unit tests for runtime/core - helpers

* update helpers to ignore struct/unsafe ptr
2018-10-08 18:30:36 -04:00

73 lines
1.0 KiB
Go

package core_test
import (
"testing"
"unsafe"
"github.com/MontFerret/ferret/pkg/runtime/core"
. "github.com/smartystreets/goconvey/convey"
)
type DummyInterface interface {
DummyFunc() string
}
type DummyStruct struct{}
func (d DummyStruct) DummyFunc() string {
return "testing"
}
func TestIsNil(t *testing.T) {
Convey("Should match", t, func() {
// nil == invalid
t := core.IsNil(nil)
So(t, ShouldBeTrue)
a := []string{}
t = core.IsNil(a)
So(t, ShouldBeFalse)
b := make([]string, 1)
t = core.IsNil(b)
So(t, ShouldBeFalse)
c := make(map[string]string)
t = core.IsNil(c)
So(t, ShouldBeFalse)
var s struct {
Test string
}
t = core.IsNil(s)
So(t, ShouldBeFalse)
f := func() {}
t = core.IsNil(f)
So(t, ShouldBeFalse)
i := DummyStruct{}
t = core.IsNil(i)
So(t, ShouldBeFalse)
ch := make(chan string)
t = core.IsNil(ch)
So(t, ShouldBeFalse)
var y unsafe.Pointer
var vy int
y = unsafe.Pointer(&vy)
t = core.IsNil(y)
So(t, ShouldBeFalse)
})
}