public async Task <IActionResult> Add(ArticleCreationBindingModel model) { var article = await this.articlesService.AddArticleAsync(model); SetSuccesfullMessage(AddedSuccessfully, ArticleConst); return(this.RedirectToAction("Details", new { id = article.Id, slug = article.Slug })); }
public async Task <Article> AddArticleAsync(ArticleCreationBindingModel model) { Validator.EnsureNotNull(model, ValidationConstants.ArticleDefinedMessage); Validator.EnsureStringNotNullOrEmpty(model.Title, ValidationConstants.ArticleTitleMessage); Validator.EnsureStringNotNullOrEmpty(model.Slug, ValidationConstants.ArticleSlugMessage); Validator.EnsureStringNotNullOrEmpty(model.Content, ValidationConstants.ArticleContentMessage); Validator.EnsureStringNotNullOrEmpty(model.PublishDateTime.ToString(), ValidationConstants.ArticleDateMessage); Validator.EnsureStringNotNullOrEmpty(model.AuthorId, ValidationConstants.ArticleAuthorMessage); Validator.EnsureStringNotNullOrEmpty(model.ArticleCategoryId.ToString(), ValidationConstants.ArticleCategoryMessage); var article = this.Mapper.Map <Article>(model); await this.DbContext.Articles.AddAsync(article); await this.DbContext.SaveChangesAsync(); return(article); }
public void Add_WithValidArticle_ShouldCallService() { // Arrange var model = new ArticleCreationBindingModel(); bool serviceCalled = false; var mockRepository = new Mock <IAdminArticlesService>(); mockRepository.Setup(repo => repo.AddArticleAsync(model)) .Callback(() => serviceCalled = true); var userRepository = new Mock <IAdminUsersService>(); userRepository.Setup(repo => repo.GetAuthorsAsync()) .Callback(() => serviceCalled = true); var controller = new ArticlesController(userRepository.Object, mockRepository.Object); // Act var result = controller.Add(model); // Assert Assert.IsTrue(serviceCalled); }