У меня есть класс, определенный в библиотеке классов, например:
Classlib1 - Клиент
public class client{
[Required]
public string Firstname {get; set;}
...
[RegularExpression(@"^(?:\d{9}|\d{3}-\d{2}-\d{4}|)$")]
public string SocialSecurityNumber {get; set;}
}
У меня также есть библиотека Test, в которой я хочу убедиться, что моя проверка атрибута RegularExpression работает.
Testlib
[TestMethod]
public void ThrowAnErrorOnSSNWithTooManyDigits(){
var client = new Client(){
Firstname = "Mickey",
...
SocialSecurityNumber = "1234567890123"
};
var vResults = new List<ValidationResult>();
var context = new ValidationContext(client){MemberName = "SocialSecurityNumber"};
var result = Validator.TryValidateProperty(client.SocialSecurityNumber, context, vResults);
Assert.IsFalse(result)
}
Однако, мое утверждение всегда терпит неудачу, потому что результат всегда равен true. Я попытался изменить свой валидатор, чтобы проверить требуемое имя, а не SocialSecurityNumber, думая, что мой RegEx не совсем правильный - однако, он также возвращает true - даже если я установил Firstname = ""
Что мне нужно сделать, чтобы Validator работал в моей тестовой библиотеки классов?