public IActionResult Create(PublishArticleFormViewModel model) { var userId = this.userManager.GetUserId(this.User); if (userId == null) { TempData.AddErrorMessage("The author does not exist."); return(View()); } var sanitizedContent = this.htmlService.Sanitize(model.Content); try { this.articleService.Create(model.Title, sanitizedContent, userId); } catch (InvalidOperationException ex) { return(BadRequest(ex.Message)); } catch (Exception ex) { return(BadRequest(ex.Message)); } TempData.AddSuccessMessage("Successfully published."); return(RedirectToAction(nameof(Index))); }
public void CreateArticlesViewShouldPassed() { // Arrange var articleService = new Mock <IArticleService>().Object; var htmlService = new Mock <IHtmlService>().Object; var userManager = this.GetUserManagerMock().Object; string successMsg = null; var tempData = new Mock <ITempDataDictionary>(); tempData.SetupSet(t => t[TempDataSuccessMessageKey] = It.IsAny <string>()) .Callback((string key, object message) => successMsg = message as string); // mock indexer var controller = new ArticlesController(articleService, userManager, htmlService) { TempData = tempData.Object }; var publishArticleFormViewModel = new PublishArticleFormViewModel() { Title = ArticleTitle, Content = ArticleContent }; // Act var resultCreateGet = controller.Create() as ViewResult; var resultCreatePost = controller.Create(publishArticleFormViewModel); // Assert resultCreateGet .Should() .NotBeNull(); resultCreatePost.Should().BeOfType <RedirectToActionResult>(); resultCreatePost.As <RedirectToActionResult>().ActionName.Should().Be(nameof(ArticlesController.Index)); successMsg .Should() .Be(SuccessPublishedArticle); }