iris/hero/reflect_test.go

40 lines
832 B
Go
Raw Normal View History

package hero
import (
"reflect"
"testing"
)
type testInterface interface {
Get() string
}
var testInterfaceTyp = reflect.TypeOf((*testInterface)(nil)).Elem()
type testImplPtr struct{}
func (*testImplPtr) Get() string { return "get_ptr" }
type testImpl struct{}
func (testImpl) Get() string { return "get" }
func TestEqualTypes(t *testing.T) {
of := reflect.TypeOf
var tests = map[reflect.Type]reflect.Type{
of("string"): of("input"),
of(42): of(10),
testInterfaceTyp: testInterfaceTyp,
of(new(testImplPtr)): testInterfaceTyp,
of(new(testImpl)): testInterfaceTyp,
of(testImpl{}): testInterfaceTyp,
}
for binding, input := range tests {
if !equalTypes(binding, input) {
t.Fatalf("expected type of: %s to be equal to the binded one of: %s", input, binding)
}
}
}