/// <summary> /// Write the failure message to the MessageWriter provided as an /// argument. The default implementation simply passes the constraint /// and the actual value to the writer, which then displays the /// constraint description and the value. /// /// Constraints that need to provide additional details, such as where /// the error occured can override this. /// </summary> /// <exception cref="ArgumentNullException">if the message writer is null.</exception> /// <param name="writer">The MessageWriter on which to display the message</param> public virtual void WriteMessageTo(MessageWriter writer) { if (writer == null) { throw new ArgumentNullException("writer"); } writer.DisplayDifferences(this); }
/// <inheritdoc /> public override void WriteMessageTo(MessageWriter writer) { writer.DisplayDifferences(this); if (differences != null && differences.Any()) { writer.Write(" {0} Differences: ", differences.Count); writer.WriteCollectionElements(differences, 0, 20); } }
private void DisplayDifferences(MessageWriter writer, object expected, object actual, int depth) { if (expected is Ast && actual is Ast) { DisplayAstDifferences(writer, (Ast)expected, (Ast)actual); } else { writer.DisplayDifferences(expected, actual); } }
/// <summary> /// Displays the differences. /// </summary> /// <param name="writer">The writer.</param> /// <param name="expected">The expected.</param> /// <param name="actual">The actual.</param> /// <param name="depth">The depth.</param> private void DisplayDifferences(MessageWriter writer, object expected, object actual, int depth) { if (expected is string && actual is string) { DisplayStringDifferences(writer, (string)expected, (string)actual); } else if (expected is ICollection && actual is ICollection) { DisplayCollectionDifferences(writer, expected as ICollection, actual as ICollection, depth); } else if (expected is Stream && actual is Stream) { DisplayStreamDifferences(writer, expected as Stream, actual as Stream, depth); } else if (Tolerance != null) { writer.DisplayDifferences(expected, actual, Tolerance); } else { writer.DisplayDifferences(expected, actual); } }
/// <inheritdoc/> public override void WriteMessageTo(MessageWriter writer) { Comparison c = diffResult.Differences.First().Comparison; writer.WriteMessageLine(comparisonFormatter.GetDescription(c)); if (diffResult.TestSource.SystemId != null || diffResult.ControlSource.SystemId != null) { writer.WriteMessageLine(string.Format("comparing {0} to {1}", diffResult.TestSource.SystemId, diffResult.ControlSource.SystemId)); } writer.DisplayDifferences(GetDetails(c.ControlDetails, c.Type), GetDetails(c.TestDetails, c.Type)); }
/// <summary> /// Write the failure message to the MessageWriter provided /// as an argument. The default implementation simply passes /// the result and the actual value to the writer, which /// then displays the constraint description and the value. /// /// Constraints that need to provide additional details, /// such as where the error occurred, can override this. /// </summary> /// <param name="writer">The MessageWriter on which to display the message</param> public virtual void WriteMessageTo(MessageWriter writer) { writer.DisplayDifferences(this); }
/// <summary> /// Write the failure message to the MessageWriter provided /// as an argument. The default implementation simply passes /// the result and the actual value to the writer, which /// then displays the constraint description and the value. /// /// Constraints that need to provide additional details, /// such as where the error occured can override this. /// </summary> /// <param name="writer">The MessageWriter on which to display the message</param> public virtual void WriteMessageTo(MessageWriter writer) { writer.DisplayDifferences(this); }
public override void WriteDescriptionTo(MessageWriter writer) { writer.DisplayDifferences(_expected, actual); }
// Overridden for a cleaner error message (contributed by @chiccodoro) public override void WriteMessageTo(MessageWriter writer) { writer.DisplayDifferences(this); }