public async Task SearchNotificationsAsync_GetItems() { //Arrange var searchCriteria = AbstractTypeFactory <NotificationSearchCriteria> .TryCreateInstance(); searchCriteria.Take = 20; _notificationRegistrar.RegisterNotification <RegistrationEmailNotification>(); _notificationRegistrar.RegisterNotification <InvoiceEmailNotification>(); _notificationRegistrar.RegisterNotification <OrderSentEmailNotification>(); var notifications = new List <NotificationEntity> { new EmailNotificationEntity { Type = nameof(RegistrationEmailNotification), Kind = nameof(EmailNotification), Id = Guid.NewGuid().ToString(), IsActive = true } }; var mockNotifications = new Common.TestAsyncEnumerable <NotificationEntity>(notifications); _repositoryMock.Setup(r => r.Notifications).Returns(mockNotifications.AsQueryable()); var ids = notifications.Select(n => n.Id).ToArray(); _notificationServiceMock.Setup(ns => ns.GetByIdsAsync(ids, null)) .ReturnsAsync(notifications.Select(n => n.ToModel(AbstractTypeFactory <Notification> .TryCreateInstance(n.Type))).ToArray()); //Act var result = await _notificationSearchService.SearchNotificationsAsync(searchCriteria); //Assert Assert.NotEmpty(result.Results); Assert.Equal(1, result.Results.Count(r => r.IsActive)); //Assert.Equal(2, result.Results.Count(r => !r.IsActive)); }
public async Task SearchNotificationsAsync_GetOneItem() { //Arrange var searchCriteria = AbstractTypeFactory <NotificationSearchCriteria> .TryCreateInstance(); searchCriteria.Take = 4; var notifications = new List <NotificationEntity> { new EmailNotificationEntity { Type = nameof(RegistrationEmailNotification), Kind = nameof(EmailNotification), Id = Guid.NewGuid().ToString(), IsActive = true } }; searchCriteria.Take = 1; searchCriteria.Skip = 0; var mockNotifications = notifications.AsQueryable().BuildMock(); _repositoryMock.Setup(r => r.Notifications).Returns(mockNotifications.Object); var ids = notifications.Select(n => n.Id).ToArray(); _notificationServiceMock.Setup(ns => ns.GetByIdsAsync(ids, null)) .ReturnsAsync(notifications.Select(n => n.ToModel(AbstractTypeFactory <Notification> .TryCreateInstance(n.Type))).ToArray()); //Act var result = await _notificationSearchService.SearchNotificationsAsync(searchCriteria); //Assert Assert.NotEmpty(result.Results); Assert.Single(result.Results); Assert.Equal(1, result.Results.Count(r => r.IsActive.GetValueOrDefault())); }
public async Task SearchNotificationsAsync_GetNotifications() { //Arrange var searchCriteria = new NotificationSearchCriteria(); _notificationRegistrar.RegisterNotification <RegistrationEmailNotification>(); _notificationRegistrar.RegisterNotification <InvoiceEmailNotification>(); _notificationRegistrar.RegisterNotification <OrderSentEmailNotification>(); //Act var result = await _notificationSearchService.SearchNotificationsAsync(searchCriteria); //Assert Assert.NotEmpty(result.Results); }