Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
            }
        }
Ejemplo n.º 3
0
        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);
        }