Пример #1
0
        public async Task AvailableBooksOnGet_WhenEntitiesExist_ReturnsViewResult()
        {
            //Arrange
            TestDbSeeder.Initialize(_db);
            TestDbSeeder.SeedBooks(_db);
            TestDbSeeder.SeedRentals(_db);

            //Act
            var result = await _controller.AvailableBooks();

            //Assert
            var books = await _db.Books.Include(b => b.Rentals).ToListAsync();

            Assert.NotNull(books);
            Assert.Equal(TestDbSeeder.Books.Length, books.Count);

            var rentals = await _db.Rentals.Include(r => r.Book).ToListAsync();

            Assert.NotNull(rentals);
            Assert.Equal(TestDbSeeder.Rentals.Length, books.Count);

            var availableBooks = books.Where(b => b.Status == Status.Available).ToList();

            Assert.NotNull(availableBooks);
            Assert.Equal(2, availableBooks.Count);

            var viewResult = Assert.IsType <ViewResult>(result);
            var model      = Assert.IsAssignableFrom <IEnumerable <BookViewModel> >(viewResult.Model);

            Assert.Equal(availableBooks.Count, model.Count());
        }