public async Task <List <PostDto> > Handle(SyndicationQuery request, CancellationToken cancellationToken) { var episodeIds = await _context.Episode.Include(e => e.Series).Include(e => e.Status) .Where(e => e.Series.GameId == _tenant.Id && e.Status.Name == StaticValues.Published) .Select(x => x.Id).ToListAsync(cancellationToken: cancellationToken).ConfigureAwait(true); var posts = await _context.EpisodeEntry.Include(e => e.EpisodeEntryStatus) .Include(e => e.EpisodeEntryType) .Include(e => e.EpisodeEntryPlayer) .Where(e => episodeIds.Contains(e.EpisodeId) && e.PublishedAt <= DateTime.UtcNow && e.EpisodeEntryStatus.Name == StaticValues.Published).OrderByDescending(e => e.Timeline) .ProjectTo <PostDto>(_mapper.ConfigurationProvider) .ToListAsync(cancellationToken).ConfigureAwait(true); return(posts); }
public async Task ShouldReturnObject() { var mockTenantAccessor = new Mock <ITenantAccessor <TenantDto> >(); mockTenantAccessor.Setup(x => x.Instance).Returns(new TenantDto() { Id = 1 }); var query = new SyndicationQuery(); var sut = new SyndicationQuery.SyndicationQueryHandler(_db, mockTenantAccessor.Object, _mapper); var result = await sut.Handle(query, CancellationToken.None); result.ShouldBeOfType <List <PostDto> >(); result.Count.ShouldBeGreaterThanOrEqualTo(1); }