public ViewResult List(string modelCategory, int page = 1) { var model = new IPhoneListViewModel { Phones = _repo.Get(p => modelCategory == null || p.Model == modelCategory) .Skip((page - 1) * pageSize) .Take(pageSize).ToList(), Pagination = new Pagination { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = _repo.Count }, CurrentModel = modelCategory }; return(View(model)); }
public void Can_Send_Pagination_View_Model() { // Организация (arrange) Mock <IPhoneRepository> mock = new Mock <IPhoneRepository>(); mock.Setup(m => m.Get()).Returns(new List <IPhone> { new IPhone { Model = "IPhone 11" }, new IPhone { Model = "IPhone 12" }, new IPhone { Model = "IPhone 13" }, new IPhone { Model = "IPhone 14" }, new IPhone { Model = "IPhone 15" } }); PhoneController controller = new PhoneController(mock.Object); controller.pageSize = 3; // Act IPhoneListViewModel result = (IPhoneListViewModel)controller.List(2).Model; // Assert Pagination pagination = result.Pagination; Assert.AreEqual(pagination.CurrentPage, 2); Assert.AreEqual(pagination.ItemsPerPage, 3); Assert.AreEqual(pagination.TotalItems, 5); Assert.AreEqual(pagination.TotalPages, 2); }