public void Can_Send_Pagination_View_Model() { // Организация (arrange) Mock <ITechRepository> mock = new Mock <ITechRepository>(); mock.Setup(m => m.Teches).Returns(new List <Tech> { new Tech { TechID = 1, Name = "Tech1" }, new Tech { TechID = 2, Name = "Tech2" }, new Tech { TechID = 3, Name = "Tech3" }, new Tech { TechID = 4, Name = "Tech4" }, new Tech { TechID = 5, Name = "Tech5" } }); TechController controller = new TechController(mock.Object); controller.pageSize = 3; // Act TechListViewModel result = (TechListViewModel)controller.List(null, 2).Model; // Assert Paging_Info pageInfo = result.Paging_Info; Assert.AreEqual(pageInfo.CurrentPage, 2); Assert.AreEqual(pageInfo.ItemsPerPage, 3); Assert.AreEqual(pageInfo.TotalItems, 5); Assert.AreEqual(pageInfo.TotalPages, 2); }
public ViewResult List(string category, int page = 1) { TechListViewModel model = new TechListViewModel { Teches = repository.Teches .Where(p => category == null || p.Category == category) .OrderBy(ta => ta.TechID) .Skip((page - 1) * pageSize) .Take(pageSize), Paging_Info = new Paging_Info { CurrentPage = page, ItemsPerPage = pageSize, TotalItems = category == null? repository.Teches.Count() : repository.Teches.Where(ta => ta.Category == category).Count() }, CurrentCategory = category }; return(View(model)); }
public void Can_in_Pages() { // Организация (arrange) Mock <ITechRepository> mock = new Mock <ITechRepository>(); mock.Setup(m => m.Teches).Returns(new List <Tech> { new Tech { TechID = 1, Name = "Tech1" }, new Tech { TechID = 2, Name = "Tech2" }, new Tech { TechID = 3, Name = "Tech3" }, new Tech { TechID = 4, Name = "Tech4" }, new Tech { TechID = 5, Name = "Tech5" } }); TechController controller = new TechController(mock.Object); controller.pageSize = 3; // Действие (act) TechListViewModel result = (TechListViewModel)controller.List(null, 2).Model; // Утверждение List <Tech> ta = result.Teches.ToList(); Assert.IsTrue(ta.Count == 2); Assert.AreEqual(ta[0].Name, "Tech4"); Assert.AreEqual(ta[1].Name, "Tech5"); }