public async Task ListBooksModelWithTopBooks()
        {
            // Arrange
            var mock = new Mock <IBookService>();

            mock.Setup(service => service.GetTopBooks(4)).ReturnsAsync(RepositoryDB.GetIndexBooks());
            var controller = new HomeController(mock.Object);

            // Проверим модель, которая передается в контроллер
            var partialViewResult = await controller.topBooks() as PartialViewResult;

            Assert.IsAssignableFrom <List <IndexBook> >(partialViewResult.Model);
        }
        public void PartialViewAReturnResultWithTopBooks()
        {
            // Arrange
            var mock = new Mock <IBookService>();

            mock.Setup(service => service.GetTopBooks(4)).ReturnsAsync(RepositoryDB.GetIndexBooks());
            var controller = new HomeController(mock.Object);

            // Act
            var result = controller.topBooks();


            // Возвращаемый тип
            Assert.IsType <Task <IActionResult> >(result);
        }
        public async Task BooksModelCountsWithTopBooks(int count)
        {
            // Arrange
            var mock = new Mock <IBookService>();

            mock.Setup(service => service.GetTopBooks(count)).ReturnsAsync(RepositoryDB.GetIndexBooks(count));
            var controller = new HomeController(mock.Object);

            // Проверим модель, которая передается в контроллер
            var partialViewResult = await controller.topBooks(count) as PartialViewResult;

            var models = partialViewResult.Model as List <IndexBook>;


            Assert.Equal(models.Count, RepositoryDB.GetIndexBooks(count).Count);
        }
        public async void CheckCountElementsTransfetToNewBookPartial(int count)
        {
            // Arrange
            var bookServiceMock = new Mock <IBookService>();

            bookServiceMock.Setup(service => service.GetNewsBooks(count)).ReturnsAsync(RepositoryDB.GetIndexBooks(count));

            var controller = new HomeController(bookServiceMock.Object);

            // Получим представление
            var partialViewResult = await controller.newBooks(count) as PartialViewResult;

            // Получим модель, передаваемую в представление
            var models = partialViewResult.Model as IEnumerable <IndexBook>;

            Assert.Equal(models.Count(), RepositoryDB.GetIndexBooks(count).Count);
        }
        public async void CheckTransferTypesForNewBookPartialView()
        {
            // Arrange
            var bookServiceMock = new Mock <IBookService>();

            bookServiceMock.Setup(service => service.GetNewsBooks(4)).ReturnsAsync(RepositoryDB.GetIndexBooks(4));

            var controller = new HomeController(bookServiceMock.Object);

            // Получим представление
            var partialViewResult = await controller.newBooks(4) as PartialViewResult;

            // Получим модель, передаваемую в представление
            var model = partialViewResult.Model;

            // Assert
            Assert.IsAssignableFrom <IEnumerable <IndexBook> >(model);
        }
        public async Task TypeModelWithLastCommentBookAndCounts(int countBooks)
        {
            // Arrange
            var mock = new Mock <IBookService>();

            mock.Setup(service => service.GetLastCommentaries(countBooks)).ReturnsAsync(RepositoryDB.GetBookViewModel(countBooks));
            var controller = new HomeController(mock.Object);


            // Получаем результат представления
            var partialViewResult = await controller.LastCommentsBook(countBooks) as PartialViewResult;

            var models = partialViewResult.Model as IEnumerable <BookViewModel>;


            Assert.IsAssignableFrom <IEnumerable <BookViewModel> >(models);


            Assert.Equal(models.Count(), RepositoryDB.GetIndexBooks(countBooks).Count);
        }