using LCU.API.Internal.DocumentIngestor.DataAccess; using LCU.API.Internal.DocumentIngestor.Services.MicroApiServices; using LCU.Library.Internal.Exceptions; using LCU.Library.Internal.NotificationsModels.Models; using Moq; using NUnit.Framework; using System; using System.Collections.Generic; using System.Threading.Tasks; namespace LCU.API.Internal.DocumentIngestorTests.Services.MicroApiServices; public class NotificationApiServiceTest { private NotificationApiService _notificationApiService; private Mock _mockNotificationApiDao; [SetUp] public void Setup() { _mockNotificationApiDao = new Mock(); _notificationApiService = new NotificationApiService(_mockNotificationApiDao.Object); } [Test] public void SendEmailAsync_Exception() { _mockNotificationApiDao.Setup(x => x.SendEmailAsync(It.IsAny())) .ThrowsAsync(new Exception("Error")); var request = new EmailRequest() { Subject = "", Body = "", Recipient = new List(new string[] { "" }) }; Assert.ThrowsAsync(async () => await _notificationApiService.SendEmailAsync(request)); _mockNotificationApiDao.Verify(x => x.SendEmailAsync(It.IsAny()), Times.Once); } [Test] public async Task SendEmailAsync_Return() { _mockNotificationApiDao.Setup(x => x.SendEmailAsync(It.IsAny())); var request = new EmailRequest() { Subject = "", Body = "", Recipient = new List(new string[] { "" }) }; await _notificationApiService.SendEmailAsync(request); _mockNotificationApiDao.Verify(x => x.SendEmailAsync(It.IsAny()), Times.Once); } }