Exemple #1
0
 private static string ToTextDiff(Diff diff)
 {
     return(diff switch
     {
         TypeDiff typeDiff => ToTypeTextDiff(typeDiff),
         ValueDiff valueDiff => ToValueTypeTextDiff(valueDiff),
         ArrayDiff arrayDiff => ToArrayTextDiff(arrayDiff),
         ObjectDiff objectDiff => ToObjectTextDiff(objectDiff),
         _ => throw new Exception("Unknown diff type")
     });
Exemple #2
0
        public void TestItemsDiff()
        {
            var str1 = @"[ ""Dan Ingalls"", ""Alan Kay"" ]";
            var str2 = @"[ ""Adele Goldberg"", ""Dan Ingalls"", ""Alan Kay"" ]";

            var diff1 = JsonStrings.Diff(str1, str2).Single();

            Assert.True(diff1.IsArrayDiff);
            Assert.False(diff1.IsTypeDiff);
            Assert.False(diff1.IsValueDiff);
            Assert.False(diff1.IsObjectDiff);

            var diff2 = new ArrayDiff(
                new DiffPoint("$",
                              new JsonArray(
                                  new JsonValue[]
            {
                new JsonString("Dan Ingalls"),
                new JsonString("Alan Kay")
            }),
                              new JsonArray(
                                  new JsonValue[]
            {
                new JsonString("Adele Goldberg"),
                new JsonString("Dan Ingalls"),
                new JsonString("Alan Kay")
            })), new ItemMismatch[]
            {
                new RightOnlyItem(0, new JsonString("Adele Goldberg"))
            });

            Assert.True(diff2.IsArrayDiff);
            Assert.False(diff2.IsTypeDiff);
            Assert.False(diff2.IsValueDiff);
            Assert.False(diff2.IsObjectDiff);

            Assert.Equal(diff1, diff2);

            Assert.Equal("ArrayDiff { Path = $, Left = Array [2 items], Right = Array [3 items] }", diff1.ToString());
        }
Exemple #3
0
 public void TestArrayDiff(int[] result, int[] left, int[] right)
 {
     Assert.Equal(result, ArrayDiff.Diff(left, right));
 }
Exemple #4
0
 public void TestMethod1()
 {
     CollectionAssert.AreEqual(new int[] { 2 }, ArrayDiff.ArraysDiff(new int[] { 1, 2 }, new int[] { 1 }));
 }
Exemple #5
0
        public void TestItemsDiffEquality()
        {
            var diff = new ArrayDiff(
                new DiffPoint("$",
                              new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach"),
                new JsonString("Metamagical Themas")
            }),
                              new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach")
            })),
                new ItemMismatch[]
            {
                new LeftOnlyItem(1, new JsonString("Metamagical Themas"))
            });

            var sameDiff = new ArrayDiff(
                new DiffPoint("$",
                              new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach"),
                new JsonString("Metamagical Themas")
            }),
                              new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach")
            })),
                new ItemMismatch[]
            {
                new LeftOnlyItem(1, new JsonString("Metamagical Themas"))
            });

            var anotherDiff = new ArrayDiff(
                new DiffPoint("$.books",
                              new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach"),
                new JsonString("Metamagical Themas")
            }),
                              new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach")
            })),
                new ItemMismatch[]
            {
                new LeftOnlyItem(1, new JsonString("Metamagical Themas"))
            });

            var yetAnotherDiff =
                new ArrayDiff(
                    new DiffPoint("$",
                                  new JsonArray(new JsonValue[]
            {
                new JsonString("Gödel, Escher, Bach"),
                new JsonString("Metamagical Themas")
            }),
                                  new JsonArray(new JsonValue[]
            {
                new JsonString("Metamagical Themas")
            })),
                    new ItemMismatch[]
            {
                new LeftOnlyItem(0, new JsonString("Gödel, Escher, Bach"))
            });

            Assert.Equal(diff, sameDiff);
            Assert.NotEqual(diff, anotherDiff);
            Assert.NotEqual(diff, yetAnotherDiff);
            Assert.NotEqual(anotherDiff, yetAnotherDiff);
        }