91 lines
3.4 KiB
C#
91 lines
3.4 KiB
C#
using NUnit.Framework;
|
|
using Newtonsoft.Json;
|
|
using Sarand.BusinessMgr.Net.Core.Web.Components;
|
|
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
|
|
{
|
|
[TestFixture]
|
|
public class SbmApplication_SessionData_Tester : SbmApplication_Tester_Base
|
|
{
|
|
|
|
// Construction.
|
|
|
|
// --- Construction ---
|
|
|
|
public SbmApplication_SessionData_Tester()
|
|
{
|
|
}
|
|
|
|
// --- Tests ---
|
|
|
|
[Test]
|
|
public void Test_Application_SessionData_Serialization()
|
|
{
|
|
using (DisposableCollection<ISacsDisposable> disposables = new DisposableCollection<ISacsDisposable>())
|
|
{
|
|
// Internals.
|
|
SbmcAccountMgr accountMgr = Internals_Control.ControlAccountMgr;
|
|
Assert.That(accountMgr, Is.Not.Null);
|
|
|
|
// User account.
|
|
SbmcUserAccount userAccount = accountMgr.GetUserAccountByEmailAddress("andy@sarand.com");
|
|
Assert.That(userAccount, Is.Not.Null);
|
|
|
|
// Session Context?
|
|
SbmSessionContext? sessionContext_Core = null;
|
|
|
|
// Populate User Session.
|
|
SbmSessionData_Control sessionData = new SbmSessionData_Control(sessionContext_Core, userAccount);
|
|
Assert.That(sessionData, Is.Not.Null);
|
|
Assert.That(sessionData.SessionIdx >= 100000, Is.True);
|
|
Assert.That(sessionData.DataIdx >= 1000000, Is.True);
|
|
|
|
// Validate user session.
|
|
Assert.That(sessionData.User, Is.Not.Null);
|
|
|
|
// User details.
|
|
Assert.That(sessionData.User.UserAccountId, Is.EqualTo(userAccount.Id));
|
|
Assert.That(sessionData.User.EmailAddress, Is.EqualTo(userAccount.EmailAddress));
|
|
Assert.That(sessionData.User.FirstName, Is.EqualTo(userAccount.FirstName));
|
|
Assert.That(sessionData.User.LastName, Is.EqualTo(userAccount.LastName));
|
|
Assert.That(sessionData.User.DisplayName, Is.EqualTo(userAccount.GetDisplayName()));
|
|
|
|
|
|
// Serialise data.
|
|
string sessionDataJson = JsonConvert.SerializeObject(sessionData, SbmController_Web.SessionDataJsonSerializerSettings);
|
|
Assert.That(sessionDataJson, Is.Not.Null);
|
|
|
|
// Deserialise data.
|
|
SbmSessionData_Control? sessionDataDeserialized = JsonConvert.DeserializeObject<SbmSessionData_Control>(sessionDataJson, SbmController_Web.SessionDataJsonDeserializerSettings);
|
|
Assert.That(sessionDataDeserialized, Is.Not.Null);
|
|
|
|
// Validate deserialised data.
|
|
Assert.That(sessionDataDeserialized.SessionIdx, Is.EqualTo(sessionData.SessionIdx));
|
|
Assert.That(sessionDataDeserialized.DataIdx > sessionData.DataIdx, Is.True);
|
|
|
|
// User details.
|
|
Assert.That(sessionDataDeserialized.User, Is.Not.Null);
|
|
Assert.That(sessionDataDeserialized.User.UserAccountId, Is.EqualTo(userAccount.Id));
|
|
Assert.That(sessionDataDeserialized.User.EmailAddress, Is.EqualTo(userAccount.EmailAddress));
|
|
Assert.That(sessionDataDeserialized.User.FirstName, Is.EqualTo(userAccount.FirstName));
|
|
Assert.That(sessionDataDeserialized.User.LastName, Is.EqualTo(userAccount.LastName));
|
|
Assert.That(sessionDataDeserialized.User.DisplayName, Is.EqualTo(userAccount.GetDisplayName()));
|
|
}
|
|
}
|
|
|
|
// --- The End ---
|
|
}
|
|
}
|