2015-07-27 29 views
7

Ben test ediyorum bir PUTstring iki ile:FluentValidation nasıl Uzunluk kontrol etmek?

company.CurrencyCode = request.CurrencyCode ?? company.CurrencyCode; 
company.CountryIso2 = request.Country ?? company.CountryIso2; 

ve ben gibi bir kuralla çalıştı: Ben olma özelliği üzerinde null almak umursamıyorum olarak

public UpdateCompanyValidator() 
{ 
    RuleSet(ApplyTo.Put,() => 
    { 
     RuleFor(r => r.CountryIso2) 
       .Length(2) 
       .When(x => !x.Equals(null)); 

     RuleFor(r => r.CurrencyCode) 
       .Length(3) 
       .When(x => !x.Equals(null)); 
    }); 
} 

ama test etmek istediğiniz Lengthözelliğini bir null değildir.

bir özellik nullable ve biz sadece boş değilse test etmek istediğinizde kurallarını uygulamak için en iyi yolu nedir? yollarından

cevap

3

Bir olacaktır:

When(m => m.CountryIso2 != null, 
    () => { 
     RuleFor(m => m.CountryIso2) 
      .Length(2); 
    ); 
6

Ben şu sözdizimini tercih ederim.
+0

Bu kod temizleyici ve daha iyi okunabilirliği olduğunu düşünüyorum:

public class ModelValidation : AbstractValidator<Model> { public ModelValidation() { RuleFor(x => x.Country).Must(x => x == null || x.Length >= 2); } } 
Rahatur

İlgili konular