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