public async void LastEditorDisplayName_Update_length()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(new Post()));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);
            await validator.ValidateUpdateAsync(default(int), new ApiPostServerRequestModel());

            validator.ShouldHaveValidationErrorFor(x => x.LastEditorDisplayName, new string('A', 41));
        }
        public async void LastEditorUserId_Create_Valid_Reference()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.UserByLastEditorUserId(It.IsAny <int>())).Returns(Task.FromResult <User>(new User()));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);
            await validator.ValidateCreateAsync(new ApiPostServerRequestModel());

            validator.ShouldNotHaveValidationErrorFor(x => x.LastEditorUserId, 1);
        }
        public async void Body_Update_null()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(new Post()));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);
            await validator.ValidateUpdateAsync(default(int), new ApiPostServerRequestModel());

            validator.ShouldHaveValidationErrorFor(x => x.Body, null as string);
        }
        public async void Title_Create_length()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(Task.FromResult(new Post()));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);
            await validator.ValidateCreateAsync(new ApiPostServerRequestModel());

            validator.ShouldHaveValidationErrorFor(x => x.Title, new string('A', 251));
        }
        public async void PostTypeId_Update_Valid_Reference()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.PostTypeByPostTypeId(It.IsAny <int>())).Returns(Task.FromResult <PostType>(new PostType()));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);
            await validator.ValidateUpdateAsync(default(int), new ApiPostServerRequestModel());

            validator.ShouldNotHaveValidationErrorFor(x => x.PostTypeId, 1);
        }
        public async void ParentId_Create_Invalid_Reference()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.PostByParentId(It.IsAny <int>())).Returns(Task.FromResult <Post>(null));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);

            await validator.ValidateCreateAsync(new ApiPostServerRequestModel());

            validator.ShouldHaveValidationErrorFor(x => x.ParentId, 1);
        }
        public async void OwnerUserId_Update_Invalid_Reference()
        {
            Mock <IPostRepository> postRepository = new Mock <IPostRepository>();

            postRepository.Setup(x => x.UserByOwnerUserId(It.IsAny <int>())).Returns(Task.FromResult <User>(null));

            var validator = new ApiPostServerRequestModelValidator(postRepository.Object);

            await validator.ValidateUpdateAsync(default(int), new ApiPostServerRequestModel());

            validator.ShouldHaveValidationErrorFor(x => x.OwnerUserId, 1);
        }