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 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(); }