public async Task GetProductsPagedSuccessTest() { // Arrange var productList = new List <ProductDto> { new ProductDto(), new ProductDto(), new ProductDto(), new ProductDto(), new ProductDto(), new ProductDto() }; var responseList = new GenericCollectionResponse <IList <ProductDto> >() { Result = productList, TotalRecords = 6 }; _productServiceMock.Setup(x => x.GetPaged(It.IsAny <ProductPagedDto>())).Returns(async() => await Task.FromResult(responseList)); var controller = new ProductController(_loggerMock.Object, _mapperMock.Object, _productServiceMock.Object); // Act var response = await controller.GetProductsPaged(new GetProductsPagedRequest()); // Assert response.Result.Should().NotBeNull(); response.GetType().Should().Be(typeof(ApiResponse)); var result = response.Result as GenericCollectionResponse <IList <ProductDto> >; result.Result.Should().NotBeNull().And.HaveCount(6); result.TotalRecords.Should().Be(6); }
public async Task <GenericCollectionResponse <IList <ProductDto> > > GetPaged(ProductPagedDto dto) { var response = new GenericCollectionResponse <IList <ProductDto> >(); Func <IQueryable <Product>, IOrderedQueryable <Product> > order = product => product.OrderBy(x => x.Name); if (!string.IsNullOrEmpty(dto.SortParameter)) { order = GetProductOrder(dto.SortParameter, dto.SortOrder); } var filter = GetProductFilter(dto); var totalRecords = await _unitOfWork.ProductRepository.GetCountAsync(filter); response.TotalRecords = totalRecords; var products = await _unitOfWork.ProductRepository.GetAsync(filter, order, "Categories,Size", dto.StartRowIndex, dto.MaximumRows); var result = _mapper.Map <IList <Product>, IList <ProductDto> >(products.ToList()); response.Result = result; return(await Task.FromResult(response)); }