public async Task PostBookAsync_Success_ReturnsCreatedAtActionResult()
        {
            var testBook = new BookGetDto()
            {
                Id = 1
            };

            _bookService.Setup(m => m.AddAsync(It.IsAny <BookPostDto>())).ReturnsAsync(testBook);

            var createdAtActionResult = await _booksController.PostBookAsync(It.IsAny <BookPostDto>());

            var result = (BookGetDto)((CreatedAtActionResult)createdAtActionResult.Result).Value;

            result.Should().BeOfType <BookGetDto>();
            createdAtActionResult.Result.Should().BeOfType <CreatedAtActionResult>();
            result.Should().BeEquivalentTo(testBook, options => options.Excluding(a => a.Id));
        }
        public async Task GetBookAsync_BookExists_Returns_OkObjectResultWithRequestedId()
        {
            var testBook = new BookGetDto()
            {
                Id = 1
            };

            _bookService.Setup(s => s.GetByIdAsync(It.IsAny <int>())).ReturnsAsync(testBook);

            var getBookResult = await _booksController.GetBook(It.IsAny <int>());

            var okResult = getBookResult.Result as OkObjectResult;

            okResult.Should().BeOfType <OkObjectResult>();
            var resultBook = okResult.Value as BookGetDto;

            resultBook.Id.Should().Be(testBook.Id);
        }