private bool GetDiffTest(string oldText, string newText) { var result = DiffLogic.GetDiff(oldText, newText); int diffCount = 0; foreach (var r in result) { if (r.DiffType == Definition.DIFF_TYPE.DIFF_ADD) { // ex.) // old : abc // ^ Insert before [1]st char => index = 0 // new : 1abc // oldText = oldText.Insert(r.OldDataIndex + diffCount, r.DiffObjcet.ToString()); diffCount += r.DiffObjcet.ToString().Length; } else if (r.DiffType == Definition.DIFF_TYPE.DIFF_DEL) { // ex.) // old : abc // ^ Delete [1]st char => index = 1 // new : bc // oldText = oldText.Remove(r.OldDataIndex - 1 + diffCount, r.DiffObjcet.ToString().Length); diffCount -= r.DiffObjcet.ToString().Length; } } return(newText == oldText); }
public void Diffing_EqualStrings() { // Testing data string left = Base64String.DecodeBase64String("AAAAAA=="); string right = Base64String.DecodeBase64String("AAAAAA=="); DiffData diff = new DiffData { Id = 1, LeftData = left, RightData = right }; // Expected result DiffResponse expected = new DiffResponse { DiffResultType = "Equals", Diffs = null }; // Actual result DiffLogic logic = new DiffLogic(); DiffResponse actual = logic.Diffing(diff); // Assert Assert.AreEqual(expected.DiffResultType, actual.DiffResultType); Assert.AreEqual(expected.Diffs, actual.Diffs); }
public void Diffing_DifferentStrings() { // Testing data string left = Base64String.DecodeBase64String("AAAAAA=="); string right = Base64String.DecodeBase64String("AQABAQ=="); DiffData diff = new DiffData { Id = 1, LeftData = left, RightData = right }; // Expected result List <Diff> diffs = new List <Diff> { new Diff { Offset = 0, Length = 1 }, new Diff { Offset = 2, Length = 2 } }; DiffResponse expected = new DiffResponse { DiffResultType = "ContentDoNotMatch", Diffs = diffs }; // Actual result DiffLogic logic = new DiffLogic(); DiffResponse actual = logic.Diffing(diff); // Assert Assert.AreEqual(expected.DiffResultType, actual.DiffResultType); Assert.AreEqual(expected.Diffs.Count, actual.Diffs.Count); int length = expected.Diffs.Count; for (int i = 0; i < length; i++) { Assert.AreEqual(expected.Diffs[i].Length, actual.Diffs[i].Length); Assert.AreEqual(expected.Diffs[i].Offset, actual.Diffs[i].Offset); } }
public DiffController() { diffLogic = new DiffLogic(); }