public async Task Put_article() { await DbContext.Tags.AddAsync(new Tag { Name = "css" }); await DbContext.Tags.AddAsync(new Tag { Name = "js" }); await DbContext.Tags.AddAsync(new Tag { Name = "UWP" }); await DbContext.Articles.AddAsync(new Article { Id = 1, Title = "article 1", Status = BaseStatus.Enabled, CategoryId = ArticleCategory.Net, ArticleTags = new List <ArticleTag> { new ArticleTag { TagId = 1 }, new ArticleTag { TagId = 2 } } }); await DbContext.SaveChangesAsync(); var svc = new ArticleService(DbContext, Mapper); var putDto = new PutArticleDto { Title = Guid.NewGuid().ToString(), CategoryId = ArticleCategory.Database, Content = Guid.NewGuid().ToString(), Status = BaseStatus.Disabled, TagIds = new List <int> { 5, 3, 4 } }; await svc.PutAsync(1, putDto); var articles = await DbContext.Articles .AsNoTracking() .Include(a => a.ArticleTags) .ThenInclude(t => t.Tag) .ToListAsync(); var tagsCount = await DbContext.Tags.CountAsync(); Assert.AreEqual(1, articles.Count); Assert.AreEqual(putDto.Title, articles[0].Title); Assert.AreEqual(putDto.CategoryId, articles[0].CategoryId); Assert.AreEqual(putDto.Content, articles[0].Content); Assert.AreEqual(putDto.Status, articles[0].Status); Assert.AreEqual(1, articles[0].ArticleTags.Count); Assert.AreEqual("UWP", articles[0].ArticleTags[0].Tag.Name); Assert.AreEqual(3, tagsCount); }
public async Task <IActionResult> Put(int id, [FromBody] PutArticleDto dto) { var article = await _articleService.PutAsync(id, dto); if (article == null) { return(NotFound()); } else { return(new JsonResult(article)); } }
public async Task Put_not_exists_article() { var svc = new ArticleService(DbContext, Mapper); var putDto = new PutArticleDto { Title = Guid.NewGuid().ToString(), CategoryId = ArticleCategory.Database, Content = Guid.NewGuid().ToString(), Status = BaseStatus.Disabled }; var result = await svc.PutAsync(1, putDto); Assert.IsNull(result); }