public async Task ShouldNotHaveValidationError_model_async()
        {
            var validator = new InlineValidator <Person>();

            validator.RuleFor(x => x.Surname).MustAsync((x, ct) => Task.FromResult(true));
            (await validator.TestValidateAsync(new Person())).ShouldNotHaveValidationErrorFor(x => x.Surname);
        }
        public async Task ShouldNotHaveValidationError_async_model_throws()
        {
            var validator = new InlineValidator <Person>();

            validator.RuleFor(x => x.Surname).MustAsync((x, ct) => Task.FromResult(false));
            await Assert.ThrowsAsync <ValidationTestException>(async() => {
                (await validator.TestValidateAsync(new Person())).ShouldNotHaveValidationErrorFor(x => x.Surname);
            });
        }
        public async Task TestValidate_runs_async()
        {
            var validator = new InlineValidator <Person>();

            validator.RuleFor(x => x.Surname).MustAsync((x, ct) => Task.FromResult(false));
            var result = await validator.TestValidateAsync(new Person());

            result.ShouldHaveValidationErrorFor(x => x.Surname);
        }
        public async Task TestValidate_runs_async_throws()
        {
            var validator = new InlineValidator <Person>();

            validator.RuleFor(x => x.Surname).MustAsync((x, ct) => Task.FromResult(false));
            var result = await validator.TestValidateAsync(new Person());

            Assert.Throws <ValidationTestException>(() => {
                result.ShouldNotHaveValidationErrorFor(x => x.Surname);
            });
        }
        public async Task ShouldHaveValidationErrorFor_Only_async_throws()
        {
            var validator = new InlineValidator <Person>();

            validator.RuleFor(x => x.Surname).MustAsync((x, ct) => Task.FromResult(false));
            validator.RuleFor(x => x.Age).MustAsync((x, ct) => Task.FromResult(false));
            (await Assert.ThrowsAsync <ValidationTestException>(async() => {
                (await validator.TestValidateAsync(new Person()))
                .ShouldHaveValidationErrorFor(x => x.Surname)
                .Only();
            })).Message.ShouldEqual("Expected to have errors only matching specified conditions\n----\nUnexpected Errors:\n[0]: The specified condition was not met for 'Age'.\n");
        }