Example #1
0
        public async Task <NotificationSetResponse> ListAsync(GetNotificationsRequest request)
        {
            Ensure.That(request, nameof(request)).IsNotNull();

            var set = await _store.ListAsync(request.UserId, request.PageSize, request.Options);

            var notificationResponses = set.Select(PopulateNotificationResponse).ToList();

            var result = new NotificationSetResponse
            {
                ItemsCount = notificationResponses.Count,
                Results    = notificationResponses
            };

            return(result);
        }
Example #2
0
        public async Task ListTest(int pageSize, string startTime, string endTime)
        {
            var expectedStartTime = startTime == null ? (DateTimeOffset?)null: DateTimeOffset.Parse(startTime, CultureInfo.InvariantCulture);
            var expectedEndTime   = endTime == null ? (DateTimeOffset?)null : DateTimeOffset.Parse(endTime, CultureInfo.InvariantCulture);
            var service           = new Mock <INotificationHistoryService>();
            var response          = new NotificationSetResponse
            {
                Results = new List <NotificationResponse>
                {
                    new NotificationResponse(NotificationEvent.ArticleCreated)
                    {
                        OwnerUserId = UserId
                    },
                    new NotificationResponse(NotificationEvent.CommentLiked)
                    {
                        OwnerUserId = UserId
                    }
                },
                ItemsCount = 2
            };

            GetNotificationsRequest req = null;

            service.Setup(x => x.ListAsync(It.IsAny <GetNotificationsRequest>()))
            .Callback <GetNotificationsRequest>(request => req = request)
            .ReturnsAsync(response)
            .Verifiable();

            var controller = new NotificationHistoryController(_logger, service.Object).WithUser();
            var result     = await controller.GetNotificationsAsync(pageSize, startTime, endTime);

            service.Verify();
            Assert.NotNull(req);
            Assert.Equal(UserId, req.UserId);
            Assert.Equal(pageSize, req.PageSize);
            Assert.Equal(expectedEndTime, req.Options.EndTime);
            Assert.Equal(expectedStartTime, req.Options.StartTime);

            var res = Assert.IsType <OkObjectResult>(result);

            Assert.IsType <NotificationSetResponse>(res.Value);
            Assert.Equal(response, res.Value);
        }