public void GivenRecipeDoesNotExist_ThrowsNotFoundException()
        {
            var query = new GetCommentsWithPaginationQuery
            {
                RecipeId   = int.MaxValue,
                PageNumber = 1,
                PageSize   = 10,
            };

            async Task Handler() => await SendAsync(query);

            Assert.ThrowsAsync(typeof(NotFoundException), Handler);
        }
        public async Task <IActionResult> List([FromRoute] int recipeId, [FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
        {
            var query = new GetCommentsWithPaginationQuery
            {
                RecipeId   = recipeId,
                PageNumber = pageNumber,
                PageSize   = pageSize,
            };

            var response = await Mediator.Send(query);

            return(Ok(response));
        }
        public async Task GivenRecipeHasNoComments_ReturnsEmptyList()
        {
            var query = new GetCommentsWithPaginationQuery
            {
                RecipeId   = 1,
                PageNumber = 1,
                PageSize   = 10,
            };

            var result = await SendAsync(query);

            Assert.IsEmpty(result.Items);
            Assert.False(result.HasNextPage);
            Assert.False(result.HasPreviousPage);
            Assert.AreEqual(0, result.TotalCount);
        }