public void SqlServerSmallDateTimeAttribute_IsValid_returns_the_expected_result(string value, bool expectedResult)
        {
            var dateTimeValue = DateTime.Parse(value);

            var sqlServerSmallDateTimeAttribute = new SqlServerSmallDateTimeAttribute();

            sqlServerSmallDateTimeAttribute.IsValid(dateTimeValue).Should().Be(expectedResult);
        }
        public void SqlServerSmallDateTimeAttribute_FormattedErrorMessage_returns_the_expected_result(string memberName)
        {
            var sqlServerSmallDateTimeAttribute = new SqlServerSmallDateTimeAttribute();

            var expectedResult = string.Format(CultureInfo.CurrentCulture, "The field {0} must be between {1} and {2}.", memberName, SqlServerSmallDateTimeAttribute.Minimum, SqlServerSmallDateTimeAttribute.Maximum);

            sqlServerSmallDateTimeAttribute.FormatErrorMessage(memberName).Should().Be(expectedResult);
        }
        public void SqlServerSmallDateTimeAttribute_IsValid_throws_for_non_datetime_values(object value)
        {
            var sqlServerSmallDateTimeAttribute = new SqlServerSmallDateTimeAttribute();

            Invoking(() => sqlServerSmallDateTimeAttribute.IsValid(value))
            .Should()
            .Throw <InvalidCastException>()
            .WithMessage(@"The [SqlServerSmallDateTime] attribute must be used on a DateTime member. [MemberName: """"]");
        }
        public void SqlServerSmallDateTimeAttribute_IsValid_returns_true_for_a_null_value()
        {
            var sqlServerSmallDateTimeAttribute = new SqlServerSmallDateTimeAttribute();

            sqlServerSmallDateTimeAttribute.IsValid(null).Should().Be(true);
        }