Files
Saxonite/SaxoniteCoreUnitTestsOnline/UnitTests/Online/App/SaxSessionData_Tester.cs
T
2021-05-20 19:22:52 +01:00

94 lines
4.4 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
using Sarand.Net.Standard.Base.Bus;
using Saxonite.Net.Core.Web.Online.App;
using Saxonite.Net.Core.Web.Base.Controllers;
using Saxonite.Net.Standard.Base.App;
using Saxonite.Net.Standard.Base.Bus;
using Saxonite.Net.Standard.Base.Mgr;
using System;
using System.Collections.Generic;
using System.Text;
using Sarand.Net.Standard.Base.Helpers;
namespace Saxonite.Net.Core.UnitTests.Web.Online.App
{
//=======================================================================
[TestClass]
public class SaxSessionData_Tester
{
//-------------------------------------------------------------------
// Properties.
public static SaxApplication_Online App { get { return SaxApplication_Online_Tester.App; } }
public static SaxInternals Internals { get { return SaxApplication_Online_Tester.Internals; } }
//-------------------------------------------------------------------
[TestMethod]
public void Test_SmmSessionData_Serialization()
{
// User account.
SaxAccountMgr accountMgr = Internals.AccountMgr;
// User account.
SaxUserAccount userAccount = accountMgr.CreateUserAccount();
userAccount.Id = new SysId(45678);
userAccount.EmailAddress = "john.smith@acme.co.uk";
userAccount.FirstName = "John";
userAccount.LastName = "Smith";
// User Roles.
List<SaxUserRole> userRoles = new List<SaxUserRole>();
SaxUserRole userRole = accountMgr.CreateUserRole(userAccount.Id, Sax.UserRole.Journalist);
userRoles.Add(userRole);
// Create user session and verify user id.
SaxSessionData_Online sessionData = new SaxSessionData_Online(App.SessionContext, userAccount, userRoles);
Assert.AreEqual(SysId.ToInt(sessionData.User.UserAccountId), SysId.ToInt(sessionData.User.UserAccountId));
Assert.AreEqual(userAccount.FirstName, sessionData.User.FirstName);
Assert.AreEqual(userAccount.LastName, sessionData.User.LastName);
Assert.IsTrue(sessionData.ValidUserSession);
Assert.AreNotEqual("", sessionData.User.DisplayName);
// Filter properties.
SysId filterOrganisationId = new SysId(SacsRandomHelper.GetInt32(Int32.MaxValue));
sessionData.Filter.OrganisationId = filterOrganisationId;
SysId filterOrganisationIdMember = new SysId(SacsRandomHelper.GetInt32(Int32.MaxValue));
sessionData.Filter.OrganisationIdMember = filterOrganisationIdMember;
// Serialise session data using same method as base controller.
String sessionDataJson = JsonConvert.SerializeObject(sessionData);
Assert.AreNotEqual("", sessionDataJson);
// Deserialise session data using same method as base controller.
SaxSessionData_Online sessionDataDeserialized =
JsonConvert.DeserializeObject<SaxSessionData_Online>(
sessionDataJson,
new JsonSerializerSettings { ContractResolver = new SaxController_Base.SessionStorage.SaxSessionDataContractResolver() }
);
Assert.IsNotNull(sessionDataDeserialized);
// Validate deserialised values.
Assert.AreEqual(App.SessionContext.Index, sessionDataDeserialized.SessionContext.Index);
Assert.AreEqual(Sax.Application.Online, sessionDataDeserialized.SessionContext.Application);
Assert.AreEqual(SysId.ToInt(sessionDataDeserialized.User.UserAccountId), SysId.ToInt(sessionDataDeserialized.User.UserAccountId));
Assert.AreEqual(SysId.ToInt(sessionData.User.UserAccountId), SysId.ToInt(sessionDataDeserialized.User.UserAccountId));
Assert.AreEqual(sessionData.User.EmailAddress, sessionDataDeserialized.User.EmailAddress);
Assert.AreEqual(sessionData.User.FirstName, sessionDataDeserialized.User.FirstName);
Assert.AreEqual(sessionData.User.LastName, sessionDataDeserialized.User.LastName);
Assert.AreEqual(sessionData.User.DisplayName, sessionDataDeserialized.User.DisplayName);
// User roles.
Assert.AreEqual(userRoles.Count, sessionDataDeserialized.User.Roles.Count);
// Filter properties.
Assert.IsNotNull(sessionData.Filter.OrganisationId);
Assert.IsTrue(SysId.IsValid(sessionData.Filter.OrganisationId));
Assert.AreEqual(filterOrganisationId, sessionData.Filter.OrganisationId);
Assert.IsNotNull(sessionData.Filter.OrganisationIdMember);
Assert.IsTrue(SysId.IsValid(sessionData.Filter.OrganisationIdMember));
Assert.AreEqual(filterOrganisationIdMember, sessionData.Filter.OrganisationIdMember);
}
//-------------------------------------------------------------------
}
//=======================================================================
}