Example #1
0
        public void GetAll_10_ReturnsValidTorrents()
        {
            // Arrange
            const int expectedCount = TorrentsCount;

            // Act
            var torrents = _torrentRepository.GetAll();

            // Assert
            Assert.NotNull(torrents);
            Assert.Equal(expectedCount, torrents.Count());
        }
Example #2
0
        public async Task <IPagedList <Torrent> > ListAsync(ITorrentFilter filter)
        {
            Guard.Against.OutOfRange(filter.Page, Constants.Filter.PageRangeFrom, Constants.Filter.PageRangeTo, Resources.Page_InvalidPageNumber);

            var message = string.Format(Resources.PageSize_InvalidPageSizeNumber, Constants.Filter.PageRangeFrom, Constants.Filter.PageRangeTo);

            Guard.Against.OutOfRange(filter.PageSize, Constants.Filter.PageRangeFrom, Constants.Filter.PageRangeTo, message);

            var query = _torrentRepository.GetAll(x => string.IsNullOrWhiteSpace(filter.Search) || x.Name.Contains(filter.Search));

            if (filter.CategoryId.HasValue)
            {
                Guard.Against.LessOne(filter.CategoryId.Value, Resources.Torrent_InvalidCategoryId_ErrorMessage);

                query = query.Where(x => x.Subcategory.CategoryId == filter.CategoryId.Value);
            }

            if (filter.SubcategoryId.HasValue)
            {
                Guard.Against.LessOne(filter.SubcategoryId.Value, Resources.Torrent_InvalidSubcategoryId_ErrorMessage);

                query = query.Where(x => x.SubcategoryId == filter.SubcategoryId.Value);
            }

            query = query.OrderBy(x => x.Id);

            var pagedList = await ApplyFilterAsync(query, filter);

            Guard.Against.NullNotFound(pagedList.Items, Resources.Torrent_NotFoundList_ErrorMessage);

            return(pagedList);
        }