32 lines
563 B
Go
32 lines
563 B
Go
package nilutil
|
|
|
|
import "testing"
|
|
|
|
type sampleInterface interface {
|
|
Do()
|
|
}
|
|
|
|
type sampleImpl struct{}
|
|
|
|
func (*sampleImpl) Do() {}
|
|
|
|
func TestIsNilDetectsTypedNilInterface(t *testing.T) {
|
|
var p *sampleImpl
|
|
var i sampleInterface = p
|
|
|
|
if !IsNil(i) {
|
|
t.Fatal("IsNil should detect typed nil interface")
|
|
}
|
|
}
|
|
|
|
func TestIsNilRejectsConcreteValues(t *testing.T) {
|
|
var p sampleInterface = &sampleImpl{}
|
|
|
|
if IsNil(p) {
|
|
t.Fatal("IsNil should not reject a concrete interface value")
|
|
}
|
|
if IsNil("x") {
|
|
t.Fatal("IsNil should not reject non-nil scalar values")
|
|
}
|
|
}
|