Beispiel #1
0
        public void Can_Create_Categories()
        {
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1", Category = "Apple"
                },
                new Product {
                    ProductID = 2, Name = "P2", Category = "Apple"
                },
                new Product {
                    ProductID = 3, Name = "P3", Category = "Samsung"
                },
                new Product {
                    ProductID = 4, Name = "P4", Category = "Microsoft"
                }
            });
            NavController target = new NavController(mock.Object);

            //action
            SelectedCategoryModel result = (SelectedCategoryModel)target.Menu().Model;

            string[] categories = result.categories.ToArray();

            //assert
            Assert.IsTrue(categories.Length == 3);
            Assert.AreEqual(categories[0], "Apple");
            Assert.AreEqual(categories[1], "Microsoft");
            Assert.AreEqual(categories[2], "Samsung");
        }
Beispiel #2
0
        //панель категорий
        //метод работает с частичным представлением и выбирает все различающиеся категории
        //paramHorizontalLayout --при сжатии браузера из Layout
        public PartialViewResult Menu(string category = null)//, bool paramHorizontalLayout=false)
        {
            //1 вариант---> пример использования ViewBag для подсветки кнопки в MenuHorizontal
            ViewBag.SelectedCategory = category;

            //2 вариант---> подсветка через модель представления в Menu
            SelectedCategoryModel modelCategory = new SelectedCategoryModel()
            {
                selectedCategory = category,
                categories       = repository.Products
                                   .Select(x => x.Category)
                                   .Distinct()
                                   .OrderBy(y => y)
            };

            //string viewName = paramHorizontalLayout ? "MenuHorizontal" : "Menu";--->после создания FlexMenu не нужно

            //return PartialView(viewName, modelCategory);
            return(PartialView("FlexMenu", modelCategory));

            //относилось к 1 варианту---> пример использования ViewBag для подсветки кнопки
            //IEnumerable<string> categories = repository.Products
            //    .Select(x => x.Category)
            //    .Distinct()
            //    .OrderBy(y => y); //!--тут упорядочиваем уже по отобранным категориям, т.е. у=x.Category

            //return PartialView(categories);
        }
Beispiel #3
0
        //панель категорий
        //метод работает с частичным представлением и выбирает все различающиеся категории
        //paramHorizontalLayout --при сжатии браузера из Layout
        public PartialViewResult Menu(string category = null, bool horizontalLayout = false)//, bool paramHorizontalLayout=false)
        //1 вариант---> пример использования ViewBag для подсветки кнопки в MenuHorizontal
        {
            ViewBag.SelectedCategory = category;

            //2 вариант---> подсветка через модель представления в Menu
            SelectedCategoryModel modelCategory = new SelectedCategoryModel()
            {
                selectedCategory = category,
                categories       = repository.Products
                                   .Select(x => x.Category)
                                   .Distinct()
                                   .OrderBy(y => y)
            };

            //return PartialView(modelCategory);

            //string viewName = horizontalLayout ? "MenuHorizontal" : "Menu";
            //return PartialView(viewName, modelCategory);

            return(PartialView("FlexMenu", modelCategory));
        }
Beispiel #4
0
        public void Indicates_Selected_Category()
        {
            Mock <IProductRepository> mock = new Mock <IProductRepository>();

            mock.Setup(m => m.Products).Returns(new Product[] {
                new Product {
                    ProductID = 1, Name = "P1", Category = "Apple"
                },
                new Product {
                    ProductID = 2, Name = "P2", Category = "Microsoft"
                }
            });

            //arrange
            NavController target           = new NavController(mock.Object);
            string        categoryToSelect = "Microsoft";
            //action
            //string result = target.Menu(categoryToSelect).ViewBag.SelectedCategory;
            SelectedCategoryModel selCat = (SelectedCategoryModel)target.Menu(categoryToSelect).Model;
            string result = selCat.selectedCategory;

            //assert
            Assert.AreEqual(categoryToSelect, result);
        }