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

219 lines
6.5 KiB

  1. package container
  2. import (
  3. "fmt"
  4. "leit.com/LAPP_CHEERSSON_BACKEND/global"
  5. "testing"
  6. )
  7. func TestDefaultSessionManager_New(t *testing.T) {
  8. informationManager := NewInformationManager()
  9. defaultSessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  10. if defaultSessionManager == nil {
  11. t.Fatalf("创建失败!")
  12. }
  13. if defaultSessionManager.informationManager == nil {
  14. t.Fatalf("组件信息管理器不能为空!")
  15. }
  16. if defaultSessionManager.transactionHandlerFactory == nil {
  17. t.Fatalf("事务句柄工厂不能为空!")
  18. }
  19. if len(defaultSessionManager.user2SessionMapping) != 0 {
  20. t.Fatalf("用户会话映射量错误!")
  21. }
  22. if len(defaultSessionManager.sessionMapping) != 0 {
  23. t.Fatalf("会话映射数量错误!")
  24. }
  25. }
  26. func TestDefaultSessionManager_New_NullInformationManager(t *testing.T) {
  27. defer func() {
  28. if err := recover(); err != "组件信息管理器不能为空!" {
  29. t.Fatalf("意外错误:%s", err)
  30. }
  31. }()
  32. _ = NewDefaultSessionManager(nil, transactionHandlerFactoryMock)
  33. t.Fatalf("意外的没有错误!")
  34. }
  35. func TestDefaultSessionManager_New_NullTransactionHandlerFactoryMock(t *testing.T) {
  36. defer func() {
  37. if err := recover(); err != "事务句柄工厂不能为空!" {
  38. t.Fatalf("意外错误:%s", err)
  39. }
  40. }()
  41. informationManager := NewInformationManager()
  42. _ = NewDefaultSessionManager(informationManager, nil)
  43. t.Fatalf("意外的没有错误!")
  44. }
  45. func TestDefaultSessionManager_GetSession(t *testing.T) {
  46. informationManager := NewInformationManager()
  47. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  48. sessionId := "sessionId"
  49. userId := "userId"
  50. user := &global.User{UserId: userId}
  51. _, err := sessionManager.GetSession(sessionId, user)
  52. if err != nil {
  53. t.Fatalf("意外错误:%s", err.Error())
  54. }
  55. session, ok := sessionManager.sessionMapping[sessionId]
  56. if !ok {
  57. t.Fatalf("没有找到会话!")
  58. }
  59. if session.user.UserId != userId {
  60. t.Fatalf("会话的用户标识不正确!")
  61. }
  62. session, ok = sessionManager.user2SessionMapping[userId]
  63. if !ok {
  64. t.Fatalf("没有找到与人员关联的会话!")
  65. }
  66. if session.sessionId != sessionId {
  67. t.Fatalf("会话的会话标识不正确!")
  68. }
  69. }
  70. func TestDefaultSessionManager_GetSession_Repeated(t *testing.T) {
  71. informationManager := NewInformationManager()
  72. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  73. sessionId := "sessionId1"
  74. userId := "userId"
  75. user := &global.User{UserId: userId}
  76. _, err := sessionManager.GetSession(sessionId, user)
  77. if err != nil {
  78. t.Fatalf("意外错误:%s", err.Error())
  79. }
  80. sessionId = "sessionId2"
  81. _, err = sessionManager.GetSession(sessionId, user)
  82. if err != nil {
  83. t.Fatalf("意外错误:%s", err.Error())
  84. }
  85. if len(sessionManager.sessionMapping) != 1 {
  86. t.Fatalf("会话映射射数量错误!")
  87. }
  88. if len(sessionManager.user2SessionMapping) != 1 {
  89. t.Fatalf("用户会话映射数量错误!")
  90. }
  91. session, ok := sessionManager.sessionMapping[sessionId]
  92. if !ok {
  93. t.Fatalf("没有找到会话!")
  94. }
  95. if session.user.UserId != userId {
  96. t.Fatalf("会话的用户标识不正确!")
  97. }
  98. session, ok = sessionManager.user2SessionMapping[userId]
  99. if !ok {
  100. t.Fatalf("没有找到与人员关联的会话!")
  101. }
  102. if session.sessionId != sessionId {
  103. t.Fatalf("会话的会话标识不正确!")
  104. }
  105. }
  106. func TestDefaultSessionManager_GetSession_EmptySessionId(t *testing.T) {
  107. informationManager := NewInformationManager()
  108. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  109. sessionId := ""
  110. userId := "userId"
  111. user := &global.User{UserId: userId}
  112. _, err := sessionManager.GetSession(sessionId, user)
  113. if err == nil {
  114. t.Fatalf("意外的没有错误!")
  115. }
  116. if err.Error() != fmt.Sprintf("会话标识不能为空!") {
  117. t.Fatalf("意外错误:%s", err.Error())
  118. }
  119. }
  120. func TestDefaultSessionManager_GetSession_NullUser(t *testing.T) {
  121. informationManager := NewInformationManager()
  122. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  123. sessionId := "sessionId"
  124. _, err := sessionManager.GetSession(sessionId, nil)
  125. if err == nil {
  126. t.Fatalf("意外的没有错误!")
  127. }
  128. if err.Error() != fmt.Sprintf("用户信息不能为空!") {
  129. t.Fatalf("意外错误:%s", err.Error())
  130. }
  131. }
  132. func TestDefaultSessionManager_GetSession_EmptyUserId(t *testing.T) {
  133. informationManager := NewInformationManager()
  134. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  135. sessionId := "sessionId"
  136. userId := ""
  137. user := &global.User{UserId: userId}
  138. _, err := sessionManager.GetSession(sessionId, user)
  139. if err == nil {
  140. t.Fatalf("意外的没有错误!")
  141. }
  142. if err.Error() != fmt.Sprintf("用户标识不能为空!") {
  143. t.Fatalf("意外错误:%s", err.Error())
  144. }
  145. }
  146. func TestDefaultSessionManager_ClearSession(t *testing.T) {
  147. informationManager := NewInformationManager()
  148. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  149. sessionId := "sessionId"
  150. userId := "userId"
  151. user := &global.User{UserId: userId}
  152. _, err := sessionManager.GetSession(sessionId, user)
  153. if err != nil {
  154. t.Fatalf("意外错误:%s", err.Error())
  155. }
  156. sessionManager.ClearSession(sessionId)
  157. if len(sessionManager.sessionMapping) != 0 {
  158. t.Fatalf("会话映射射数量错误!")
  159. }
  160. if len(sessionManager.user2SessionMapping) != 0 {
  161. t.Fatalf("用户会话映射数量错误!")
  162. }
  163. _, ok := sessionManager.user2SessionMapping[userId]
  164. if ok {
  165. t.Fatalf("清理用户会话映射失败!")
  166. }
  167. _, ok = sessionManager.sessionMapping[sessionId]
  168. if ok {
  169. t.Fatalf("清理会话映射失败!")
  170. }
  171. }
  172. func TestDefaultSessionManager_ClearSession_Repeated(t *testing.T) {
  173. informationManager := NewInformationManager()
  174. sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
  175. sessionId := "sessionId"
  176. userId := "userId"
  177. user := &global.User{UserId: userId}
  178. _, err := sessionManager.GetSession(sessionId, user)
  179. if err != nil {
  180. t.Fatalf("意外错误:%s", err.Error())
  181. }
  182. sessionManager.ClearSession(sessionId)
  183. sessionManager.ClearSession(sessionId)
  184. if len(sessionManager.sessionMapping) != 0 {
  185. t.Fatalf("会话映射射数量错误!")
  186. }
  187. if len(sessionManager.user2SessionMapping) != 0 {
  188. t.Fatalf("用户会话映射数量错误!")
  189. }
  190. _, ok := sessionManager.user2SessionMapping[userId]
  191. if ok {
  192. t.Fatalf("清理用户会话映射失败!")
  193. }
  194. _, ok = sessionManager.sessionMapping[sessionId]
  195. if ok {
  196. t.Fatalf("清理会话映射失败!")
  197. }
  198. }