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

  1. package container
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestHandlerManager_New(t *testing.T) {
  7. handler := NewElementHandler(elementInstance)
  8. handlerMapping := map[Interface]ComponentHandler{testElementType: handler}
  9. handlerManager, err := NewHandlerManager(handlerMapping)
  10. if err != nil {
  11. t.Fatalf("意外错误:%s", err.Error())
  12. }
  13. if handlerManager == nil {
  14. t.Fatalf("创建失败!")
  15. }
  16. if handlerManager.handlerMapping == nil {
  17. t.Fatalf("组件句柄映射设置错误!")
  18. }
  19. if len(handlerManager.handlerMapping) != 1 {
  20. t.Fatalf("组件句柄映射数量错误!")
  21. }
  22. handler1, ok := handlerManager.handlerMapping[testElementType]
  23. if !ok {
  24. t.Fatalf("未找到组件句柄!")
  25. }
  26. if handler != handler1 {
  27. t.Fatalf("组件句柄错误!")
  28. }
  29. }
  30. func TestHandlerManager_New_NullInterfaceType(t *testing.T) {
  31. handler := NewElementHandler(elementInstance)
  32. _, err := NewHandlerManager(map[Interface]ComponentHandler{nil: handler})
  33. if err == nil {
  34. t.Fatalf("意外的没有错误!")
  35. }
  36. if err.Error() != fmt.Sprintf("组件接口不能为空!") {
  37. t.Fatalf("意外错误:%s", err.Error())
  38. }
  39. }
  40. func TestHandlerManager_New_NullHandler(t *testing.T) {
  41. _, err := NewHandlerManager(map[Interface]ComponentHandler{testElementType: nil})
  42. if err == nil {
  43. t.Fatalf("意外的没有错误!")
  44. }
  45. if err.Error() != fmt.Sprintf("组件句柄不能为空!") {
  46. t.Fatalf("意外错误:%s", err.Error())
  47. }
  48. }
  49. func TestHandlerManager_Handler(t *testing.T) {
  50. handlerManager, err := NewHandlerManager(map[Interface]ComponentHandler{})
  51. if err != nil {
  52. t.Fatalf("意外错误:%s", err.Error())
  53. }
  54. handler := NewElementHandler(elementInstance)
  55. handlerManager.handlerMapping[testElementType] = handler
  56. if handlerManager.Handler(testElementType) != handler {
  57. t.Fatalf("获取指定组件句柄错误!")
  58. }
  59. if handlerManager.Handler(testServiceType) != nil {
  60. t.Fatalf("获取不存在的组件句柄错误!")
  61. }
  62. }
  63. func TestHandlerManager_Handler__NullInterfaceType(t *testing.T) {
  64. handlerManager, err := NewHandlerManager(map[Interface]ComponentHandler{})
  65. if err != nil {
  66. t.Fatalf("意外错误:%s", err.Error())
  67. }
  68. if handlerManager.Handler(nil) != nil {
  69. t.Fatalf("获取空接口类型的组件句柄错误!")
  70. }
  71. }