public void TestSimpleObjectValidation(string personId, string userName, string email, int expectedTotalFailedRules) { Validator <PersonMock, PersonMock.PersonValidationRule> personValidator = new Validator <PersonMock, PersonMock.PersonValidationRule>() .AddValidation( PersonMock.PersonValidationRule.ValidIdRequired, (person) => { return(!string.IsNullOrWhiteSpace(person.Id)); } ) .AddValidation( PersonMock.PersonValidationRule.IdMaxLengthLimit, (person) => { return(!(person.Id?.Length > 5)); } ) .AddValidation( PersonMock.PersonValidationRule.UserNameMaxLengthLimit, (person) => { return(!(person.UserName?.Length > 10)); } ) .AddValidation( PersonMock.PersonValidationRule.EmailMaxLengthLimit, (person) => { return(!(person.Email?.Length > 10)); } ) ; PersonMock validationSubject = new PersonMock() { Id = personId, UserName = userName, Email = email, }; var failedValidationResults = personValidator.Validate(validationSubject); Assert.AreEqual(expectedTotalFailedRules, failedValidationResults.Count); }
public void TestStructuredObjectValidation(string token, string env, string personId, string userName, string email, int expectedTotalFailedRules) { Validator <PersonMock, PersonMock.PersonValidationRule> personValidator = new Validator <PersonMock, PersonMock.PersonValidationRule>() .AddValidation( PersonMock.PersonValidationRule.ValidIdRequired, (person) => { return(!string.IsNullOrWhiteSpace(person.Id)); } ) .AddValidation( PersonMock.PersonValidationRule.IdMaxLengthLimit, (person) => { return(!(person.Id?.Length > 5)); } ) .AddValidation( PersonMock.PersonValidationRule.UserNameMaxLengthLimit, (person) => { return(!(person.UserName?.Length > 10)); } ) .AddValidation( PersonMock.PersonValidationRule.EmailMaxLengthLimit, (person) => { return(!(person.Email?.Length > 10)); } ) ; Validator <ConfigMock, ConfigMock.ConfigValidationRule> configValidator = new Validator <ConfigMock, ConfigMock.ConfigValidationRule>() .AddValidation( ConfigMock.ConfigValidationRule.ValidIdRequired, (config) => { return(!string.IsNullOrWhiteSpace(config.Id)); } ) .AddValidation( ConfigMock.ConfigValidationRule.IdMaxLengthLimit, (config) => { return(!(config.Id?.Length > 6)); } ) .AddValidation( ConfigMock.ConfigValidationRule.EnvironmentMaxLengthLimit, (config) => { return(!(config.Environment?.Length > 5)); } ) .AddValidation( ConfigMock.ConfigValidationRule.UserRequired, (config) => { return(config.User != null); } ) .AddValidation(ConfigMock.ConfigValidationRule.ValidUser, (config) => config.User, personValidator ) ; PersonMock userMock = new PersonMock() { Id = personId, UserName = userName, Email = email, }; ConfigMock configMock = new ConfigMock() { Id = token, Environment = env, User = userMock, }; var failedValidationRules = configValidator.Validate(configMock); Assert.AreEqual(expectedTotalFailedRules, failedValidationRules.Count); }