Пример #1
0
 public void Setup()
 {
     _post = PostFactories.Post();
     _post.Publish();
     _post.Withdraw();
     _event = _post.Events.OfType <PostWithdrew>().Single();
 }
Пример #2
0
 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();
        }
Пример #4
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();
 }
Пример #5
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);
        }
Пример #6
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);
        }
Пример #7
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);
        }
Пример #8
0
        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());
        }
Пример #9
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);
        }
Пример #10
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();
        }
        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();
        }
Пример #13
0
 public void Setup()
 {
     _post = PostFactories.Post();
     _post.Publish();
     _event = _post.Events.OfType <PostPublished>().Single();
 }