using System.Threading.Tasks; using System; using Moq; using NUnit.Framework; using LCU.Library.Internal.Exceptions; using LCU.API.Internal.Document.Services; using LCU.API.Internal.DocumentLib.DataAccess; using LCU.API.Internal.NotificationsApiLib.Models; using System.Collections.Generic; namespace LCU.API.Internal.DocumentTest.Services; 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); } }