public void Setup() { _post = PostFactories.Post(); _post.Publish(); _post.Withdraw(); _event = _post.Events.OfType <PostWithdrew>().Single(); }
public void Setup() { _post = PostFactories.Post(); _post.Delete(); _post.Restore(); _event = _post.Events.OfType <PostRestored>().Single(); }
public async Task Setup() { _post = PostFactories.Post(); _post.Publish(); _command = new WithdrawPost { BlogId = Guid.NewGuid(), AggregateRootId = Guid.NewGuid() }; _postRepositoryMock = new Mock <IPostRepository>(); _postRepositoryMock .Setup(x => x.GetByIdAsync(_command.BlogId, _command.AggregateRootId)) .ReturnsAsync(_post); _postRepositoryMock .Setup(x => x.UpdateAsync(It.IsAny <Post>())) .Callback <Post>(p => _updatedPost = p) .Returns(Task.CompletedTask); _commandHandler = new WithdrawPostHandler(_postRepositoryMock.Object); _result = await _commandHandler.HandleAsync(_command); _event = _updatedPost.Events.OfType <PostWithdrew>().Single(); }
public void Setup() { _command = PostFactories.CreatePostCommand(); _validatorMock = new Mock <IValidator <CreatePost> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _post = new Post(_command, _validatorMock.Object); _event = _post.Events.OfType <PostCreated>().Single(); }
public void ShouldHaveValidationErrorWhenBlogDoesNotExist() { var command = PostFactories.CreatePostCommand(); var postRulesMock = new Mock <IPostRules>(); var blogRulesMock = new Mock <IBlogRules>(); blogRulesMock.Setup(x => x.DoesBlogExistAsync(command.BlogId)).ReturnsAsync(false); var validator = new CreatePostValidator(postRulesMock.Object, blogRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.Title, command); }
public void ShouldHaveValidationErrorWhenSlugIsNotUnique() { var command = PostFactories.CreatePostCommand(); var postRulesMock = new Mock <IPostRules>(); postRulesMock.Setup(x => x.IsSlugUniqueAsync(command.BlogId, command.AggregateRootId, command.Slug)).ReturnsAsync(false); var blogRulesMock = new Mock <IBlogRules>(); var validator = new CreatePostValidator(postRulesMock.Object, blogRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.Slug, command); }
public void ShouldHaveValidationErrorWhenExcerptIsTooLong() { var command = PostFactories.CreatePostCommand(); command.Excerpt = SharedFactories.RandomString(251); var postRulesMock = new Mock <IPostRules>(); var blogRulesMock = new Mock <IBlogRules>(); var validator = new CreatePostValidator(postRulesMock.Object, blogRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.Excerpt, command); }
public void ThrowsApplicationExceptionWhenContentIsEmpty() { var command = PostFactories.UpdatePostCommand(); command.Content = string.Empty; command.Status = PostStatus.Draft; var validatorMock = new Mock <IValidator <UpdatePost> >(); validatorMock.Setup(x => x.Validate(command)).Returns(new ValidationResult()); _post.Update(command, validatorMock.Object); Assert.Throws <ApplicationException>(() => _post.Publish()); }
public void ShouldHaveValidationErrorWhenContentIsEmptyAndStatusIsPublished() { var command = PostFactories.CreatePostCommand(); command.Content = string.Empty; command.Status = PostStatus.Published; var postRulesMock = new Mock <IPostRules>(); var blogRulesMock = new Mock <IBlogRules>(); var validator = new CreatePostValidator(postRulesMock.Object, blogRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.Content, command); }
public void ShouldHaveValidationErrorWhenTitleIsTooLong() { var command = PostFactories.CreatePostCommand(); command.Title = SharedFactories.RandomString(101); var postRulesMock = new Mock <IPostRules>(); postRulesMock.Setup(x => x.IsTitleUniqueAsync(command.BlogId, command.AggregateRootId, command.Title)).ReturnsAsync(true); var blogRulesMock = new Mock <IBlogRules>(); var validator = new CreatePostValidator(postRulesMock.Object, blogRulesMock.Object); validator.ShouldHaveValidationErrorFor(x => x.Title, command); }
public async Task Setup() { _command = PostFactories.CreatePostCommand(); _validatorMock = new Mock <IValidator <CreatePost> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _postRepositoryMock = new Mock <IPostRepository>(); _postRepositoryMock .Setup(x => x.CreateAsync(It.IsAny <Post>())) .Callback <Post>(p => _post = p) .Returns(Task.CompletedTask); _commandHandler = new CreatePostHandler(_postRepositoryMock.Object, _validatorMock.Object); _result = await _commandHandler.HandleAsync(_command); _event = _post.Events.OfType <PostCreated>().Single(); }
public async Task Setup() { _post = PostFactories.Post(); _command = PostFactories.UpdatePostCommand(); _validatorMock = new Mock <IValidator <UpdatePost> >(); _validatorMock.Setup(x => x.Validate(_command)).Returns(new ValidationResult()); _postRepositoryMock = new Mock <IPostRepository>(); _postRepositoryMock .Setup(x => x.GetByIdAsync(_command.BlogId, _command.AggregateRootId)) .ReturnsAsync(_post); _postRepositoryMock .Setup(x => x.UpdateAsync(It.IsAny <Post>())) .Callback <Post>(p => _updatedPost = p) .Returns(Task.CompletedTask); _commandHandler = new UpdatePostHandler(_postRepositoryMock.Object, _validatorMock.Object); _result = await _commandHandler.HandleAsync(_command); _event = _updatedPost.Events.OfType <PostUpdated>().Single(); }
public void Setup() { _post = PostFactories.Post(); _post.Publish(); _event = _post.Events.OfType <PostPublished>().Single(); }