Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #4
0
        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 void SetUp()
 {
     _command = new CreateLectureCommand
     {
         Title = "title", ModuleId = "moduleId", Order = 1, Content = "Content"
     };
     _sut = new ArticleCreator();
 }
Beispiel #10
0
    protected void m_submit_Click(object sender, EventArgs e)
    {
        //Create a new story
        String parent = Request.QueryString["parent"];

        //Find the logged-on author
        String author = Membership.GetUser().ToString();

        ArticleCreator.CreateArticle(author, m_title.Text, m_contents.Text, parent);

        //And send the user back to see parent
        Response.Redirect("Default.aspx?article=" + parent);
    }
Beispiel #11
0
    public void SubmitArticle(String username, String password, String title, String contents, String parent)
    {
        //Put a new article in the database

        //First validate the user
        if (!Membership.ValidateUser(username, password))
        {
            //The user doesn't validate
            throw new Exception("The provided username and password were incorrect.");
        }

        //Now actually create the article
        ArticleCreator.CreateArticle(username, title, contents, parent);
    }
Beispiel #12
0
        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);
        }
Beispiel #14
0
 public static StringContent CreateContent(Article article)
 {
     return(ArticleCreator.Create(article));
 }