public async Task Browse_Async_method_Should_Work_Correctly() { const int ProductQuantity = 100; IProductRepository repository = new ProductRepository(DbContextHelper.GetInMemory()); List <Product> generatedProducts = new ProductGenerator().Generate(ProductQuantity).ToList(); foreach (var product in generatedProducts) { await repository.AddAsync(product); } Product firstProduct = generatedProducts.First(); var @params = new PageProductQuery() { Subcategory = firstProduct.Subcategory.Slug, Category = firstProduct.Subcategory.Category.Slug, PageNumber = 2, PageSize = 30 }; //ACT PagedList <Product> productsFromRepo = await repository.BrowseAsync(@params.PageNumber, @params.PageSize, @params.Category, @params.Subcategory); //ASSERT productsFromRepo.Should().HaveCount(@params.PageSize); productsFromRepo.PageSize.Should().Be(@params.PageSize); productsFromRepo.PageNumber.Should().Be(@params.PageNumber); productsFromRepo.TotalCount.Should().Be(ProductQuantity); }
public async Task <IActionResult> GetProducts([FromQuery] PageProductQuery query) { var product = await _mediator.Send(query); Response.AddPagination(product.PageNumber, product.PageSize, product.TotalCount, product.TotalPages); return(Ok(product.Products)); }