Beispiel #1
0
 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();
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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();
        }