//удостоверяемся, что контроллер отправляет представлению правильную информацию о разбиении на страницы
        public void Can_Send_Pagination_View_Model()
        {
            // Организация (arrange)
            Mock <IBMWRepository> mock = new Mock <IBMWRepository>();

            mock.Setup(m => m.BMWs).Returns(new List <BMW>
            {
                new BMW {
                    Id = 1, Name = "Игра1"
                },
                new BMW {
                    Id = 2, Name = "Игра2"
                },
                new BMW {
                    Id = 3, Name = "Игра3"
                },
                new BMW {
                    Id = 4, Name = "Игра4"
                },
                new BMW {
                    Id = 5, Name = "Игра5"
                }
            });
            BMWsController controller = new BMWsController(mock.Object);

            controller.pageSize = 3;

            // Act
            BMWsListViewModel result
                = (BMWsListViewModel)controller.List(2).Model;

            // Assert
            PagingInfo pageInfo = result.PagingInfo;

            Assert.AreEqual(pageInfo.CurrentPage, 2);
            Assert.AreEqual(pageInfo.ItemsPerPage, 3);
            Assert.AreEqual(pageInfo.TotalItems, 5);
            Assert.AreEqual(pageInfo.TotalPages, 2);
        }
        // метод действия List(), который создает представление
        public ViewResult List(int page = 1)
        {
            /*обновить метод действия Skoda() класса SkodasController так, чтобы он использовал класс SkodasSkodaViewModel
             * для снабжения представления сведениями о товарах, отображаемых на страницах, и информацией о разбиении на страницы*/

            BMWsListViewModel model = new BMWsListViewModel
            {
                BMWs = B.BMWs
                       .OrderBy(game => game.Id)
                       .Skip((page - 1) * pageSize)
                       .Take(pageSize),
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = pageSize,
                    TotalItems   = B.BMWs.Count()
                }
            };

            return(View(model));
            //Внесенные изменения обеспечивают передачу объекта SkodasSkodaViewModel представлению в качестве данных модели
        }
        public void Can_Paginate()
        { // Организация (arrange)
          // Организация (arrange)
            Mock <IBMWRepository> mock = new Mock <IBMWRepository>();

            mock.Setup(m => m.BMWs).Returns(new List <BMW>
            {
                new BMW {
                    Id = 1, Name = "Игра1"
                },
                new BMW {
                    Id = 2, Name = "Игра2"
                },
                new BMW {
                    Id = 3, Name = "Игра3"
                },
                new BMW {
                    Id = 4, Name = "Игра4"
                },
                new BMW {
                    Id = 5, Name = "Игра5"
                }
            });
            BMWsController controller = new BMWsController(mock.Object);

            controller.pageSize = 3;

            // Act
            BMWsListViewModel result
                = (BMWsListViewModel)controller.List(2).Model;

            // Утверждение (assert)
            List <BMW> games = result.BMWs.ToList();

            Assert.IsTrue(games.Count == 2);
            Assert.AreEqual(games[0].Name, "Игра4");
            Assert.AreEqual(games[1].Name, "Игра5");
        }