public async Task GetByIdAsync_NegativeBookCopyId_ExceptionalCase()
        {
            //arrange
            const int invalidId = -10;

            _access.WithGetByIdAsyncResult(BookCopyMapTestUtils.GenerateValidBookCopyMap() as IBookCopyMap);
            _mapper.WithUnmap(BookCopyTestUtils.GenerateValidBookCopy());

            _sut = new BookCopyRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetByIdAsync(invalidId);

            //assert
            Assert.IsNull(result);
            _access.Verify(m => m.GetByIdAsync(It.IsAny <int>()), Times.Never);
        }
        public async Task GetByIdAsync_NullBookCopyMap_ExceptionalCase()
        {
            //arrange
            var validId = BookCopyTestUtils.GenerateValidBookCopy().Id;

            _access.WithGetByIdAsyncResult(null);
            _mapper.WithUnmap(BookCopyTestUtils.GenerateValidBookCopy());

            _sut = new BookCopyRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetByIdAsync(validId);

            //assert
            Assert.IsNull(result);
            _access.Verify(m => m.GetByIdAsync(It.IsAny <int>()), Times.Never);
        }
        public async Task GetByIdAsync_ValidBookCopyId_HappyPath()
        {
            //arrange
            var validId = BookCopyTestUtils.GenerateValidBookCopy().Id;

            _access.WithGetByIdAsyncResult(BookCopyMapTestUtils.GenerateValidBookCopyMap() as IBookCopyMap);
            _mapper.WithUnmap(BookCopyTestUtils.GenerateValidBookCopy());

            _sut = new BookCopyRepository(_access.Object, _mapper.Object);

            //act
            var result = await _sut.GetByIdAsync(validId);

            //assert
            Assert.IsNotNull(result);
            _access.Verify(m => m.GetByIdAsync(It.IsAny <int>()), Times.Once);
        }