void WriteFailingRule(MessageWriter writer, EqualityRuleResult ruleResult) { if (ruleResult.Exception != null) { writer.WriteLine($"{RuleName(ruleResult)} Threw an unexpected exception whilst performing the comparison.{Environment.NewLine}{ruleResult.Exception}"); } else { writer.WriteLine($"{RuleName(ruleResult)} Expected {Format(ruleResult.ValueA)} but got {Format(ruleResult.ValueB)}"); } }
/// <summary> /// Gets a detailled equality comparison result. /// </summary> /// <returns>The equality result.</returns> /// <param name="x">The first object.</param> /// <param name="y">The second object.</param> public EqualityResult GetEqualityResult(TParent x, TParent y) { try { var valueX = valueProvider.GetValue(x); var valueY = valueProvider.GetValue(y); return(valueRule.GetEqualityResult(valueX, valueY)); } catch (Exception e) { var ruleResult = new EqualityRuleResult(Name, false, exception: e); return(resultFactory.GetEqualityResult(new[] { ruleResult })); } }
string RuleName(EqualityRuleResult ruleResult) { return($">>> [{ruleResult.Name,20}]:"); }