package container
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestHandlerManager_New(t *testing.T) {
|
|
handler := NewElementHandler(elementInstance)
|
|
handlerMapping := map[Interface]ComponentHandler{testElementType: handler}
|
|
handlerManager, err := NewHandlerManager(handlerMapping)
|
|
if err != nil {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
if handlerManager == nil {
|
|
t.Fatalf("创建失败!")
|
|
}
|
|
if handlerManager.handlerMapping == nil {
|
|
t.Fatalf("组件句柄映射设置错误!")
|
|
}
|
|
if len(handlerManager.handlerMapping) != 1 {
|
|
t.Fatalf("组件句柄映射数量错误!")
|
|
}
|
|
handler1, ok := handlerManager.handlerMapping[testElementType]
|
|
if !ok {
|
|
t.Fatalf("未找到组件句柄!")
|
|
}
|
|
if handler != handler1 {
|
|
t.Fatalf("组件句柄错误!")
|
|
}
|
|
}
|
|
|
|
func TestHandlerManager_New_NullInterfaceType(t *testing.T) {
|
|
handler := NewElementHandler(elementInstance)
|
|
_, err := NewHandlerManager(map[Interface]ComponentHandler{nil: handler})
|
|
if err == nil {
|
|
t.Fatalf("意外的没有错误!")
|
|
}
|
|
if err.Error() != fmt.Sprintf("组件接口不能为空!") {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
}
|
|
|
|
func TestHandlerManager_New_NullHandler(t *testing.T) {
|
|
_, err := NewHandlerManager(map[Interface]ComponentHandler{testElementType: nil})
|
|
if err == nil {
|
|
t.Fatalf("意外的没有错误!")
|
|
}
|
|
if err.Error() != fmt.Sprintf("组件句柄不能为空!") {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
}
|
|
|
|
func TestHandlerManager_Handler(t *testing.T) {
|
|
handlerManager, err := NewHandlerManager(map[Interface]ComponentHandler{})
|
|
if err != nil {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
handler := NewElementHandler(elementInstance)
|
|
handlerManager.handlerMapping[testElementType] = handler
|
|
if handlerManager.Handler(testElementType) != handler {
|
|
t.Fatalf("获取指定组件句柄错误!")
|
|
}
|
|
if handlerManager.Handler(testServiceType) != nil {
|
|
t.Fatalf("获取不存在的组件句柄错误!")
|
|
}
|
|
}
|
|
|
|
func TestHandlerManager_Handler__NullInterfaceType(t *testing.T) {
|
|
handlerManager, err := NewHandlerManager(map[Interface]ComponentHandler{})
|
|
if err != nil {
|
|
t.Fatalf("意外错误:%s", err.Error())
|
|
}
|
|
if handlerManager.Handler(nil) != nil {
|
|
t.Fatalf("获取空接口类型的组件句柄错误!")
|
|
}
|
|
}
|