package container
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestInstance_GetCaller(t *testing.T) {
|
|
|
|
var content = "content"
|
|
instance := Instance(reflect.ValueOf(&TestServiceImplement{content}))
|
|
caller, err := instance.GetCaller("String")
|
|
if err != nil {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
result := caller([]reflect.Value{})
|
|
if len(result) != 2 {
|
|
t.Fatalf("调用器返回结果数量错误!")
|
|
}
|
|
if result[0].Interface() != content {
|
|
t.Fatalf("调用器返回内容错误!")
|
|
}
|
|
}
|
|
|
|
func TestInstance_GetCaller_EmptyMethodNameError(t *testing.T) {
|
|
|
|
_, err := serviceInstance.GetCaller("")
|
|
if err == nil {
|
|
t.Fatalf("意外的没有错误!")
|
|
}
|
|
if err.Error() != fmt.Sprintf("方法名不能为空!") {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
}
|
|
|
|
func TestInstance_GetCaller_MissingMethodError(t *testing.T) {
|
|
|
|
_, err := serviceInstance.GetCaller("NoMethod")
|
|
if err == nil {
|
|
t.Fatalf("意外的没有错误!")
|
|
}
|
|
if err.Error() != fmt.Sprintf("未找到方法!") {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
}
|