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.

126 lines
3.3 KiB

  1. package container
  2. import (
  3. "LAPP_LF_MOM_BACKEND/web/models"
  4. "fmt"
  5. "testing"
  6. )
  7. func TestNewTransactionBrokerBuilder_New(t *testing.T) {
  8. builder := NewNewTransactionBrokerBuilder()
  9. if builder == nil {
  10. t.Fatalf("创建失败!")
  11. }
  12. }
  13. func TestNewTransactionBrokerBuilder_Check(t *testing.T) {
  14. methodName := "StringWithContext"
  15. method, ok := testServiceType.MethodByName(methodName)
  16. if !ok {
  17. t.Fatalf("意外的没找到方法:%s", methodName)
  18. }
  19. builder := NewNewTransactionBrokerBuilder()
  20. err := builder.Check(method.Type)
  21. if err != nil {
  22. t.Fatalf("意外错误:%s", err.Error())
  23. }
  24. }
  25. func TestNewTransactionBrokerBuilder_Check_Less(t *testing.T) {
  26. methodName := "String"
  27. method, ok := testServiceType.MethodByName(methodName)
  28. if !ok {
  29. t.Fatalf("意外的没找到方法:%s", methodName)
  30. }
  31. builder := NewNewTransactionBrokerBuilder()
  32. err := builder.Check(method.Type)
  33. if err == nil {
  34. t.Fatalf("意外的没有错误!")
  35. }
  36. if err.Error() != fmt.Sprintf("参数太少!实际数量:0") {
  37. t.Fatalf("意外错误:%s", err.Error())
  38. }
  39. }
  40. func TestNewTransactionBrokerBuilder_Check_FirstNotSession(t *testing.T) {
  41. methodName := "StringNotFirstContext"
  42. method, ok := testServiceType.MethodByName(methodName)
  43. if !ok {
  44. t.Fatalf("意外的没找到方法:%s", methodName)
  45. }
  46. builder := NewNewTransactionBrokerBuilder()
  47. err := builder.Check(method.Type)
  48. if err == nil {
  49. t.Fatalf("意外的没有错误!")
  50. }
  51. if err.Error() != fmt.Sprintf("第一个参数必须是*RequestContext") {
  52. t.Fatalf("意外错误:%s", err.Error())
  53. }
  54. }
  55. func TestNewTransactionBrokerBuilder_Check_OtherSession(t *testing.T) {
  56. methodName := "String3"
  57. method, ok := testServiceType.MethodByName(methodName)
  58. if !ok {
  59. t.Fatalf("意外的没找到方法:%s", methodName)
  60. }
  61. builder := NewNewTransactionBrokerBuilder()
  62. err := builder.Check(method.Type)
  63. if err == nil {
  64. t.Fatalf("意外的没有错误!")
  65. }
  66. if err.Error() != fmt.Sprintf("第2个参数不能是*RequestContext") {
  67. t.Fatalf("意外错误:%s", err.Error())
  68. }
  69. }
  70. func TestNewTransactionBrokerBuilder_Check_NullMethodType(t *testing.T) {
  71. builder := NewNewTransactionBrokerBuilder()
  72. err := builder.Check(nil)
  73. if err == nil {
  74. t.Fatalf("意外的没有错误!")
  75. }
  76. if err.Error() != fmt.Sprintf("方法类型不能为空!") {
  77. t.Fatalf("意外错误:%s", err.Error())
  78. }
  79. }
  80. func TestNewTransactionBrokerBuilder_Build_NullCaller(t *testing.T) {
  81. userId := "userId"
  82. user := &models.Usertab{Userid: userId}
  83. sessionContext, err := NewSessionContext(user, transactionHandlerFactoryMock)
  84. if err != nil {
  85. t.Fatalf("意外错误:%s", err.Error())
  86. }
  87. builder := NewNewTransactionBrokerBuilder()
  88. _, err = builder.Build(sessionContext, nil)
  89. if err == nil {
  90. t.Fatalf("意外的没有错误!")
  91. }
  92. if err.Error() != fmt.Sprintf("调用器不能为空!") {
  93. t.Fatalf("意外错误:%s", err.Error())
  94. }
  95. }
  96. func TestNewTransactionBrokerBuilder_Build_NullSession(t *testing.T) {
  97. caller, err := serviceInstance.GetCaller("String")
  98. if err != nil {
  99. t.Fatalf("意外错误:%s", err.Error())
  100. }
  101. builder := NewNewTransactionBrokerBuilder()
  102. _, err = builder.Build(nil, caller)
  103. if err == nil {
  104. t.Fatalf("意外的没有错误!")
  105. }
  106. if err.Error() != fmt.Sprintf("会话上下文不能为空!") {
  107. t.Fatalf("意外错误:%s", err.Error())
  108. }
  109. }