Files
monorepo/LCU.API.Internal.DocumentIngestor/LCU.API.Internal.DocumentIngestorTests/Services/MicroApiServices/MemberPreferencesApiServiceTest.cs
T
2026-03-25 14:50:13 -05:00

103 lines
4.8 KiB
C#

using System;
using System.Threading.Tasks;
using Moq;
using NUnit.Framework;
using LCU.Library.Internal.Exceptions;
using LCU.API.Internal.DocumentIngestor.Services.MicroApiServices;
using LCU.API.Internal.DocumentIngestor.DataAccess;
using LCU.API.Internal.DocumentIngestor.Models.MemberPreferencesDtos;
namespace LCU.API.Internal.DocumentIngestorTests.Services.MicroApiServices;
public class MemberPreferencesApiServiceTest
{
private MemberPreferencesApiService _memberPreferencesApiService;
private Mock<IMemberPreferencesApiDao> _mockMemberPreferencesApiDao;
[SetUp]
public void Setup()
{
_mockMemberPreferencesApiDao = new Mock<IMemberPreferencesApiDao>();
_memberPreferencesApiService = new MemberPreferencesApiService(_mockMemberPreferencesApiDao.Object);
}
[Test]
public async Task GetMemberOptInAgreementInfoByUserId_Return()
{
var memberOptInAgreementInformation = new MemberOptInAgreementInformation();
_mockMemberPreferencesApiDao.Setup(x => x.GetMemberOptInAgreementInfoByUserId(It.IsAny<string>())).ReturnsAsync(memberOptInAgreementInformation);
var response = await _memberPreferencesApiService.GetMemberOptInAgreementInfoByUserId("11");
Assert.IsNotNull(response);
_mockMemberPreferencesApiDao.Verify(x => x.GetMemberOptInAgreementInfoByUserId(It.IsAny<string>()), Times.Once);
}
[Test]
public void GetMemberOptInAgreementInfoByUserId_Exception()
{
_mockMemberPreferencesApiDao.Setup(x => x.GetMemberOptInAgreementInfoByUserId(It.IsAny<string>())).ThrowsAsync(new Exception("Error"));
Assert.ThrowsAsync<ServiceException>(async () => await _memberPreferencesApiService.GetMemberOptInAgreementInfoByUserId("11"));
_mockMemberPreferencesApiDao.Verify(x => x.GetMemberOptInAgreementInfoByUserId(It.IsAny<string>()), Times.Once);
}
[Test]
public async Task GetMemberOptInSettingsByUserId_Return()
{
var memberOptInSettings = new MemberOptInInformation();
_mockMemberPreferencesApiDao.Setup(x => x.GetMemberOptInSettingsByUserId(It.IsAny<string>())).ReturnsAsync(memberOptInSettings);
var response = await _memberPreferencesApiService.GetMemberOptInSettingsByUserId("11");
Assert.IsNotNull(response);
_mockMemberPreferencesApiDao.Verify(x => x.GetMemberOptInSettingsByUserId(It.IsAny<string>()), Times.Once);
}
[Test]
public void GetMemberOptInSettingsByUserId_Exception()
{
_mockMemberPreferencesApiDao.Setup(x => x.GetMemberOptInSettingsByUserId(It.IsAny<string>())).ThrowsAsync(new Exception("Error"));
Assert.ThrowsAsync<ServiceException>(async () => await _memberPreferencesApiService.GetMemberOptInSettingsByUserId("11"));
_mockMemberPreferencesApiDao.Verify(x => x.GetMemberOptInSettingsByUserId(It.IsAny<string>()), Times.Once);
}
[Test]
public async Task EmailSuccessfulSend_Return()
{
var memberOptInSettings = new MemberOptInInformation();
_mockMemberPreferencesApiDao.Setup(x => x.EmailSuccessfulSend(It.IsAny<string>(), It.IsAny<string>()));
await _memberPreferencesApiService.EmailStatusSend("11", "[email protected]", true);
_mockMemberPreferencesApiDao.Verify(x => x.EmailSuccessfulSend(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_mockMemberPreferencesApiDao.Verify(x => x.EmailFailureSend(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
[Test]
public void EmailSuccessfulSend_Exception()
{
_mockMemberPreferencesApiDao.Setup(x => x.EmailSuccessfulSend(It.IsAny<string>(), It.IsAny<string>())).ThrowsAsync(new Exception("Error"));
Assert.ThrowsAsync<ServiceException>(async () => await _memberPreferencesApiService.EmailStatusSend("11", "[email protected]", true));
_mockMemberPreferencesApiDao.Verify(x => x.EmailSuccessfulSend(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_mockMemberPreferencesApiDao.Verify(x => x.EmailFailureSend(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
[Test]
public async Task EmailFailureSend_Return()
{
_mockMemberPreferencesApiDao.Setup(x => x.EmailFailureSend(It.IsAny<string>(), It.IsAny<string>()));
await _memberPreferencesApiService.EmailStatusSend("11", "[email protected]", false);
_mockMemberPreferencesApiDao.Verify(x => x.EmailFailureSend(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_mockMemberPreferencesApiDao.Verify(x => x.EmailSuccessfulSend(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
[Test]
public void EmailFailureSend_Exception()
{
_mockMemberPreferencesApiDao.Setup(x => x.EmailFailureSend(It.IsAny<string>(), It.IsAny<string>())).ThrowsAsync(new Exception("Error"));
Assert.ThrowsAsync<ServiceException>(async () => await _memberPreferencesApiService.EmailStatusSend("11", "[email protected]", false));
_mockMemberPreferencesApiDao.Verify(x => x.EmailFailureSend(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
_mockMemberPreferencesApiDao.Verify(x => x.EmailSuccessfulSend(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
}
}