У меня есть класс MyBO, который содержит:
...
[RangeValidator(typeof(byte), "0", RangeBoundaryType.Inclusive, "20", RangeBoundaryType.Inclusive, Ruleset="validate_x")]
public byte x
{
get;
set;
}
[IgnoreNulls]
[RangeValidator(typeof(byte), "0", RangeBoundaryType.Inclusive, "50", RangeBoundaryType.Inclusive, Ruleset = "validate_y")]
public byte y
{
get;
set;
}
[SelfValidation(Ruleset="validate_xy")]
public void VerifyXY(ValidationResults results)
{
if (x < y)
{
results.AddResult(new ValidationResult("X cannot be < than Y!", this, "Verify", null, null));
}
}
Проблема в том, что если в тестовом классе у меня есть:
[TestMethod()]
public void MyBOConstructorTest()
{
MyBO target = new MyBO() { x = 20, y = 23 };
ValidationResults vr = Validation.Validate(target, "validate_xy");
Assert.IsTrue(vr.IsValid);
}
тест не проходит. Зачем? Потому что X 20, а Y 23. Итак, как вы можете видеть, я использую SelfValidation в классе BO.
Thanls