示例#1
0
        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));
        }
示例#3
0
        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());
            }
        }