using Diligent.WebAPI.Business.Services; using Diligent.WebAPI.Data.Entities; using FluentAssertions; using Microsoft.AspNetCore.Identity; using Moq; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tests { [TestFixture] public class CustomerServiceTest { private CustomerService service; [Test] public async Task DeleteNotification_WhenUserIsNull_ReturnsFalse() { // Arrange var userManagerMock = new Mock>(Mock.Of>(), null, null, null, null, null, null, null, null); userManagerMock.Setup(x => x.FindByIdAsync(It.IsAny())).ReturnsAsync((Customer)null); service = new CustomerService(userManagerMock.Object); // Act var result = await service.DeleteNotification("", ""); // Assert //Assert.IsFalse(result); result.Should().BeFalse(); } [Test] public async Task DeleteNotification_UserIsNotNullAndNotificationIsNull_ReturnsFalse() { // Arrange var userManagerMock = new Mock>(Mock.Of>(), null, null, null, null, null, null, null, null); var customer = new Customer { FirstName = "User", LastName = "Someone", Notifications = new List { new Notification { RoomId = "Room1", Count = 1 } } }; userManagerMock.Setup(x => x.FindByIdAsync(It.IsAny())).ReturnsAsync(customer); service = new CustomerService(userManagerMock.Object); // Act var result = await service.DeleteNotification("arg", "Room1"); // Assert result.Should().BeTrue(); } } }