//удостоверяемся, что контроллер отправляет представлению правильную информацию о разбиении на страницы public void Can_Send_Pagination_View_Model() { // Организация (arrange) Mock <IPeugeotRepository> mock = new Mock <IPeugeotRepository>(); mock.Setup(m => m.Peugeot).Returns(new List <Peugeot> { new Peugeot { Id = 1, Name = "Игра1" }, new Peugeot { Id = 2, Name = "Игра2" }, new Peugeot { Id = 3, Name = "Игра3" }, new Peugeot { Id = 4, Name = "Игра4" }, new Peugeot { Id = 5, Name = "Игра5" } }); PeugeotController controller = new PeugeotController(mock.Object); controller.pageSize = 3; // Act PeugeotListViewModel result = (PeugeotListViewModel)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 * для снабжения представления сведениями о товарах, отображаемых на страницах, и информацией о разбиении на страницы*/ PeugeotListViewModel model = new PeugeotListViewModel { Peugeot = repository.Peugeot .OrderBy(game => game.Id) .Skip((page - 1) * pageSize) .Take(pageSize), PagingInfo = new PagingInfo { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = repository.Peugeot.Count() } }; return(View(model)); //Внесенные изменения обеспечивают передачу объекта SkodasSkodaViewModel представлению в качестве данных модели }
public void Can_Paginate() { // Организация (arrange) Mock <IPeugeotRepository> mock = new Mock <IPeugeotRepository>(); mock.Setup(m => m.Peugeot).Returns(new List <Peugeot> { new Peugeot { Id = 1, Name = "Игра1" }, new Peugeot { Id = 2, Name = "Игра2" }, new Peugeot { Id = 3, Name = "Игра3" }, new Peugeot { Id = 4, Name = "Игра4" }, new Peugeot { Id = 5, Name = "Игра5" } }); PeugeotController controller = new PeugeotController(mock.Object); controller.pageSize = 3; // Действие (act) // IEnumerable<Skoda> result = (IEnumerable<Skoda>)controller.List(2).Model; PeugeotListViewModel result = (PeugeotListViewModel)controller.List(2).Model; // Утверждение (assert) List <Peugeot> games = result.Peugeot.ToList(); Assert.IsTrue(games.Count == 2); Assert.AreEqual(games[0].Name, "Игра4"); Assert.AreEqual(games[1].Name, "Игра5"); }