public void List_CategoryIsEmpty_ReturnsAllPiesCategory()
        {
            // Act
            var result = _sut.List("");

            // Assert
            Assert.IsAssignableFrom <ViewResult>(result);
            var viewModel = _sut.ViewData.Model as PiesListViewModel;

            Assert.AreEqual(viewModel.Pies.ToList(), _pies.OrderBy(p => p.PieId));
            Assert.AreEqual(PieController.AllPies, viewModel.CurrentCategory);
        }
        public void Pie_List_Check_Pies()
        {
            // Arrange

            var pie = new List <Pie>
            {
                new Pie {
                    PieId = 1, Name = "Strawberry Pie", Price = 15.95M, ShortDescription = "Lorem Ipsum"
                }
            };

            var pieRepo = new Mock <IPieRepository>();

            pieRepo.Setup(c => c.AllPies).Returns(pie);
            var categoryRepo = new Mock <ICategoryRepository>();

            var controller = new PieController(pieRepo.Object, categoryRepo.Object);
            // Act

            var result = controller.List("");

            // Assert
            //var viewResult = Assert.IsType<PiesListViewModel>(result.Model);
            var model = Assert.IsAssignableFrom <PiesListViewModel>(
                result.Model);

            //var model= result.Model as PiesListViewModel;

            var pieFromMock = model.Pies.FirstOrDefault();

            Assert.Single(model.Pies);
            Assert.Equal("Strawberry Pie", pieFromMock?.Name);
        }
        public void Pie_List_Check_Current_Category()
        {
            // Arrange

            var pieRepo = new Mock <IPieRepository>();

            pieRepo.Setup(c => c.AllPies).Returns(It.IsAny <List <Pie> >());
            var categoryRepo = new Mock <ICategoryRepository>();

            var category = new Category
            {
                CategoryId   = 1,
                CategoryName = "Seasonal pies",
                Description  = "Get in the mood for a seasonal pie"
            };

            var controller = new PieController(pieRepo.Object, categoryRepo.Object);
            // Act

            var result = controller.List(category.CategoryName);

            // Assert
            var viewResult = Assert.IsType <PiesListViewModel>(result.Model);
            var model      = Assert.IsAssignableFrom <PiesListViewModel>(
                viewResult);

            //var model= result.Model as PiesListViewModel;

            Assert.Equal("Cheese Cakes", model.CurrentCategory);
        }