Files
BusinessMgr-2019/SaBusMgrTest_Control/Web/Control/App/SbmSessionData_Control_Test.cs
T

91 lines
3.6 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.Security;
using Sarand.Net.Standard.Base.Utils;
using System;
using System.Collections.Generic;
namespace Sarand.BusinessMgr.Test.Web.Control.App
{
//=======================================================================
[TestClass]
public class SbmSessionData_Control_Test : SbmControlApp_Tester_Base
{
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
public SbmSessionData_Control_Test()
{
}
//-------------------------------------------------------------------
[TestMethod]
public void Test_SbmSessionData_Control_Serialization()
{
// Internals.
SbmcAccountMgr accountMgr = Internals_Control.ControlAccountMgr;
Assert.IsNotNull(accountMgr);
// User account.
SbmcUserAccount userAccount = accountMgr.GetUserAccountByEmailAddress("andy@sarand.com");
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 >= 1000);
Assert.IsTrue(sessionData.ItemIdx >= 1000);
// 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.AreEqual(sessionData.ItemIdx, sessionDataDeserialized.ItemIdx);
// 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);
}
}
//=======================================================================
}