示例#1
0
        public static string List <T>(IList <T> expected, IList <T> actual)
        {
            expected ??= new T[0];
            var mx        = Math.Max(expected.Count, actual.Count);
            var serialize = new Func <T, string>(o => o == null ? "-" : JsonConvert.SerializeObject(o, Formatting.Indented));
            var sb        = new StringBuilder();

            for (int i = 0; i < mx; i++)
            {
                var a       = i >= actual.Count ? default(T) : actual[i];
                var e       = i >= expected.Count ? default(T) : expected[i];
                var c1      = serialize(e);
                var c2      = serialize(a);
                var c0      = LineByLineOutput.DiffTexts(c1, c2);
                var columns = new[] { c0, c1, c2 };
                var s       = LineByLineOutput.CombineLineByLine(" ", columns);
                if (string.IsNullOrEmpty(s))
                {
                    s = "-";
                }
                sb.AppendLine(s);
            }

            return(sb.ToString());
        }
示例#2
0
        public static string Text(string expected, string actual, Func <string, string> normalize = null)
        {
            var c1           = expected ?? "-";
            var c2           = actual ?? "-";
            var c1Normalized = normalize?.Invoke(c1) ?? c1;
            var c2Normalized = normalize?.Invoke(c2) ?? c2;
            var c0           = LineByLineOutput.DiffTexts(c1Normalized, c2Normalized);
            var columns      = new[] { c0, c1, c2 };
            var s            = LineByLineOutput.CombineLineByLine(" ", columns);

            if (string.IsNullOrEmpty(s))
            {
                s = "-";
            }
            return(s);
        }
示例#3
0
        public static string Json <T>(T expected, T actual)
        {
            var serialize =
                new Func <T, string>(o => o == null ? "-" : JsonConvert.SerializeObject(o, Formatting.Indented));

            var c1      = serialize(expected);
            var c2      = serialize(actual);
            var c0      = LineByLineOutput.DiffTexts(c1, c2);
            var columns = new[] { c0, c1, c2 };
            var s       = LineByLineOutput.CombineLineByLine(" ", columns);

            if (string.IsNullOrEmpty(s))
            {
                s = "-";
            }
            return(s);
        }