苏州瑞玛APS项目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.

158 lines
4.6 KiB

  1. package container
  2. import (
  3. "fmt"
  4. "testing"
  5. )
  6. func TestServiceHandler_New(t *testing.T) {
  7. methodName := "String"
  8. caller, err := serviceInstance.GetCaller(methodName)
  9. if err != nil {
  10. t.Fatalf("意外错误:%s", err.Error())
  11. }
  12. methodHandler, err := NewServiceMethodHandler(caller)
  13. if err != nil {
  14. t.Fatalf("意外错误:%s", err.Error())
  15. }
  16. serviceHandler, err := NewServiceHandler(serviceInstance, map[string]*ServiceMethodHandler{methodName: methodHandler})
  17. if err != nil {
  18. t.Fatalf("意外错误:%s", err.Error())
  19. }
  20. if serviceHandler == nil {
  21. t.Fatalf("创建失败!")
  22. }
  23. if serviceHandler.instance != serviceInstance {
  24. t.Fatalf("实例设置错误!")
  25. }
  26. if len(serviceHandler.methodMapping) != 1 {
  27. t.Fatalf("方法句柄映射数量错误!")
  28. }
  29. methodHandler1, ok := serviceHandler.methodMapping[methodName]
  30. if !ok {
  31. t.Fatalf("方法句柄映名称设置错误")
  32. }
  33. if methodHandler != methodHandler1 {
  34. t.Fatalf("方法句柄映设置错误")
  35. }
  36. }
  37. func TestServiceHandler_New_NullMethodMapping(t *testing.T) {
  38. _, err := NewServiceHandler(serviceInstance, nil)
  39. if err == nil {
  40. t.Fatalf("意外的没有错误!")
  41. }
  42. if err.Error() != fmt.Sprintf("方法句柄映射不能为空!") {
  43. t.Fatalf("意外错误:%s", err.Error())
  44. }
  45. }
  46. func TestServiceHandler_New_EmptyMethodName(t *testing.T) {
  47. methodName := "String"
  48. caller, err := serviceInstance.GetCaller(methodName)
  49. if err != nil {
  50. t.Fatalf("意外错误:%s", err.Error())
  51. }
  52. methodHandler, err := NewServiceMethodHandler(caller)
  53. if err != nil {
  54. t.Fatalf("意外错误:%s", err.Error())
  55. }
  56. _, err = NewServiceHandler(serviceInstance, map[string]*ServiceMethodHandler{"": methodHandler})
  57. if err == nil {
  58. t.Fatalf("意外的没有错误!")
  59. }
  60. if err.Error() != fmt.Sprintf("方法名不能为空!") {
  61. t.Fatalf("意外错误:%s", err.Error())
  62. }
  63. }
  64. func TestServiceHandler_New_NullMethodHandler(t *testing.T) {
  65. methodName := "String"
  66. _, err := NewServiceHandler(serviceInstance, map[string]*ServiceMethodHandler{methodName: nil})
  67. if err == nil {
  68. t.Fatalf("意外的没有错误!")
  69. }
  70. if err.Error() != fmt.Sprintf("方法句柄不能为空!") {
  71. t.Fatalf("意外错误:%s", err.Error())
  72. }
  73. }
  74. func TestServiceHandler_Instance(t *testing.T) {
  75. handler, err := NewServiceHandler(ZeroInstance, map[string]*ServiceMethodHandler{})
  76. if err != nil {
  77. t.Fatalf("意外错误:%s", err.Error())
  78. }
  79. handler.instance = serviceInstance
  80. if handler.Instance() != serviceInstance {
  81. t.Fatalf("获取实例错误!")
  82. }
  83. }
  84. func TestServiceHandler_Method(t *testing.T) {
  85. serviceHandler, err := NewServiceHandler(serviceInstance, map[string]*ServiceMethodHandler{})
  86. if err != nil {
  87. t.Fatalf("意外错误:%s", err.Error())
  88. }
  89. if serviceHandler.instance != serviceInstance {
  90. t.Fatalf("实例设置错误!")
  91. }
  92. methodName := "String"
  93. caller, err := serviceInstance.GetCaller(methodName)
  94. if err != nil {
  95. t.Fatalf("意外错误:%s", err.Error())
  96. }
  97. methodHandler, err := NewServiceMethodHandler(caller)
  98. if err != nil {
  99. t.Fatalf("意外错误:%s", err.Error())
  100. }
  101. serviceHandler.methodMapping[methodName] = methodHandler
  102. if serviceHandler.Method(methodName) != methodHandler {
  103. t.Fatalf("获取方法句柄映射错误")
  104. }
  105. }
  106. func TestServiceHandler_Method_EmptyMethodName(t *testing.T) {
  107. serviceHandler, err := NewServiceHandler(serviceInstance, map[string]*ServiceMethodHandler{})
  108. if err != nil {
  109. t.Fatalf("意外错误:%s", err.Error())
  110. }
  111. if serviceHandler.instance != serviceInstance {
  112. t.Fatalf("实例设置错误!")
  113. }
  114. methodName := "String"
  115. caller, err := serviceInstance.GetCaller(methodName)
  116. if err != nil {
  117. t.Fatalf("意外错误:%s", err.Error())
  118. }
  119. methodHandler, err := NewServiceMethodHandler(caller)
  120. if err != nil {
  121. t.Fatalf("意外错误:%s", err.Error())
  122. }
  123. serviceHandler.methodMapping[methodName] = methodHandler
  124. if serviceHandler.Method("") != nil {
  125. t.Fatalf("获取空方法名的方法句柄映射错误")
  126. }
  127. }
  128. func TestServiceHandler_Method_MissingMethod(t *testing.T) {
  129. serviceHandler, err := NewServiceHandler(serviceInstance, map[string]*ServiceMethodHandler{})
  130. if err != nil {
  131. t.Fatalf("意外错误:%s", err.Error())
  132. }
  133. if serviceHandler.instance != serviceInstance {
  134. t.Fatalf("实例设置错误!")
  135. }
  136. methodName := "String"
  137. caller, err := serviceInstance.GetCaller(methodName)
  138. if err != nil {
  139. t.Fatalf("意外错误:%s", err.Error())
  140. }
  141. methodHandler, err := NewServiceMethodHandler(caller)
  142. if err != nil {
  143. t.Fatalf("意外错误:%s", err.Error())
  144. }
  145. serviceHandler.methodMapping[methodName] = methodHandler
  146. if serviceHandler.Method("String1") != nil {
  147. t.Fatalf("找到了不存在的方法句柄")
  148. }
  149. }