public async Task DeleteAsyncBookTest_ValidBookCopyId_HappyPath()
        {
            //arrange
            _access.WithDeleteResult(true);

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

            //act
            var result = await _sut.DeleteAsync(BookCopyTestUtils.GenerateValidBookCopy().Id);

            //assert
            Assert.IsTrue(result);
            _access.Verify(m => m.DeleteWithIdAsync(It.IsAny <int>()), Times.Once);
        }
        public async Task DeleteAsyncBookTest_NullBookCopy_ExceptionalCase()
        {
            //arrange
            _access.WithDeleteResult(true);

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

            //act
            var result = await _sut.DeleteAsync(null);

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteWithIdAsync(It.IsAny <int>()), Times.Never);
        }
        public async Task DeleteAsyncIdTest_NegativeBookCopyId_ExceptionalCase()
        {
            //arrange
            const int invalidId = -10;

            _access.WithDeleteResult(true);

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

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

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteWithIdAsync(It.IsAny <int>()), Times.Never);
        }
        public async Task DeleteAsyncBookTest_NegativeBookCopyId_ExceptionalCase()
        {
            //arrange
            var book = BookCopyTestUtils.GenerateValidBookCopy();

            book.Id = -10;

            _access.WithDeleteResult(true);

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

            //act
            var result = await _sut.DeleteAsync(book);

            //assert
            Assert.IsFalse(result);
            _access.Verify(m => m.DeleteWithIdAsync(It.IsAny <int>()), Times.Never);
        }