public void ItOnlyInvokesAttributeIfValueExists()
        {
            var app       = new CommandLineApplication();
            var arg       = app.Argument("arg", "arg");
            var validator = new AttributeValidator(new ThrowingValidationAttribute());
            var factory   = new CommandLineValidationContextFactory(app);
            var context   = factory.Create(arg);

            Assert.Equal(ValidationResult.Success, validator.GetValidationResult(arg, context));

            arg.Values.Add(null);

            Assert.Throws <InvalidOperationException>(() => validator.GetValidationResult(arg, context));
        }
        public void ItExecutesValidationAttribute(Type attributeType, string validValue, string invalidValue)
        {
            var attr      = (ValidationAttribute)Activator.CreateInstance(attributeType);
            var app       = new CommandLineApplication();
            var arg       = app.Argument("arg", "arg");
            var validator = new AttributeValidator(attr);
            var factory   = new CommandLineValidationContextFactory(app);
            var context   = factory.Create(arg);

            arg.Values.Add(validValue);

            Assert.Equal(ValidationResult.Success, validator.GetValidationResult(arg, context));

            arg.Values.Clear();
            arg.Values.Add(invalidValue);
            var result = validator.GetValidationResult(arg, context);

            Assert.NotNull(result);
            Assert.NotEmpty(result.ErrorMessage);
        }
Exemplo n.º 3
0
        public void ItExecutesClassLevelValidationAttribute(Type attributeType, string validProp1Value, string validProp2Value, string invalidProp1Value, string invalidProp2Value)
        {
            var attr      = (ValidationAttribute)Activator.CreateInstance(attributeType);
            var app       = new CommandLineApplication <ClassLevelValidationApp>();
            var validator = new AttributeValidator(attr);
            var factory   = new CommandLineValidationContextFactory(app);
            var context   = factory.Create(app);

            app.Model.Arg1 = validProp1Value;
            app.Model.Arg2 = validProp2Value;

            Assert.Equal(ValidationResult.Success, validator.GetValidationResult(app, context));

            app.Model.Arg1 = invalidProp1Value;
            app.Model.Arg2 = invalidProp2Value;

            var result = validator.GetValidationResult(app, context);

            Assert.NotNull(result);
            Assert.NotEmpty(result.ErrorMessage);
        }