Beispiel #1
0
        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()));
        }
Beispiel #3
0
        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);
        }