public IActionResult AddCategoryToPost(AdminEditPostPublishedModel model, string newCategory) { model.CategoriesSelected.Add(new CategoryCheckBox { Category = newCategory, Selected = true }); return(View(nameof(EditPublishedPost), model)); }
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); }
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); }
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); }
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)); }