public void ReaderService_GetReadersThatDontReturnBooks_ReaderModels()
        {
            //arrange
            var expected = GetTestReaderModels().ToList();

            expected.RemoveAt(expected.Count - 1);
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(m => m.ReaderRepository.GetAllWithDetails())
            .Returns(GetTestReaderEntities().AsQueryable());
            mockUnitOfWork
            .Setup(m => m.HistoryRepository.FindAll())
            .Returns(GetTestHistoryEntities().AsQueryable());
            mockUnitOfWork
            .Setup(m => m.CardRepository.FindAll())
            .Returns(GetTestCardEntities().AsQueryable());
            var readerService = new ReaderService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile());

            //act
            var actual = readerService.GetReadersThatDontReturnBooks().ToList();

            //assert
            Assert.IsInstanceOf <IEnumerable <ReaderModel> >(actual);
            Assert.AreEqual(expected.Count, actual.Count);
            for (int i = 0; i < expected.Count; i++)
            {
                var expectedReaderModel = expected[i];
                var actualReaderModel   = actual[i];
                Assert.IsTrue(_readerModelComparer.Equals(expectedReaderModel, actualReaderModel));
            }
        }