public void BooksControllerFilterByAgeRangeShouldReturnBooksInGivenAgeRange() { var books = new List <Book>(); Enumerable.Range(1, 8).ToList().ForEach(i => books.Add(new Book { Title = "Book " + i, AgeRange = "3-6" })); var book1 = new Book { Title = "Book 9", AgeRange = "0-2" }; books.Add(book1); var book2 = new Book { Title = "Book 10", AgeRange = "0-2" }; books.Add(book2); var mockedRepo = new Mock <Repository>(); var expectedBooks = new List <Book> { book1, book2 }; mockedRepo.Setup(repo => repo.Search <Book>(It.IsAny <Expression <Func <Book, bool> > >(), It.IsAny <int>(), It.IsAny <int>())).Returns(expectedBooks); var booksController = new BooksController(mockedRepo.Object); var view = (ViewResult)booksController.AgeRange("0-2"); var filterInformation = (FilterInformation)view.Model; var actualBooks = filterInformation.BookInformations.Select(bookInformation => bookInformation.Model).ToList(); Assert.AreEqual(2, actualBooks.Count()); Assert.AreEqual("0-2", actualBooks.First().AgeRange); Assert.AreEqual("0-2", actualBooks.Last().AgeRange); mockedRepo.Verify(repo => repo.Search <Book>(It.IsAny <Expression <Func <Book, bool> > >(), It.IsAny <int>(), It.IsAny <int>()), Times.Once()); Assert.AreEqual(1, filterInformation.AgeRanges.Count()); Assert.AreEqual("0-2", filterInformation.AgeRanges.First()); }
public void BooksControllerFilterByAgeRangeShouldReturnBooksInGivenAgeRange() { var books = new List<Book>(); Enumerable.Range(1, 8).ToList().ForEach(i => books.Add(new Book { Title = "Book " + i, AgeRange = "3-6" })); var book1 = new Book { Title = "Book 9", AgeRange = "0-2" }; books.Add(book1); var book2 = new Book { Title = "Book 10", AgeRange = "0-2" }; books.Add(book2); var mockedRepo = new Mock<Repository>(); var expectedBooks = new List<Book> { book1, book2 }; mockedRepo.Setup(repo => repo.Search<Book>(It.IsAny<Expression<Func<Book, bool>>>(),It.IsAny<int>(), It.IsAny<int>())).Returns(expectedBooks); var booksController = new BooksController(mockedRepo.Object); var view = (ViewResult)booksController.AgeRange("0-2"); var filterInformation = (FilterInformation)view.Model; var actualBooks = filterInformation.BookInformations.Select(bookInformation => bookInformation.Model).ToList(); Assert.AreEqual(2, actualBooks.Count()); Assert.AreEqual("0-2", actualBooks.First().AgeRange); Assert.AreEqual("0-2", actualBooks.Last().AgeRange); mockedRepo.Verify(repo => repo.Search<Book>(It.IsAny<Expression<Func<Book, bool>>>(), It.IsAny<int>(), It.IsAny<int>()), Times.Once()); Assert.AreEqual(1, filterInformation.AgeRanges.Count()); Assert.AreEqual("0-2", filterInformation.AgeRanges.First()); }