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") });
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()); }
public void TestArrayDiff(int[] result, int[] left, int[] right) { Assert.Equal(result, ArrayDiff.Diff(left, right)); }
public void TestMethod1() { CollectionAssert.AreEqual(new int[] { 2 }, ArrayDiff.ArraysDiff(new int[] { 1, 2 }, new int[] { 1 })); }
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); }