public void TestWeHaveSomeBeforeAndSomeAfter() { var partitionBefore = new ReaderPartition <int>(); var dt1 = DateTime.UtcNow; var dt2 = DateTime.UtcNow.AddMinutes(1); var dt3 = DateTime.UtcNow.AddMinutes(2); var readerRow1 = new ReaderRow <int>("1", dt1, 1); var readerRow2 = new ReaderRow <int>("2", dt2, 2); partitionBefore.Init(new [] { readerRow1, readerRow2 }); var readerRow3 = new ReaderRow <int>("3", dt3, 3); var partitionAfter = new ReaderPartition <int>(); partitionAfter.Init(new[] { readerRow2, readerRow3 }); var result = partitionBefore.FindTheDifference(partitionAfter).ToList(); Assert.AreEqual(2, result.Count); var insertedEntity = result.FirstOrDefault(itm => itm.Item1 == RowOperationResult.Insert); Assert.AreEqual(3, insertedEntity.Item2); var deletedEntity = result.FirstOrDefault(itm => itm.Item1 == RowOperationResult.Delete); Assert.AreEqual(1, deletedEntity.Item2); }
public void TestWeHaveARowBeforeAndEmptyAfter() { var partitionBefore = new ReaderPartition <int>(); var partitionAfter = new ReaderPartition <int>(); var readerRow = new ReaderRow <int>("TestRow", DateTime.UtcNow, 0); partitionBefore.Init(new [] { readerRow }); var result = partitionBefore.FindTheDifference(partitionAfter).ToList(); Assert.AreEqual(RowOperationResult.Delete, result[0].Item1); Assert.AreEqual(1, result.Count); }
public static IEnumerable <(RowOperationResult, T)> FindTheDifference <T>(this ReaderPartition <T> before, ReaderPartition <T> now) { if (before == null)