static CompareResult Compare( string received, string verified, IReadOnlyDictionary <string, object> context, Action <IDiffingStrategyCollection>?action) { var builder = DiffBuilder.Compare(verified); builder.WithTest(received); if (action != null) { builder.WithOptions(action); } if (context.GetCompareSettings(out var innerSettings)) { builder.WithOptions(innerSettings.Action); } var diffs = builder.Build().ToList(); if (diffs.Any()) { var stringBuilder = new StringBuilder(Environment.NewLine); foreach (var diff in diffs) { DiffConverter.Append(diff, stringBuilder); } return(CompareResult.NotEqual(stringBuilder.ToString())); } return(CompareResult.Equal); }
public void Ensure_We_Can_Create_A_Diff_Coverter() { var converter = new DiffConverter(); var serializer = new JsonSerializer(); serializer.Converters.Add(converter); var reader = new JsonTextReader( new StringReader( "{'DocumentId':'70a2c689-302c-4c4d-93a2-dcc379ace44a','RevisionId':'b35e5f5a-2033-4773-9bb9-557d0732a8f1','Patches':[{'diffs':[[0,'test test'],[1,' test']],'start1':0,'start2':0,'length1':9,'length2':14}]}")); var req = serializer.Deserialize<DocumentEditRequest>(reader); Assert.That(req.DocumentId, Is.EqualTo("70a2c689-302c-4c4d-93a2-dcc379ace44a")); Assert.That(req.Patches.Count(), Is.EqualTo(1)); Assert.That(req.Patches[0].diffs.Count(), Is.EqualTo(2)); }
public static void HtmlEqual(string expected, string actual) { var diffs = DiffBuilder.Compare(expected).WithTest(actual).Build().ToArray(); if (diffs.Any()) { var sb = new StringBuilder(); sb.AppendLine("AssertEx.HtmlEqual() Failure"); foreach (var diff in diffs) { DiffConverter.Append(diff, sb); } throw new XunitException(sb.ToString()); } }