This commit is contained in:
Andy Howard
2024-11-19 09:47:00 +00:00
parent c5ee285e27
commit 8b872cc8f3
214 changed files with 7924 additions and 5519 deletions
@@ -9,60 +9,60 @@ using Sarand.Net.Standard.Base.Dbas;
namespace Sarand.BusinessMgr.Test.Web.Portal.App
{
//=======================================================================
public class SbmPortalApp_Tester_Base
{
//-------------------------------------------------------------------
// Application.
private class SbmApplication_Portal_Test : SbmApplication_Portal
{
public SbmApplication_Portal_Test(IConfiguration configuration, IWebHostEnvironment env) :
base(configuration)
{
InitEnvironment(env);
}
}
//=======================================================================
public class SbmPortalApp_Tester_Base
{
//-------------------------------------------------------------------
// Application.
private class SbmApplication_Portal_Test : SbmApplication_Portal
{
public SbmApplication_Portal_Test(IConfiguration configuration, IWebHostEnvironment env) :
base(configuration)
{
InitEnvironment(env);
}
}
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Data members.
//-------------------------------------------------------------------
// Construction.
protected SbmPortalApp_Tester_Base()
{
// Application.
Mock<IConfiguration> mockConfiguration = new Mock<IConfiguration>();
Mock<IWebHostEnvironment> mockEnvironment = new Mock<IWebHostEnvironment>();
mockEnvironment.Setup(m => m.EnvironmentName).Returns(Environments.Development);
mockEnvironment.Setup(m => m.ContentRootPath).Returns(@"D:\Sarand\Projects\Users\AHoward\VS2022\BusinessMgr\Workspace\SaBusinessMgrCoreWebPortal");
App = new SbmApplication_Portal_Test(mockConfiguration.Object, mockEnvironment.Object);
//-------------------------------------------------------------------
// Construction.
protected SbmPortalApp_Tester_Base()
{
// Application.
Mock<IConfiguration> mockConfiguration = new Mock<IConfiguration>();
Mock<IWebHostEnvironment> mockEnvironment = new Mock<IWebHostEnvironment>();
mockEnvironment.Setup(m => m.EnvironmentName).Returns(Environments.Development);
mockEnvironment.Setup(m => m.ContentRootPath).Returns(@"D:\Sarand\Projects\Users\AHoward\VS2022\BusinessMgr\Workspace\SaBusinessMgrCoreWebPortal");
App = new SbmApplication_Portal_Test(mockConfiguration.Object, mockEnvironment.Object);
// Session configuration.
SessionContextIdx = App.GetSessionContextIdxs()[0];
SessionContext = App.GetSessionContext(SessionContextIdx);
Internals = new SbmInternals(GetUserContext(SessionContext));
UserContext = GetUserContext(SessionContext);
}
// Session configuration.
SessionContextIdx = App.GetSessionContextIdxs()[0];
SessionContext = App.GetSessionContext(SessionContextIdx);
Internals = new SbmInternals(GetUserContext(SessionContext));
UserContext = GetUserContext(SessionContext);
}
//-------------------------------------------------------------------
// Properties.
protected ushort SessionContextIdx { get; }
protected SbmApplication_Portal App { get; }
protected SbmSessionContext SessionContext { get; }
protected ISacsDatabase BusMgrDatabase { get { return App.GetBusMgrDatabase(SessionContext); } }
protected SbmInternals Internals { get; }
protected SbmUserContext UserContext { get; }
//-------------------------------------------------------------------
// Properties.
protected ushort SessionContextIdx { get; }
protected SbmApplication_Portal App { get; }
protected SbmSessionContext SessionContext { get; }
protected ISacsDatabase BusMgrDatabase { get { return App.GetBusMgrDatabase(SessionContext); } }
protected SbmInternals Internals { get; }
protected SbmUserContext UserContext { get; }
//-------------------------------------------------------------------
// User Context.
public static SbmUserContext GetUserContext(SbmSessionContext sessionContext)
{
SbmUserContext userContext = new SbmUserContext_Web(sessionContext);
//-------------------------------------------------------------------
// User Context.
public static SbmUserContext GetUserContext(SbmSessionContext sessionContext)
{
SbmUserContext userContext = new SbmUserContext_Web(sessionContext);
return userContext;
}
return userContext;
}
//-------------------------------------------------------------------
}
//=======================================================================
//-------------------------------------------------------------------
}
//=======================================================================
}
@@ -3,6 +3,7 @@ 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.Consoles;
using Sarand.BusinessMgr.Net.Standard.Base.Mgr;
using Sarand.BusinessMgr.Web.Portal.App;
using Sarand.Net.Standard.Base.Bus;
@@ -35,9 +36,13 @@ namespace Sarand.BusinessMgr.Test.Web.Portal.App
// Internals.
SaSecurityConsole securityConsole = App.CreateSecurityConsole(UserContext);
Assert.IsNotNull(securityConsole);
securityConsole.RegisterSecurityRights();
SbmAccountMgr accountMgr = Internals.AccountMgr;
Assert.IsNotNull(accountMgr);
// Session Console.
SbmSessionConsole sessionConsole = SbmSessionConsole.CreateConsole(UserContext);
// Database context.
string dbIdentifier = "SBMDB4321";
@@ -45,6 +50,8 @@ namespace Sarand.BusinessMgr.Test.Web.Portal.App
SaSecurityItem securityItemUser = securityConsole.GetUserByEmail("andy@sarand.com");
Assert.IsNotNull(securityItemUser);
// Security profile.
// User account.
SbmAffiliate affiliateUser = accountMgr.GetAffiliateByUserId(securityItemUser.Id);
Assert.IsNotNull(affiliateUser);
@@ -71,6 +78,11 @@ namespace Sarand.BusinessMgr.Test.Web.Portal.App
Assert.AreEqual(securityItemUser.Id, sessionData.User.SecurityItemId);
Assert.AreEqual(securityItemUser.EmailAddress, sessionData.User.EmailAddress);
// Security profile.
sessionData.SecurityProfile_Core.RefreshProfile(sessionConsole, securityConsole, securityItemUser.Id, securityConsole.GetRegisteredRights());
Assert.IsTrue(sessionData.SecurityProfile_Core.UserCanCreateContacts());
Assert.IsTrue(sessionData.SecurityProfile_Core.UserCanViewFinancials());
// User details.
Assert.AreEqual(affiliateUser.Id, sessionData.User.AffiliateId);
Assert.AreEqual(affiliateUser.FirstName, sessionData.User.FirstName);
@@ -92,6 +104,7 @@ namespace Sarand.BusinessMgr.Test.Web.Portal.App
// Deserialise data.
SbmSessionData_Portal sessionDataDeserialized = JsonConvert.DeserializeObject<SbmSessionData_Portal>(sessionDataJson, SbmController_Web.SbmSessionDataJsonSerializerSettings);
Assert.IsNotNull(sessionDataDeserialized);
string sessionDataJsonDeserialized = JsonConvert.SerializeObject(sessionDataDeserialized);
// Validate deserialised data.
Assert.IsTrue(!StringUtil.IsBlank(sessionData.Base64IV_PortalApp));
@@ -108,6 +121,14 @@ namespace Sarand.BusinessMgr.Test.Web.Portal.App
Assert.AreEqual(securityItemUser.Id, sessionDataDeserialized.User.SecurityItemId);
Assert.AreEqual(securityItemUser.EmailAddress, sessionDataDeserialized.User.EmailAddress);
// Security profile.
sessionData.SecurityProfile_Core.RefreshProfile(sessionConsole, securityConsole, securityItemUser.Id, securityConsole.GetRegisteredRights());
Assert.IsNotNull(sessionDataDeserialized.SecurityProfile_Core);
Assert.AreEqual(sessionData.SecurityProfile_Core.UserCanCreateContacts(), sessionDataDeserialized.SecurityProfile_Core.UserCanCreateContacts());
Assert.IsTrue(sessionDataDeserialized.SecurityProfile_Core.UserCanCreateContacts());
Assert.AreEqual(sessionData.SecurityProfile_Core.UserCanViewFinancials(), sessionDataDeserialized.SecurityProfile_Core.UserCanViewFinancials());
Assert.IsTrue(sessionDataDeserialized.SecurityProfile_Core.UserCanViewFinancials());
// User details.
Assert.AreEqual(affiliateUser.Id, sessionDataDeserialized.User.AffiliateId);
Assert.AreEqual(affiliateUser.FirstName, sessionDataDeserialized.User.FirstName);