public void non_admin_category_subcategory_details_httppost()
        {
            //Arrange
            var controller = new CategoryController(new CategoryBLL(new CategoryDALStub()));

            //Act
            var result = (RedirectToRouteResult)controller.SubCatDetails(null);

            //Assert
            Assert.AreEqual("LogIn", result.RouteValues["Action"]);
            Assert.AreEqual("Main", result.RouteValues["Controller"]);
        }
        public void category_subcategories_details_httppost()
        {
            //Arrange
            TestControllerBuilder builder = new TestControllerBuilder();
            var controller = new CategoryController(new CategoryBLL(new CategoryDALStub()));
            builder.InitializeController(controller);
            builder.HttpContext.Session["loggedInUser"] = new Customer() { id = 1, admin = true };

            var scd = new SubCategoryDetail()
            {
                ID = 8,
                name = "Cappucino"
            };

            //Act
            var action = (JsonResult)controller.SubCatDetails(scd);
            var result = (bool)(new PrivateObject(action.Data, "success")).Target;

            //Assert
            Assert.IsTrue(result);
        }
        public void category_subcategories_details_httppost_modelstate_invalid()
        {
            //Arrange
            TestControllerBuilder builder = new TestControllerBuilder();
            var controller = new CategoryController(new CategoryBLL(new CategoryDALStub()));
            builder.InitializeController(controller);
            builder.HttpContext.Session["loggedInUser"] = new Customer() { id = 1, admin = true };
            controller.ViewData.ModelState.AddModelError("error", "feilmelding");
            var scd = new SubCategoryDetail()
            {
                ID = 8,
                name = "Cappucino"
            };

            //Act
            var action = (JsonResult)controller.SubCatDetails(scd);
            var success = (bool)(new PrivateObject(action.Data, "success")).Target;

            //Assert
            Assert.IsFalse(success);
        }
        public void category_subcategories_details_view()
        {
            //Arrange
            TestControllerBuilder builder = new TestControllerBuilder();
            var controller = new CategoryController(new CategoryBLL(new CategoryDALStub()));
            builder.InitializeController(controller);
            builder.HttpContext.Session["loggedInUser"] = new Customer() { id = 1, admin = true };

            SubCategory expected = new SubCategory()
            {
                ID = 4,
                name = "Mokka",
                catName = "Kaffe"
            }; 

            //Act
            var action = (ViewResult)controller.SubCatDetails(expected.ID);
            var result = (SubCategoryDetail)action.Model;

            //Assert
            Assert.AreEqual("", action.ViewName);
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.categoryList);  
        }