|
|
- package container
-
- import (
- "fmt"
- "leit.com/LAPP_CHEERSSON_BACKEND/global"
- "testing"
- )
-
- func TestDefaultSessionManager_New(t *testing.T) {
-
- informationManager := NewInformationManager()
- defaultSessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- if defaultSessionManager == nil {
- t.Fatalf("创建失败!")
- }
- if defaultSessionManager.informationManager == nil {
- t.Fatalf("组件信息管理器不能为空!")
- }
- if defaultSessionManager.transactionHandlerFactory == nil {
- t.Fatalf("事务句柄工厂不能为空!")
- }
- if len(defaultSessionManager.user2SessionMapping) != 0 {
- t.Fatalf("用户会话映射量错误!")
- }
- if len(defaultSessionManager.sessionMapping) != 0 {
- t.Fatalf("会话映射数量错误!")
- }
- }
-
- func TestDefaultSessionManager_New_NullInformationManager(t *testing.T) {
- defer func() {
- if err := recover(); err != "组件信息管理器不能为空!" {
- t.Fatalf("意外错误:%s", err)
- }
- }()
-
- _ = NewDefaultSessionManager(nil, transactionHandlerFactoryMock)
- t.Fatalf("意外的没有错误!")
- }
-
- func TestDefaultSessionManager_New_NullTransactionHandlerFactoryMock(t *testing.T) {
- defer func() {
- if err := recover(); err != "事务句柄工厂不能为空!" {
- t.Fatalf("意外错误:%s", err)
- }
- }()
-
- informationManager := NewInformationManager()
- _ = NewDefaultSessionManager(informationManager, nil)
- t.Fatalf("意外的没有错误!")
- }
-
- func TestDefaultSessionManager_GetSession(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := "sessionId"
- userId := "userId"
- user := &global.User{UserId: userId}
- _, err := sessionManager.GetSession(sessionId, user)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- session, ok := sessionManager.sessionMapping[sessionId]
- if !ok {
- t.Fatalf("没有找到会话!")
- }
- if session.user.UserId != userId {
- t.Fatalf("会话的用户标识不正确!")
- }
- session, ok = sessionManager.user2SessionMapping[userId]
- if !ok {
- t.Fatalf("没有找到与人员关联的会话!")
- }
- if session.sessionId != sessionId {
- t.Fatalf("会话的会话标识不正确!")
- }
- }
-
- func TestDefaultSessionManager_GetSession_Repeated(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := "sessionId1"
- userId := "userId"
- user := &global.User{UserId: userId}
- _, err := sessionManager.GetSession(sessionId, user)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- sessionId = "sessionId2"
- _, err = sessionManager.GetSession(sessionId, user)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- if len(sessionManager.sessionMapping) != 1 {
- t.Fatalf("会话映射射数量错误!")
- }
- if len(sessionManager.user2SessionMapping) != 1 {
- t.Fatalf("用户会话映射数量错误!")
- }
- session, ok := sessionManager.sessionMapping[sessionId]
- if !ok {
- t.Fatalf("没有找到会话!")
- }
- if session.user.UserId != userId {
- t.Fatalf("会话的用户标识不正确!")
- }
- session, ok = sessionManager.user2SessionMapping[userId]
- if !ok {
- t.Fatalf("没有找到与人员关联的会话!")
- }
- if session.sessionId != sessionId {
- t.Fatalf("会话的会话标识不正确!")
- }
- }
-
- func TestDefaultSessionManager_GetSession_EmptySessionId(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := ""
- userId := "userId"
- user := &global.User{UserId: userId}
- _, err := sessionManager.GetSession(sessionId, user)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("会话标识不能为空!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestDefaultSessionManager_GetSession_NullUser(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := "sessionId"
- _, err := sessionManager.GetSession(sessionId, nil)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("用户信息不能为空!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestDefaultSessionManager_GetSession_EmptyUserId(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := "sessionId"
- userId := ""
- user := &global.User{UserId: userId}
- _, err := sessionManager.GetSession(sessionId, user)
- if err == nil {
- t.Fatalf("意外的没有错误!")
- }
- if err.Error() != fmt.Sprintf("用户标识不能为空!") {
- t.Fatalf("意外错误:%s", err.Error())
- }
- }
-
- func TestDefaultSessionManager_ClearSession(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := "sessionId"
- userId := "userId"
- user := &global.User{UserId: userId}
- _, err := sessionManager.GetSession(sessionId, user)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- sessionManager.ClearSession(sessionId)
- if len(sessionManager.sessionMapping) != 0 {
- t.Fatalf("会话映射射数量错误!")
- }
- if len(sessionManager.user2SessionMapping) != 0 {
- t.Fatalf("用户会话映射数量错误!")
- }
- _, ok := sessionManager.user2SessionMapping[userId]
- if ok {
- t.Fatalf("清理用户会话映射失败!")
- }
- _, ok = sessionManager.sessionMapping[sessionId]
- if ok {
- t.Fatalf("清理会话映射失败!")
- }
- }
-
- func TestDefaultSessionManager_ClearSession_Repeated(t *testing.T) {
-
- informationManager := NewInformationManager()
- sessionManager := NewDefaultSessionManager(informationManager, transactionHandlerFactoryMock)
- sessionId := "sessionId"
- userId := "userId"
- user := &global.User{UserId: userId}
- _, err := sessionManager.GetSession(sessionId, user)
- if err != nil {
- t.Fatalf("意外错误:%s", err.Error())
- }
- sessionManager.ClearSession(sessionId)
- sessionManager.ClearSession(sessionId)
- if len(sessionManager.sessionMapping) != 0 {
- t.Fatalf("会话映射射数量错误!")
- }
- if len(sessionManager.user2SessionMapping) != 0 {
- t.Fatalf("用户会话映射数量错误!")
- }
- _, ok := sessionManager.user2SessionMapping[userId]
- if ok {
- t.Fatalf("清理用户会话映射失败!")
- }
- _, ok = sessionManager.sessionMapping[sessionId]
- if ok {
- t.Fatalf("清理会话映射失败!")
- }
- }
|