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); }
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); }