package container
|
|
|
|
import (
|
|
"LAPP_LF_MOM_BACKEND/web/models"
|
|
"fmt"
|
|
"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 := &models.Usertab{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 := &models.Usertab{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 := &models.Usertab{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 := &models.Usertab{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 := &models.Usertab{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 := &models.Usertab{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("清理会话映射失败!")
|
|
}
|
|
}
|