// -------------------------------------------------------------------------------------------------------------------------- private static void TestDiffGram <T>(DiffGram <T> diff, bool expectedSame, int expectedSameCount, int expectedUniqueLeft, int expectedUniqueRight) { Assert.AreEqual(expectedSame, diff.AllAreSame, "The 'AllMatching' flag should be set to '{0}'", expectedSame); Assert.AreEqual(expectedSameCount, diff.Same.Count, "All items should be the same!"); Assert.AreEqual(expectedUniqueLeft, diff.UniqueLeft.Count, "There should be no unique items on the left!"); Assert.AreEqual(expectedUniqueRight, diff.UniqueRight.Count, "There should be no unique items on the right!"); }
public void CanComputeSameDiffgram() { List <string> left; List <string> right; CreateStringLists(out left, out right); DiffGram <string> diff = IEnumHelper.ComputeDiff(left, right); TestDiffGram(diff, true, left.Count, 0, 0); }
public void CanFindLeftDiffs() { List <int> left; List <int> right; CreateIntLists(out left, out right); left.AddRange(new[] { 5, 6, 7 }); DiffGram <int> diff = IEnumHelper.ComputeDiff(left, right); TestDiffGram(diff, false, 3, 3, 0); }
public void CanFindMixedDiffs() { List <string> left; List <string> right; CreateStringLists(out left, out right); left.AddRange(new[] { "l1", "l2", "l3" }); right.AddRange(new[] { "r1", "r2", "r3" }); DiffGram <string> diff = IEnumHelper.ComputeDiff(left, right); TestDiffGram(diff, false, 3, 3, 3); }
public void CanFindAllDiffs() { List <string> left = new List <string>() { "a", "b", "c" }; List <string> right = new List <string>() { "d", "e", "f" }; DiffGram <string> diff = IEnumHelper.ComputeDiff(left, right); TestDiffGram(diff, false, 0, 3, 3); }
protected virtual void TrackChangesToEntity(RowInfo rowInfo) { if (!rowInfo.dbSetInfo.isTrackChanges) { return; } try { string diffgram = DiffGram.GetDiffGram(rowInfo.changeState.OriginalEntity, rowInfo.changeState.Entity, rowInfo.dbSetInfo.EntityType, rowInfo.changeState.NamesOfChangedFields); this.OnTrackChange(rowInfo.dbSetInfo.dbSetName, rowInfo.changeType, diffgram); } catch (Exception ex) { this.OnError(ex); } }
protected virtual void TrackChangesToEntity(RowInfo rowInfo) { if (!rowInfo.dbSetInfo.isTrackChanges) { return; } try { string[] changed = rowInfo.changeType == ChangeType.Deleted ? rowInfo.dbSetInfo.GetNames().Select(f => f.n).ToArray() : rowInfo.changeState.NamesOfChangedFields; var diffgram = DiffGram.GetDiffGram(rowInfo.changeState.OriginalEntity, rowInfo.changeType == ChangeType.Deleted ? null : rowInfo.changeState.Entity, rowInfo.dbSetInfo.EntityType, changed); OnTrackChange(rowInfo.dbSetInfo.dbSetName, rowInfo.changeType, diffgram); } catch (Exception ex) { _OnError(ex); } }
protected virtual void TrackChangesToEntity(RowInfo rowInfo) { DbSetInfo dbSetInfo = rowInfo.GetDbSetInfo(); if (!dbSetInfo.GetIsTrackChanges()) { return; } try { string[] changed = new string[0]; switch (rowInfo.changeType) { case ChangeType.Updated: { changed = rowInfo.GetChangeState().ChangedFieldNames; } break; default: { changed = dbSetInfo.GetNames().Select(f => f.n).ToArray(); } break; } string[] pknames = dbSetInfo.GetPKFields().Select(f => f.fieldName).ToArray(); string diffgram = DiffGram.GetDiffGram(rowInfo.GetChangeState().OriginalEntity, rowInfo.changeType == ChangeType.Deleted ? null : rowInfo.GetChangeState().Entity, dbSetInfo.GetEntityType(), changed, pknames, rowInfo.changeType, dbSetInfo.dbSetName); OnTrackChange(dbSetInfo.dbSetName, rowInfo.changeType, diffgram); } catch (Exception ex) { _OnError(ex); } }