示例#1
0
        public void Constructor_InvalidPattern()
        {
            var attr = new RegularExpressionAttribute("(");

            // Cannot test the exception message, because on the non-developer runtime of Silverlight
            // the exception string is not available.
            ExceptionHelper.ExpectArgumentException(() => attr.IsValid(""), null);
        }
示例#2
0
        public void CustomValidation_Method_Throws()
        {
            CustomValidationAttribute cva = new CustomValidationAttribute(typeof(MockValidator), "Throws");

            Assert.AreEqual("Throws", cva.Method);
            ValidationContext context = new ValidationContext(new object(), null, null);

            ExceptionHelper.ExpectArgumentException(delegate() {
                cva.GetValidationResult("Fred", context);    // valid call, but this method throws
            }, "o");
        }
        public void Validator_Fail_Property_Null_ValueType_Throws()
        {
            ValTestClass      vtc     = new ValTestClass();
            ValidationContext context = new ValidationContext(vtc, null, null);

            context.MemberName = "DoubleProperty";

            ExceptionHelper.ExpectArgumentException(delegate() {
                Validator.ValidateProperty(null, context);   // DoubleProperty is a double and should fail
            }, String.Format(CultureInfo.CurrentCulture, DataAnnotationsResources.Validator_Property_Value_Wrong_Type, "DoubleProperty", typeof(double).FullName));
        }
        public void Validator_Instance_Must_Match_ValidationContext_Instance_For_Object_Validation()
        {
            ValidationContext context  = new ValidationContext(this, null, null);
            ValTestClass      instance = new ValTestClass();

            // Without specifying validate all properties
            ExceptionHelper.ExpectArgumentException(() => Validator.TryValidateObject(instance, context, null), DataAnnotationsResources.Validator_InstanceMustMatchValidationContextInstance);
            ExceptionHelper.ExpectArgumentException(() => Validator.ValidateObject(instance, context), DataAnnotationsResources.Validator_InstanceMustMatchValidationContextInstance);

            // With specifying validate all properties
            ExceptionHelper.ExpectArgumentException(() => Validator.TryValidateObject(instance, context, null, true), DataAnnotationsResources.Validator_InstanceMustMatchValidationContextInstance);
            ExceptionHelper.ExpectArgumentException(() => Validator.ValidateObject(instance, context, true), DataAnnotationsResources.Validator_InstanceMustMatchValidationContextInstance);
        }
        public void Validator_Fail_Property_Type_Mismatch()
        {
            ValTestClass      vtc     = new ValTestClass();
            ValidationContext context = new ValidationContext(vtc, null, null);

            context.MemberName = "RequiredProperty";

            // IsValid entry point
            ExceptionHelper.ExpectArgumentException(delegate() {
                Validator.TryValidateProperty(2.0, context, null); // 2.0 s/b string
            }, String.Format(CultureInfo.CurrentCulture, DataAnnotationsResources.Validator_Property_Value_Wrong_Type, "RequiredProperty", typeof(string).FullName));

            // Validate entry point
            ExceptionHelper.ExpectArgumentException(delegate() {
                Validator.ValidateProperty(2.0, context); // 2.0 s/b string
            }, String.Format(CultureInfo.CurrentCulture, DataAnnotationsResources.Validator_Property_Value_Wrong_Type, "RequiredProperty", typeof(string).FullName));
        }