Exemplo n.º 1
0
        //удостоверяемся, что контроллер отправляет представлению правильную информацию о разбиении на страницы
        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);
        }
Exemplo n.º 2
0
        // метод действия 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 представлению в качестве данных модели
        }
Exemplo n.º 3
0
        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");
        }