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); } }
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()); }
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); }
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)); }