Beispiel #1
0
        public async Task <IPageResult <Book> > GetBooks(BookSpecification specification, int index, int pageSize)
        {
            Guard.Against.NegativeIndexPage(pageSize, index);
            var list = await _bookRepository.GetListAsync(specification);

            return(new PageResult <Book>(list, index, pageSize));
        }
 public async Task BookSpecification_IsSatisfied_WithNothing()
 {
     foreach (Book book in DataSeed.Books)
     {
         bool isSatisfied = new BookSpecification().IsSatisfiedBy(book);
         Assert.True(isSatisfied);
     }
 }
        public async Task BookSpecification_IsSatisfied_WithTitle(string title)
        {
            var satisfiedList = DataSeed.Books.Where(b => b.Title.Contains(title));

            foreach (Book book in satisfiedList)
            {
                bool isSatisfied = new BookSpecification(title).IsSatisfiedBy(book);
                Assert.True(isSatisfied);
            }
        }
Beispiel #4
0
        public async Task GetBooks_ShouldGet_CorrectBookList(BookSpecification specification, int index, int pageSize, int count)
        {
            IQueryable <Book> bookQueryable = DataSeed.Books.AsQueryable().Where(specification);

            _repository.Setup(s => s.GetListAsync(It.IsAny <Expression <Func <Book, bool> > >(), It.IsAny <Func <IQueryable <Book>, IOrderedQueryable <Book> > >(), It.IsAny <Expression <Func <Book, object> > >()))
            .ReturnsAsync(bookQueryable);
            IPageResult <Book> books = await _bookService.GetBooks(specification, index, pageSize);

            Assert.NotNull(books);
            Assert.Equal(count, books.Total);
            int pageCount = count - pageSize * index;

            Assert.Equal(pageCount >= pageSize ? pageSize : (pageCount > 0 ? count : 0), books.Data.Count());
        }
Beispiel #5
0
        public void TestBasicAndSpecification()
        {
            var bookList = DatabaseStub.Instance.Books;
            var bookName = "The Phoenix Project";

            var specification = new BookSpecification();

            specification
            .BooksSince(DateTime.Now.AddYears(-10))
            .TitleStartingWith(bookName);

            var expression = specification.Create();

            var result = bookList.FindAll(x => expression.SatisfiedBy(x));

            Assert.IsTrue(result.Count == 1);
            Assert.IsTrue(result.FirstOrDefault()?.Title.StartsWith(bookName) ?? false);
        }
Beispiel #6
0
        public void TestBasicOrSpecification()
        {
            var bookList = DatabaseStub.Instance.Books;
            var bookName = "The Goal";

            var specification = new BookSpecification();

            specification
            .BooksSince(DateTime.Now.AddYears(-10))
            .Or()
            .TitleStartingWith(bookName);

            var expression = specification.Create();

            var result = bookList.FindAll(x => expression.SatisfiedBy(x));

            Assert.IsTrue(result.Count > 1);
            Assert.IsTrue(result.Exists(x => x.Title.StartsWith(bookName)));
        }
        public async Task <IReadOnlyList <Books> > GetBooksAsync(List <long> booksId)
        {
            var bookSpec = new BookSpecification(booksId);

            return(await GetListAsync(bookSpec));
        }
        public async Task <IReadOnlyList <Books> > GetAllBooksAsync()
        {
            var bookSpec = new BookSpecification();

            return(await GetListAsync(bookSpec));
        }
        public async Task <Books> GetBookByIdAsync(long bookId)
        {
            var bookSpec = new BookSpecification(bookId);

            return(await GetItemByIdAsync(bookSpec));
        }