GAAS GFrame项目web后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
2.2 KiB

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("获取空接口类型的组件句柄错误!")
}
}