95 lines
3.9 KiB
C#
95 lines
3.9 KiB
C#
using Microsoft.ApplicationInsights.Extensibility.Implementation;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using Newtonsoft.Json;
|
|
using Sarand.BusinessMgr.Net.Core.Web.Controllers;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.App;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Bus;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Bus.Control;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
|
|
using Sarand.BusinessMgr.Net.Standard.Base.Mgr.Control;
|
|
using Sarand.BusinessMgr.Web.Control.App;
|
|
using Sarand.Net.Standard.Base.Bus;
|
|
using Sarand.Net.Standard.Base.Core;
|
|
using Sarand.Net.Standard.Base.Security;
|
|
using Sarand.Net.Standard.Base.Utils;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Sarand.BusinessMgr.Test.Web.Control.App
|
|
{
|
|
//=======================================================================
|
|
[TestClass]
|
|
public class SbmApplication_SessionData_Tester : SbmApplication_Tester_Base
|
|
{
|
|
//-------------------------------------------------------------------
|
|
// Data members.
|
|
|
|
//-------------------------------------------------------------------
|
|
// Construction.
|
|
public SbmApplication_SessionData_Tester()
|
|
{
|
|
}
|
|
|
|
//-------------------------------------------------------------------
|
|
[TestMethod]
|
|
public void Test_Application_SessionData_Serialization()
|
|
{
|
|
using (DisposableCollection<SacsDisposable> disposables = new DisposableCollection<SacsDisposable>())
|
|
{
|
|
// Internals.
|
|
SbmcAccountMgr accountMgr = Internals_Control.ControlAccountMgr;
|
|
Assert.IsNotNull(accountMgr);
|
|
|
|
// User account.
|
|
SbmcUserAccount userAccount = accountMgr.GetUserAccountByEmailAddress("andy@sarand.com");
|
|
disposables.Add(userAccount);
|
|
Assert.IsNotNull(userAccount);
|
|
|
|
// Session Context?
|
|
SbmSessionContext? sessionContext_Core = null;
|
|
|
|
// Populate User Session.
|
|
SbmSessionData_Control sessionData = new SbmSessionData_Control(sessionContext_Core, userAccount);
|
|
Assert.IsNotNull(sessionData);
|
|
Assert.IsTrue(!StringUtil.IsBlank(sessionData.Base64IV_ControlApp));
|
|
Assert.IsTrue(sessionData.SessionIdx >= 100000);
|
|
Assert.IsTrue(sessionData.DataIdx >= 1000000);
|
|
|
|
// Validate user session.
|
|
Assert.IsNotNull(sessionData.User);
|
|
|
|
// User details.
|
|
Assert.AreEqual(userAccount.Id, sessionData.User.UserAccountId);
|
|
Assert.AreEqual(userAccount.EmailAddress, sessionData.User.EmailAddress);
|
|
Assert.AreEqual(userAccount.FirstName, sessionData.User.FirstName);
|
|
Assert.AreEqual(userAccount.LastName, sessionData.User.LastName);
|
|
Assert.AreEqual(userAccount.GetDisplayName(), sessionData.User.DisplayName);
|
|
|
|
|
|
// Serialise data.
|
|
string sessionDataJson = JsonConvert.SerializeObject(sessionData);
|
|
Assert.IsNotNull(sessionDataJson);
|
|
|
|
// Deserialise data.
|
|
SbmSessionData_Control? sessionDataDeserialized = JsonConvert.DeserializeObject<SbmSessionData_Control>(sessionDataJson, SbmController_Web.SbmSessionDataJsonSerializerSettings);
|
|
Assert.IsNotNull(sessionDataDeserialized);
|
|
|
|
// Validate deserialised data.
|
|
Assert.IsTrue(!StringUtil.IsBlank(sessionDataDeserialized.Base64IV_ControlApp));
|
|
Assert.AreEqual(sessionData.Base64IV_ControlApp, sessionDataDeserialized.Base64IV_ControlApp);
|
|
Assert.AreEqual(sessionData.SessionIdx, sessionDataDeserialized.SessionIdx);
|
|
Assert.IsTrue(sessionDataDeserialized.DataIdx > sessionData.DataIdx);
|
|
|
|
// User details.
|
|
Assert.IsNotNull(sessionDataDeserialized.User);
|
|
Assert.AreEqual(userAccount.Id, sessionDataDeserialized.User.UserAccountId);
|
|
Assert.AreEqual(userAccount.EmailAddress, sessionDataDeserialized.User.EmailAddress);
|
|
Assert.AreEqual(userAccount.FirstName, sessionDataDeserialized.User.FirstName);
|
|
Assert.AreEqual(userAccount.LastName, sessionDataDeserialized.User.LastName);
|
|
Assert.AreEqual(userAccount.GetDisplayName(), sessionDataDeserialized.User.DisplayName);
|
|
}
|
|
}
|
|
}
|
|
//=======================================================================
|
|
}
|