Backend/e-suite.API/eSuite.API.UnitTests/Controllers/InternalMessagingControllerUnitTests/InternalMessagingControllerTestBase.cs
2026-01-20 21:50:10 +00:00

51 lines
1.9 KiB
C#

using System.Security.Claims;
using e_suite.Messaging.Common;
using e_suite.UnitTestCore;
using eSuite.API.Controllers;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Moq;
namespace eSuite.API.UnitTests.Controllers.InternalMessagingControllerUnitTests;
public abstract class InternalMessagingControllerTestBase : TestBase
{
protected Mock<ISigmaImportMessageSender> _sigmaImportMessageSenderMock = null!;
protected Mock<IDatabaseMessageSender> _databaseMessageSenderMock = null!;
protected Mock<IEFlowSyncMessageSender> _eFlowSyncMessageSenderMock = null!;
protected InternalMessagingController _internalMessagingController = null!;
public override async Task Setup()
{
await base.Setup();
_sigmaImportMessageSenderMock = new Mock<ISigmaImportMessageSender>();
_databaseMessageSenderMock = new Mock<IDatabaseMessageSender>();
_eFlowSyncMessageSenderMock = new Mock<IEFlowSyncMessageSender>();
_internalMessagingController =
new InternalMessagingController(_sigmaImportMessageSenderMock.Object, _databaseMessageSenderMock.Object, _eFlowSyncMessageSenderMock.Object);
const long id = -1;
const string email = "email@mail.test";
const string displayName = "Testy McTester";
AddAuthorisedUserToController(id, email, displayName);
}
protected void AddAuthorisedUserToController(long id, string email, string displayName)
{
var user = new ClaimsPrincipal(new ClaimsIdentity(
[
new(ClaimTypes.PrimarySid, id.ToString()),
new(ClaimTypes.Email, email),
new(ClaimTypes.Name, displayName)
// other required and custom claims
], "TestAuthentication"));
_internalMessagingController.ControllerContext = new ControllerContext
{
HttpContext = new DefaultHttpContext { User = user }
};
}
}