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