public async Task SubmitAsyncShould_SetsTheCorrectPropsAnd_SavesEntityInDB() { const string commentContent = "Content"; //Arrange var user = UserCreator.Create(); this.db.Add(user); var article = ArticleCreator.Create(user.Id); this.db.Add(article); await this.db.SaveChangesAsync(); var service = new ArticleCommentService(this.db); //Act var result = await service.SubmitAsync <CommentListingModel>(article.Id, user.Id, commentContent); result.Should().BeOfType <CommentListingModel>(); result.ArticleAuthor.Should().BeEquivalentTo(user.UserName); result.ArticleId.Should().Be(article.Id); result.Id.Should().Be(result.Id); }
public async Task GetAsyncShould_ReturnsCorrectModel() { //Arrange var user = UserCreator.Create(); this.db.Add(user); var article = ArticleCreator.Create(user.Id); this.db.Add(article); var comment = this.CreateArticleComment(article.Id, user.Id); this.db.Add(comment); await this.db.SaveChangesAsync(); var service = new ArticleCommentService(this.db); //Act var result = await service.GetAsync <CommentListingModel>(article.Id); //Assert result.Should().BeOfType <CommentListingModel>(); result.Id.Should().Be(article.Id); }
public async Task AllAsyncShould_ReturnsCorrectArticlesWith_DifferentPageIndex(int page) { //Arrange var article = ArticleCreator.Create(Guid.NewGuid().ToString()); var secondArticle = ArticleCreator.Create(Guid.NewGuid().ToString()); var thirdArticle = ArticleCreator.Create(Guid.NewGuid().ToString()); var fourthArticle = ArticleCreator.Create(Guid.NewGuid().ToString()); await this.Db.AddRangeAsync(article, secondArticle, thirdArticle, fourthArticle); await this.Db.SaveChangesAsync(); var service = new BlogArticleService(Db, null, null); //Act var result = (await service.AllAsync <BlogArticleListingModel>(page)).ToList(); var expectedCount = this.Db.Articles .Skip((page - 1) * ArticlesPageSize) .Take(ArticlesPageSize) .Count(); //Assert result.Should().AllBeOfType <BlogArticleListingModel>(); result.Should().HaveCount(expectedCount); result.Should().BeInDescendingOrder(x => x.PublishDate); }
public async Task DeleteAsyncShould_DeletesCorrectCommentIf_CommentIdExists() { //Arrange var user = UserCreator.Create(); this.db.Add(user); var article = ArticleCreator.Create(user.Id); this.db.Add(article); var comment = this.CreateArticleComment(article.Id, user.Id); var secondComment = this.CreateArticleComment(article.Id, user.Id); this.db.AddRange(comment, secondComment); await this.db.SaveChangesAsync(); var service = new ArticleCommentService(this.db); var commentsCount = this.db.Comments.Count(); //Act var result = await service.DeleteAsync(comment.Id); //Assert result.Should().BeTrue(); this.db.Comments.Count().Should().Be(commentsCount - 1); this.db.Find <Comment>(comment.Id).Should().BeNull(); }
public async Task DeleteAsyncShould_ReturnsFalseIf_EventCreatorIsAnotherUser_And_ShouldNotDeleteArticle_AndImage() { const string anotherAuthorId = "899f4fgg5f57dm888m"; //Arrange var picServiceMock = IPictureServiceMock.New(imageToDeleteId); var service = new BlogArticleService(Db, null, picServiceMock.Object); var author = UserCreator.Create(); await this.Db.AddAsync(author); var article = ArticleCreator.Create(author.Id, null); await this.Db.AddAsync(article); await this.Db.SaveChangesAsync(); //Act var result = await service.DeleteAsync(article.Id, anotherAuthorId); //Assert result.Should().BeFalse(); picServiceMock.Verify(p => p.DeleteImageAsync(It.IsAny <int>()), Times.Never); this.Db.Articles.Should().Contain(a => a.Id == article.Id); }
public async Task DeleteAsyncShould_ReturnsTrueIf_EventCreatorIsAnotherUser_AndShouldDeleteArticle_AndImage() { //Arrange var picServiceMock = IPictureServiceMock.New(imageToDeleteId); var service = new BlogArticleService(Db, null, picServiceMock.Object); var author = UserCreator.Create(); await this.Db.AddAsync(author); var image = ImageInfoCreator.CreateWithFullData(author.Id); await this.Db.AddAsync(image); var article = ArticleCreator.Create(author.Id, imageToDeleteId); await this.Db.AddAsync(article); await this.Db.SaveChangesAsync(); //Act var result = await service.DeleteAsync(article.Id, author.Id); //Assert result.Should().BeTrue(); picServiceMock.Verify(p => p.DeleteImageAsync(It.IsAny <int>()), Times.Once); this.Db.Articles.Should().NotContain(a => a.Id == article.Id); }
public async Task UpdateAsyncShould_ReturnsFalseIf_EventCreatorIsAnotherUser() { const string UpdaterId = "789io87714w78ex5"; //Arrange var htmlServiceMock = IHtmlServiceMock.New(ContentForUpdate); var service = new BlogArticleService(Db, htmlServiceMock.Object, null); var author = UserCreator.Create(); await this.Db.AddAsync(author); var article = ArticleCreator.Create(author.Id, null); await this.Db.AddAsync(article); await this.Db.SaveChangesAsync(); //Act var result = await service.UpdateAsync(article.Id, UpdaterId, TitleForUpdate, ContentForUpdate); //Assert result.Should().BeFalse(); htmlServiceMock.Verify(h => h.Sanitize(It.IsAny <string>()), Times.Never); }
public async Task UpdateAsyncShould_UpdateTheCorrectPropertiesAnd_ShouldReturnsTrueIf_EventCreatorIsTheSame() { //Arrange var htmlService = IHtmlServiceMock.New(ContentForUpdate); var service = new BlogArticleService(Db, htmlService.Object, null); var author = UserCreator.Create(); await this.Db.AddAsync(author); var article = ArticleCreator.Create(author.Id, null); await this.Db.AddAsync(article); await this.Db.SaveChangesAsync(); //Act var result = await service.UpdateAsync(article.Id, author.Id, TitleForUpdate, ContentForUpdate); var updatedEntry = await Db.FindAsync <Article>(article.Id); //Assert result.Should().BeTrue(); htmlService.Verify(h => h.Sanitize(It.IsAny <string>()), Times.Once); Assert.Equal(updatedEntry.Title, TitleForUpdate); Assert.Equal(updatedEntry.Content, ContentForUpdate); }
public async Task AllAsyncShould_ReturnsCorrectComments() { //Arrange var user = UserCreator.Create(); this.db.Add(user); var article = ArticleCreator.Create(user.Id); this.db.Add(article); var comment = this.CreateArticleComment(article.Id, user.Id); var secondComment = this.CreateArticleComment(NotExistingArticleId, user.Id); this.db.AddRange(comment, secondComment); await this.db.SaveChangesAsync(); var service = new ArticleCommentService(this.db); //Act var result = (await service.AllAsync <CommentListingModel>(article.Id)).ToList(); var expectedCommentsIds = await this.db.Comments .Where(c => c.ArticleId == article.Id) .OrderByDescending(c => c.PostedOn) .Select(x => x.Id).ToListAsync(); var expectedCount = await this.db.Comments.Where(c => c.ArticleId == article.Id).CountAsync(); //Assert result.Should().AllBeOfType <CommentListingModel>(); result.Should().HaveCount(expectedCount); result.Select(x => x.Id).Should().BeEquivalentTo(expectedCommentsIds); }
public async Task GetAsyncShould_ReturnsCorrectArticleModel() { //Arrange var user = UserCreator.Create(); await this.Db.AddAsync(user); var image = ImageInfoCreator.CreateWithFullData(user.Id); await this.Db.AddAsync(image); var article = ArticleCreator.Create(user.Id, image.Id); var secondArticle = ArticleCreator.Create(user.Id, image.Id); var thirdArticle = ArticleCreator.Create(user.Id, image.Id); await this.Db.AddRangeAsync(article, secondArticle, thirdArticle); await this.Db.SaveChangesAsync(); var service = new BlogArticleService(Db, null, null); //Act var result = await service.GetAsync <ArticleDetailsModel>(secondArticle.Id); var secondResult = await service.GetAsync <EditArticleViewModel>(article.Id); var thirdResult = await service.GetAsync <EditArticleViewModel>(4589); //Assert result.Should().BeOfType <ArticleDetailsModel>(); Assert.Equal(secondArticle.Id, result.Id); secondResult.Should().BeOfType <EditArticleViewModel>(); Assert.Equal(article.Id, secondResult.Id); Assert.Null(thirdResult); }
public void Create_WhenCalled_CreateArticleLecture() { var result = _sut.Create(_command); Assert.That(result, Is.TypeOf <Solen.Core.Domain.Courses.Entities.ArticleLecture>()); }
public static StringContent CreateContent(Article article) { return(ArticleCreator.Create(article)); }