Ejemplo n.º 1
0
        public void BooksControllerFilterByGenreShouldReturnBooksInGivenGenre()
        {
            var books = new List <Book>();

            Enumerable.Range(1, 8).ToList().ForEach(i => books.Add(new Book {
                Title = "Book " + i, Genre = "Fiction"
            }));
            var book1 = new Book {
                Title = "Book 9", Genre = "Poetry"
            };

            books.Add(book1);
            var book2 = new Book {
                Title = "Book 10", Genre = "Poetry"
            };

            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.Genre("Poetry");

            var filterInformation = (FilterInformation)view.Model;
            var actualBooks       = filterInformation.BookInformations.Select(bookInformation => bookInformation.Model).ToList();

            Assert.AreEqual(2, actualBooks.Count());
            Assert.AreEqual("Poetry", actualBooks.First().Genre);
            Assert.AreEqual("Poetry", actualBooks.Last().Genre);
            mockedRepo.Verify(repo => repo.Search <Book>(It.IsAny <Expression <Func <Book, bool> > >(), It.IsAny <int>(), It.IsAny <int>()), Times.Once());
            Assert.AreEqual(1, filterInformation.Genres.Count());
            Assert.AreEqual("Poetry", filterInformation.Genres.First());
        }
Ejemplo n.º 2
0
        public void BooksControllerFilterByGenreShouldReturnBooksInGivenGenre()
        {
            var books = new List<Book>();
            Enumerable.Range(1, 8).ToList().ForEach(i => books.Add(new Book { Title = "Book " + i, Genre = "Fiction" }));
            var book1 = new Book { Title = "Book 9", Genre = "Poetry" };
            books.Add(book1);
            var book2 = new Book { Title = "Book 10", Genre = "Poetry" };
            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.Genre("Poetry");

            var filterInformation = (FilterInformation)view.Model;
            var actualBooks = filterInformation.BookInformations.Select(bookInformation => bookInformation.Model).ToList();
            Assert.AreEqual(2, actualBooks.Count());
            Assert.AreEqual("Poetry", actualBooks.First().Genre);
            Assert.AreEqual("Poetry", actualBooks.Last().Genre);
            mockedRepo.Verify(repo => repo.Search<Book>(It.IsAny<Expression<Func<Book, bool>>>(), It.IsAny<int>(), It.IsAny<int>()), Times.Once());
            Assert.AreEqual(1, filterInformation.Genres.Count());
            Assert.AreEqual("Poetry", filterInformation.Genres.First());
        }