Exemple #1
0
 public IActionResult AddCategoryToPost(AdminEditPostPublishedModel model, string newCategory)
 {
     model.CategoriesSelected.Add(new CategoryCheckBox
     {
         Category = newCategory,
         Selected = true
     });
     return(View(nameof(EditPublishedPost), model));
 }
Exemple #2
0
 public IActionResult EditPublishedPost(AdminEditPostPublishedModel model)
 {
     if (ModelState.IsValid &&
         blogRepository.SavePublishedPost(model.Post))
     {
         TempData["message"] = "Blog Post successfully saved to the database";
         return(RedirectToAction("Home"));
     }
     else
     {
         TempData["message"] = "Your changes could not be saved";
         return(View(model));
     }
 }
        public void UnPublishPost_ValidState_CallsUnpublishRepo()
        {
            var mockRepo   = Substitute.For <IBlogPostRepository>();
            var controller = new AdminController(mockRepo);

            controller.TempData = Substitute.For <ITempDataDictionary>();

            var post  = ValidPostFactory();
            var model = new AdminEditPostPublishedModel(mockRepo)
            {
                Post = post
            };
            var result = controller.UnPublishPost(model);

            mockRepo.Received().UnPublishPostToDraft(post);
        }
Exemple #4
0
        public IActionResult UnPublishPost(AdminEditPostPublishedModel model)
        {
            var post = model.Post;

            if (ModelState.IsValid)
            {
                blogRepository.UnPublishPostToDraft(post);
                TempData["message"] = "The selected post was successfully moved to drafts";
                return(RedirectToAction("Home"));
            }
            else
            {
                TempData["message"] = "Your request could not be completed";
                return(View(nameof(EditPublishedPost), model));
            }
        }
        public void EditPublishedPost_HasNonExistentTitle_SavesInRepo()
        {
            var mockRepo   = Substitute.For <IBlogPostRepository>();
            var controller = new AdminController(mockRepo);

            controller.TempData = Substitute.For <ITempDataDictionary>();

            var post  = ValidPostFactory();
            var model = new AdminEditPostPublishedModel(mockRepo)
            {
                Post = post
            };

            var result = controller.EditPublishedPost(model);

            mockRepo.Received().SavePublishedPost(post);
        }
        public void UnPublishPost_InvalidState_DoesNotCallUnpublish()
        {
            var mockRepo   = Substitute.For <IBlogPostRepository>();
            var controller = new AdminController(mockRepo);

            controller.TempData = Substitute.For <ITempDataDictionary>();

            var post  = InValidPostFactory();
            var model = new AdminEditPostPublishedModel(mockRepo)
            {
                Post = post
            };

            controller.ModelState.AddModelError("", "error");
            var result = controller.UnPublishPost(model);

            mockRepo.DidNotReceive().UnPublishPostToDraft(post);
        }
        public void EditPublishedPost_EmptyTitle_DoesNotSaveInRepo()
        {
            var mockRepo   = Substitute.For <IBlogPostRepository>();
            var controller = new AdminController(mockRepo);

            controller.TempData = Substitute.For <ITempDataDictionary>();

            var post  = InValidPostFactory();
            var model = new AdminEditPostPublishedModel(mockRepo)
            {
                Post = post
            };

            controller.ModelState.AddModelError("", "error");

            var result = controller.EditPublishedPost(model);

            mockRepo.DidNotReceive().SavePublishedPost(post);
        }
Exemple #8
0
        public void GetPost_FillsSelectedCats()
        {
            List <CategoryCheckBox> boxes = new List <CategoryCheckBox>();

            boxes.Add(new CategoryCheckBox {
                Category = "Cat1", Selected = true
            });
            boxes.Add(new CategoryCheckBox {
                Category = "Cat2", Selected = true
            });
            boxes.Add(new CategoryCheckBox {
                Category = "Cat3", Selected = false
            });
            boxes.Add(new CategoryCheckBox {
                Category = "Cat4", Selected = true
            });

            var mockRepo = Substitute.For <IBlogPostRepository>();

            mockRepo.GetAllCategoriesUsed(false)
            .Returns(new List <string> {
                "Cat1", "Cat2", "Cat3", "Cat4"
            });

            var model = new AdminEditPostPublishedModel(mockRepo);

            model.Post = new BlogPostPublished
            {
                PageTitle = "Title"
            };
            model.Post.CategoriesDbCollection = "Cat1,Cat3";
            model.CategoriesSelected          = boxes;

            Assert.Contains("Cat2", model.Post.Categories);
            Assert.Contains("Cat4", model.Post.Categories);
            Assert.Contains("Cat1", model.Post.Categories);

            Assert.IsFalse(model.Post.Categories.Contains("Cat3"));
            Assert.AreEqual(model.Post.Categories.Count, 3);
        }
Exemple #9
0
        public ViewResult EditPublishedPost(int publishedPostId)
        {
            var post = blogRepository.GetPostById(publishedPostId);
            AdminEditPostPublishedModel model;

            if (post == null)
            {
                model = new AdminEditPostPublishedModel(blogRepository)
                {
                    Post = new BlogPostPublished
                    {
                        DateTimePublished = DateTime.Now,
                    }
                };
            }
            else
            {
                model = new AdminEditPostPublishedModel(blogRepository)
                {
                    Post = post
                };
            }
            return(View(model));
        }