v1.0.4.0
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
|
||||
<IsPackable>false</IsPackable>
|
||||
|
||||
<RootNamespace>Saxonite.Net.Core</RootNamespace>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
|
||||
<PackageReference Include="Moq" Version="4.16.1" />
|
||||
<PackageReference Include="MSTest.TestAdapter" Version="2.1.0" />
|
||||
<PackageReference Include="MSTest.TestFramework" Version="2.1.0" />
|
||||
<PackageReference Include="coverlet.collector" Version="1.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsCoreWeb\SacsCoreWeb.csproj" />
|
||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardBase\SacsStandardBase.csproj" />
|
||||
<ProjectReference Include="..\..\..\Common-VS\Workspace\SacsStandardDbas\SacsStandardDbas.csproj" />
|
||||
<ProjectReference Include="..\SaxoniteCoreWebOnline\SaxoniteCoreWebOnline.csproj" />
|
||||
<ProjectReference Include="..\SaxoniteCoreWeb\SaxoniteCoreWeb.csproj" />
|
||||
<ProjectReference Include="..\SaxoniteStandardBase\SaxoniteStandardBase.csproj" />
|
||||
<ProjectReference Include="..\SaxoniteStandardDbas\SaxoniteStandardDbas.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,55 @@
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Moq;
|
||||
using Saxonite.Net.Core.Web.Online.App;
|
||||
using Saxonite.Net.Standard.Base.App;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace Saxonite.Net.Core.UnitTests.Web.Online.App
|
||||
{
|
||||
//=======================================================================
|
||||
[TestClass]
|
||||
public class SaxApplication_Online_Tester
|
||||
{
|
||||
//-------------------------------------------------------------------
|
||||
// Application.
|
||||
private class SaxApplication_Online_Test : SaxApplication_Online
|
||||
{
|
||||
public SaxApplication_Online_Test(IConfiguration configuration, IWebHostEnvironment env) :
|
||||
base(configuration)
|
||||
{
|
||||
InitEnvironment(env);
|
||||
}
|
||||
}
|
||||
private static SaxApplication_Online_Test app;
|
||||
public static SaxApplication_Online App
|
||||
{
|
||||
get
|
||||
{
|
||||
if (app == null)
|
||||
{
|
||||
var mockConfiguration = new Mock<IConfiguration>();
|
||||
|
||||
var mockEnvironment = new Mock<IWebHostEnvironment>();
|
||||
mockEnvironment.Setup(m => m.EnvironmentName).Returns(Environments.Development);
|
||||
mockEnvironment.Setup(m => m.ContentRootPath).Returns(@"D:\Sarand\Projects\Users\AHoward\VS2019\Saxonite\Workspace\SaxoniteCoreWebOnline");
|
||||
|
||||
app = new SaxApplication_Online_Test(mockConfiguration.Object, mockEnvironment.Object);
|
||||
}
|
||||
return app;
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
// Internals - component managers etc.
|
||||
private static SaxInternals internals;
|
||||
public static SaxInternals Internals { get { if (internals == null) internals = new SaxInternals(App.SessionContext); return internals; } }
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
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);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------
|
||||
}
|
||||
//=======================================================================
|
||||
}
|
||||
Reference in New Issue
Block a user