Inheritance: System.ComponentModel.DataAnnotations.DataTypeAttribute
 public static void Validate_throws_InvalidOperationException_if_ErrorMessageResourceType_set_but_ErrorMessageResourceName_not_set()
 {
     var attribute = new CreditCardAttribute();
     attribute.ErrorMessageResourceName = null;
     attribute.ErrorMessageResourceType = typeof(ErrorMessageResources);
     Assert.Throws<InvalidOperationException>(() => attribute.Validate("0000000000000001", s_testValidationContext));
 }
 public static void Validate_throws_InvalidOperationException_if_ErrorMessage_and_ErrorMessageResourceName_are_set()
 {
     var attribute = new CreditCardAttribute();
     attribute.ErrorMessage = "SomeErrorMessage";
     attribute.ErrorMessageResourceName = "SomeErrorMessageResourceName";
     Assert.Throws<InvalidOperationException>(() => attribute.Validate("0000000000000001", s_testValidationContext));
 }
        public void IsValidTests()
        {
            var attribute = new CreditCardAttribute();

            Assert.IsTrue(attribute.IsValid(null));                  // Don't check for required
            Assert.IsTrue(attribute.IsValid("0000000000000000"));    // Simplest valid value
            Assert.IsTrue(attribute.IsValid("1234567890123452"));    // Good checksum
            Assert.IsTrue(attribute.IsValid("1234-5678-9012-3452")); // Good checksum, with dashes
            Assert.IsTrue(attribute.IsValid("1234 5678 9012 3452")); // Good checksum, with spaces
            Assert.IsTrue(attribute.IsValid("541234567890125"));
            Assert.IsTrue(attribute.IsValid("4408041234567893"));
            Assert.IsTrue(attribute.IsValid("4417123456789113"));

            Assert.IsFalse(attribute.IsValid("0000000000000001"));   // Bad checksum
            Assert.IsFalse(attribute.IsValid("0000-0000-0000-0001"));
            Assert.IsFalse(attribute.IsValid("1234567890123456"));
            Assert.IsFalse(attribute.IsValid("558987100150")); //too short
            Assert.IsFalse(attribute.IsValid("---"));
            Assert.IsFalse(attribute.IsValid("AA17123456789112"));
            Assert.IsFalse(attribute.IsValid("4417123456789112"));
            Assert.IsFalse(attribute.IsValid("4408041234567890"));
            Assert.IsFalse(attribute.IsValid("4408041234567890ab"));
            Assert.IsFalse(attribute.IsValid("4408 0412 3456 7890"));
            Assert.IsFalse(attribute.IsValid(0));                    // Non-string
        }
        public static void Validate_throws_for_invalid_values()
        {
            var attribute = new CreditCardAttribute();

            Assert.Throws<ValidationException>(() => attribute.Validate("0000000000000001", s_testValidationContext)); // Bad checksum
            Assert.Throws<ValidationException>(() => attribute.Validate(0, s_testValidationContext)); // Non-string
            Assert.Throws<ValidationException>(() => attribute.Validate("000%000000000001", s_testValidationContext)); // Non-digit
        }
 public static void GetValidationResult_returns_ErrorMessage_if_ErrorMessage_overrides_default()
 {
     var attribute = new CreditCardAttribute();
     attribute.ErrorMessage = "SomeErrorMessage";
     var toBeTested = new CreditCardClassToBeTested();
     var validationContext = new ValidationContext(toBeTested);
     validationContext.MemberName = "CreditCardPropertyToBeTested";
     var validationResult = attribute.GetValidationResult(toBeTested, validationContext);
     Assert.Equal("SomeErrorMessage", validationResult.ErrorMessage);
 }
        public static void Validate_successful_for_valid_values()
        {
            var attribute = new CreditCardAttribute();

            AssertEx.DoesNotThrow(() => attribute.Validate(null, s_testValidationContext)); // Null is valid
            AssertEx.DoesNotThrow(() => attribute.Validate("0000000000000000", s_testValidationContext)); // Simplest valid value
            AssertEx.DoesNotThrow(() => attribute.Validate("1234567890123452", s_testValidationContext)); // Good checksum
            AssertEx.DoesNotThrow(() => attribute.Validate("1234-5678-9012-3452", s_testValidationContext)); // Good checksum, with dashes
            AssertEx.DoesNotThrow(() => attribute.Validate("1234 5678 9012 3452", s_testValidationContext)); // Good checksum, with spaces
        }
        public static void GetValidationResult_ErrorMessageSet_ReturnsOverridenValue()
        {
            var attribute = new CreditCardAttribute();
            attribute.ErrorMessage = "SomeErrorMessage";
            var toBeTested = new CreditCardClassToBeTested();
            var validationContext = new ValidationContext(toBeTested);
            validationContext.MemberName = nameof(CreditCardClassToBeTested.CreditCardPropertyToBeTested);

            var validationResult = attribute.GetValidationResult(toBeTested, validationContext);
            Assert.Equal("SomeErrorMessage", validationResult.ErrorMessage);
        }
        public void ErrorMessageTest()
        {
            var attribute = new CreditCardAttribute();
            attribute.ErrorMessage = "SampleErrorMessage";

            const int invalidValue = 0;

            var result = attribute.GetValidationResult(invalidValue, new ValidationContext(0, null, null));

            Assert.AreEqual("SampleErrorMessage", result.ErrorMessage);
        }
        public void ErrorResourcesTest()
        {
            var attribute = new CreditCardAttribute();
            attribute.ErrorMessageResourceName = "ErrorMessage";
            attribute.ErrorMessageResourceType = typeof (ErrorResources);

            const int invalidValue = 0;

            var result = attribute.GetValidationResult(invalidValue, new ValidationContext(0, null, null));

            Assert.AreEqual("error message", result.ErrorMessage);
        }
		public void IsValid ()
		{
			var sla = new CreditCardAttribute ();

			Assert.IsTrue (sla.IsValid (null), "#A1-1");
			Assert.IsTrue (sla.IsValid (String.Empty), "#A1-2");
			Assert.IsFalse (sla.IsValid ("string"), "#A1-3");
			Assert.IsTrue (sla.IsValid ("378282246310005"), "#A1-4");
			Assert.IsTrue (sla.IsValid ("3782-8224-6310-005"), "#A1-5");
			Assert.IsTrue (sla.IsValid ("371449635398431"), "#A-6");
			Assert.IsFalse (sla.IsValid ("371449635498431"), "#A-6b");
			Assert.IsFalse (sla.IsValid (true), "#A1-7");
			Assert.IsFalse (sla.IsValid (DateTime.Now), "#A1-8");
		}
        public void GlobalizedErrorResourcesTest()
        {
            System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("es-MX");

            var attribute = new CreditCardAttribute();
            attribute.ErrorMessageResourceName = "ErrorMessage";
            attribute.ErrorMessageResourceType = typeof(ErrorResources);

            const int invalidValue = 0;

            var result = attribute.GetValidationResult(invalidValue, new ValidationContext(0, null, null));

            Assert.AreEqual("mensaje de error", result.ErrorMessage);
        }
 public static void Validate_ValidValue_DoesNotThrow(string value)
 {
     var attribute = new CreditCardAttribute();
     attribute.Validate(value, s_testValidationContext);
 }
 public static void Validate_ErrorMessageNotSet_ThrowsInvalidOperationException()
 {
     var attribute = new CreditCardAttribute() { ErrorMessage = null };
     Assert.Throws<InvalidOperationException>(() => attribute.Validate("0000000000000001", s_testValidationContext));
 }
 public static void Validate_ErrorMessageResourceNameNotSet_ErrorMessageResourceTypeSet_ThrowsInvalidOperationException()
 {
     var attribute = new CreditCardAttribute() { ErrorMessageResourceName = null, ErrorMessageResourceType = typeof(ErrorMessageResources) };
     Assert.Throws<InvalidOperationException>(() => attribute.Validate("0000000000000001", s_testValidationContext));
 }
 public static void Validate_ErrorMessageSet_ErrorMessageResourceNameSet_ThrowsInvalidOperationException()
 {
     var attribute = new CreditCardAttribute() { ErrorMessage = "Some", ErrorMessageResourceName = "Some" };
     Assert.Throws<InvalidOperationException>(() => attribute.Validate("0000000000000001", s_testValidationContext));
 }
 public static void GetValidationResult_ErrorMessageNotSet_ReturnsDefaultValue()
 {
     var attribute = new CreditCardAttribute();
     var toBeTested = new CreditCardClassToBeTested();
     var validationContext = new ValidationContext(toBeTested);
     validationContext.MemberName = nameof(CreditCardClassToBeTested.CreditCardPropertyToBeTested);
     attribute.GetValidationResult(toBeTested, validationContext);
 }
 public static void GetValidationResult_returns_DefaultErrorMessage_if_ErrorMessage_is_not_set()
 {
     var attribute = new CreditCardAttribute();
     var toBeTested = new CreditCardClassToBeTested();
     var validationContext = new ValidationContext(toBeTested);
     validationContext.MemberName = "CreditCardPropertyToBeTested";
     AssertEx.DoesNotThrow(() => attribute.GetValidationResult(toBeTested, validationContext));
 }
        public static void GetValidationResult_ErrorMessageSetFromResource_ReturnsExpectedValue()
        {
            var attribute = new CreditCardAttribute();
            attribute.ErrorMessageResourceName = "InternalErrorMessageTestProperty";
            attribute.ErrorMessageResourceType = typeof(ErrorMessageResources);
            var toBeTested = new CreditCardClassToBeTested();
            var validationContext = new ValidationContext(toBeTested);
            validationContext.MemberName = nameof(CreditCardClassToBeTested.CreditCardPropertyToBeTested);

            var validationResult = attribute.GetValidationResult(toBeTested, validationContext);
            Assert.Equal("Error Message from ErrorMessageResources.InternalErrorMessageTestProperty", validationResult.ErrorMessage);
        }
 public static void GetValidationResult_returns_ErrorMessage_from_resource_if_ErrorMessageResourceName_and_ErrorMessageResourceType_both_set()
 {
     var attribute = new CreditCardAttribute();
     attribute.ErrorMessageResourceName = "InternalErrorMessageTestProperty";
     attribute.ErrorMessageResourceType = typeof(ErrorMessageResources);
     var toBeTested = new CreditCardClassToBeTested();
     var validationContext = new ValidationContext(toBeTested);
     validationContext.MemberName = "CreditCardPropertyToBeTested";
     var validationResult = attribute.GetValidationResult(toBeTested, validationContext);
     Assert.Equal(
         "Error Message from ErrorMessageResources.InternalErrorMessageTestProperty",
         validationResult.ErrorMessage);
 }
 public static void Validate_throws_InvalidOperationException_if_ErrorMessage_is_null()
 {
     var attribute = new CreditCardAttribute();
     attribute.ErrorMessage = null; // note: this overrides the default value
     Assert.Throws<InvalidOperationException>(() => attribute.Validate("0000000000000001", s_testValidationContext));
 }
 public static void Validate_InvalidValue_ThrowsValidationException(object value)
 {
     var attribute = new CreditCardAttribute();
     Assert.Throws<ValidationException>(() => attribute.Validate(value, s_testValidationContext));
 }
 public static void CreditCardAttribute_creation_DataType_and_CustomDataType()
 {
     var attribute = new CreditCardAttribute();
     Assert.Equal(DataType.CreditCard, attribute.DataType);
     Assert.Null(attribute.CustomDataType);
 }