public async Task GetAllBooksAsync_ReturnsAllBooksAsyncTest()
        {
            //--Arrange
            var mockSet         = new Mock <DbSet <BookModel> >();
            var dataAsQueryable = Data.AsQueryable();

            mockSet.As <IDbAsyncEnumerable <BookModel> >()
            .Setup(m => m.GetAsyncEnumerator())
            .Returns(new TestDbAsyncEnumerator <BookModel>(dataAsQueryable.GetEnumerator()));

            mockSet.As <IQueryable <BookModel> >()
            .Setup(m => m.Provider)
            .Returns(new TestDbAsyncQueryProvider <BookModel>(dataAsQueryable.Provider));

            mockSet.As <IQueryable <BookModel> >().Setup(m => m.Expression).Returns(dataAsQueryable.Expression);
            mockSet.As <IQueryable <BookModel> >().Setup(m => m.ElementType).Returns(dataAsQueryable.ElementType);
            mockSet.As <IQueryable <BookModel> >().Setup(m => m.GetEnumerator()).Returns(dataAsQueryable.GetEnumerator());

            var mockContext = new Mock <BookContext>();

            mockContext.Setup(c => c.Books).Returns(mockSet.Object);

            //--Act
            var library = new BookLibraryDb(mockContext.Object);
            var books   = await library.GetAllBooksAsync();

            //--Assert
            Assert.AreEqual(2, books.Count);
            Assert.AreEqual("J.R.R Tolkien", books[0].Author);
            Assert.AreEqual("Brandon Sanderson", books[1].Author);
        }