public async void Test_GreaterThanDateTimeChecker()
        {
            var checker = new GreaterThanDateTimeChecker<Student>(new DateTime(2017, 3, 3), _Validation);

            var result = await checker.ValidateAsync(new ValidateResult(), new DateTime(2018, 3, 3), "", "");
            Assert.True(result.IsValid);

            result = await checker.ValidateAsync(new ValidateResult(), new DateTime(2016, 3, 3), "a", null);
            Assert.False(result.IsValid);
            Assert.Equal(1, result.Failures.Count);
            Assert.Equal("a", result.Failures[0].Name);
            Assert.Equal(string.Format("The value must greater than {0}", new DateTime(2017, 3, 3)), result.Failures[0].Error);
            Assert.Equal(new DateTime(2016, 3, 3), result.Failures[0].Value);

            result = await checker.ValidateAsync(new ValidateResult(), new DateTime(2017, 3, 3), "a1", "c");
            Assert.False(result.IsValid);
            Assert.Equal(1, result.Failures.Count);
            Assert.Equal("a1", result.Failures[0].Name);
            Assert.Equal("c", result.Failures[0].Error);
            Assert.Equal(new DateTime(2017, 3, 3), result.Failures[0].Value);
        }
        public async void Test_GreaterThanDateTimeChecker()
        {
            var checker = new GreaterThanDateTimeChecker <Student>(new DateTime(2017, 3, 3), _Validation);

            var result = await checker.ValidateAsync(new ValidateResult(), new DateTime(2018, 3, 3), "", "");

            Assert.True(result.IsValid);

            result = await checker.ValidateAsync(new ValidateResult(), new DateTime(2016, 3, 3), "a", null);

            Assert.False(result.IsValid);
            Assert.Equal(1, result.Failures.Count);
            Assert.Equal("a", result.Failures[0].Name);
            Assert.Equal(string.Format("The value must greater than {0}", new DateTime(2017, 3, 3)), result.Failures[0].Error);
            Assert.Equal(new DateTime(2016, 3, 3), result.Failures[0].Value);

            result = await checker.ValidateAsync(new ValidateResult(), new DateTime(2017, 3, 3), "a1", "c");

            Assert.False(result.IsValid);
            Assert.Equal(1, result.Failures.Count);
            Assert.Equal("a1", result.Failures[0].Name);
            Assert.Equal("c", result.Failures[0].Error);
            Assert.Equal(new DateTime(2017, 3, 3), result.Failures[0].Value);
        }