public void List_Includes_All_Products_When_Category_Is_Null()
        {
            // Подгтовка
            IProductsRepository repository = MockProductsRepository(
                new Product { Name = "Artemis", Category = "Greek" },
                new Product { Name = "Neptune", Category = "Roman" }
            );
            ProductsController controler = new ProductsController(repository);
            controler.PageSize = 10;

            // Действие
            var result = controler.List(null, 1);

            // Проверка 
            Assert.IsNotNull(result, "Didn't render view");
            var products = (IList<Product>)result.ViewData.Model;
            Assert.AreEqual(2, products.Count, "Got wrong number of items");
            Assert.AreEqual("Artemis", products[0].Name);
            Assert.AreEqual("Neptune", products[1].Name);
        }
 public void List_Presents_Correct_Page_Of_Products()
 {
     // Подготовка
     IProductsRepository repository = MockProductsRepository(
         new Product { Name="P1"}, new Product { Name = "P2" },
         new Product { Name = "P3" }, new Product { Name = "P4" },
         new Product { Name = "P5" });
     ProductsController controller = new ProductsController(repository);
     controller.PageSize = 3;
     // Действие
     var result = controller.List(null,2);
     // Утверждение
     Assert.IsNotNull(result, "Didn't render view");
     var products = result.ViewData.Model as List<Product>;
     Assert.AreEqual(2, products.Count, "Got wrong number of products.");
     Assert.AreEqual(2, (int)result.ViewData["CurrentPage"], "Wrong page number");
     Assert.AreEqual(2, (int)result.ViewData["TotalPages"], "Wrong page count");
     Assert.AreEqual("P4", products[0].Name);
     Assert.AreEqual("P5", products[1].Name);
 }
        public void List_Filters_By_Category_When_Requested() {
            // Подготовка
            IProductsRepository repository = MockProductsRepository(
                new Product { Name = "Snowball", Category = "Cats" },
                new Product { Name = "Rex", Category = "Dogs" },
                new Product { Name = "Catface", Category = "Cat" },
                new Product { Name = "Woofer", Category = "Dogs" },
                new Product { Name = "Chomper", Category = "Dogs" }
            );
            ProductsController controller = new ProductsController(repository);
            controller.PageSize = 10;

            // Действие
            var result = controller.List("Dogs", 1);

            // Проверка
            Assert.IsNotNull(result, "Didn't render view");
            var products = (IList<Product>)result.ViewData.Model;
            Assert.AreEqual("Rex", products[0].Name);
            Assert.AreEqual("Woofer", products[1].Name);
            Assert.AreEqual("Chomper", products[2].Name);
            Assert.AreEqual("Dogs", result.ViewData["currentCategory"]);
        }