public void ValidData( EvaluationEngine engine, IMyValidationResult answer) { "establish an evaluation engine with custom validation"._(() => { engine = new EvaluationEngine(); engine.Solve <IsDataValid, IMyValidationResult, Data>() .AggregateWithValidationAggregator(new MyValidationResultFactory()) .ByEvaluating(q => new NameSetRule()); }); "when validating valid data with extended validation result"._(() => { answer = engine.Answer( new IsDataValid(), new Data { Name = "Tester" }); }); "it should return valid validation result"._(() => { answer.Valid.Should().BeTrue(); }); "it should return validation result without violations"._(() => { answer.Violations.Should().BeEmpty(); }); }
public void InvalidData( EvaluationEngine engine, IMyValidationResult answer) { "establish an evaluation engine with custom validation"._(() => { engine = new EvaluationEngine(); engine.Solve <IsDataValid, IMyValidationResult, Data>() .AggregateWithValidationAggregator(new MyValidationResultFactory()) .ByEvaluating(q => new NameSetRule()); }); "when validating invalid data with extended validation result"._(() => { answer = engine.Answer( new IsDataValid(), new Data { Name = null }); }); "it should return invalid validation result"._(() => { answer.Valid.Should().BeFalse(); }); "it should return validation result with violations"._(() => { answer.Violations.Should().HaveCount(1); answer.Violations.Single().Reason.Should().Be(NameIsEmptyReason); answer.Violations.Single().ViolationHint.Should().Be(Hint); }); "it should return violations with reason set by failing rule"._(() => { answer.Violations.Single().Reason.Should().Be(NameIsEmptyReason); }); "it should return violations with extended data"._(() => { answer.Violations.Single().ViolationHint.Should().Be(Hint); }); }