public void ComputeDiff_Should_Throw_ArgumentException_If_NewEnumerable_Contains_Duplicate_Keys() { // Arrange String value = "a"; List <String> oldEnumerable = new List <String>(); List <String> newEnumerable = new List <String>() { value, value }; var testClass = new EnumerableDiffDerivedTest <String, Int32, String>( getKey: s => s, onRecordAdded: null, onRecordRemoved: null, onRecordChanged: null, onRecordUnchanged: null ); // Act var result = Record.Exception(() => testClass.ComputeDiff(oldEnumerable, newEnumerable).ToArray()); // Assert Assert.NotNull(result); Assert.Equal(result.GetType(), typeof(ArgumentException)); }
public void ComputeDiff_Should_Add_New_Records_To_Output_When_OnRecordAdded_Not_Null() { // Arrange String newRecord = "a"; List <String> oldEnumerable = new List <String>(); List <String> newEnumerable = new List <String>() { newRecord }; var testClass = new EnumerableDiffDerivedTest <String, Int32, String>( getKey: s => s, onRecordAdded: s => s.GetHashCode(), onRecordRemoved: null, onRecordChanged: null, onRecordUnchanged: null ); // Act var result = testClass.ComputeDiff(oldEnumerable, newEnumerable).ToArray(); // Assert Assert.Equal(1, result.Count()); Assert.Equal(newRecord.GetHashCode(), result.First()); }
public void ComputeDiff_Should_Not_Add_Unchanged_Records_To_Output_When_OnRecordUnchanged_Is_Null() { // Arrange var oldRecord = new Tuple <String, Int32>("a", 0); var newRecord = new Tuple <String, Int32>("a", 0); var oldEnumerable = new List <Tuple <String, Int32> >() { oldRecord }; var newEnumerable = new List <Tuple <String, Int32> >() { newRecord }; var testClass = new EnumerableDiffDerivedTest <Tuple <String, Int32>, Tuple <String, Int32>, String>( getKey: s => s.Item1, onRecordAdded: null, onRecordRemoved: null, onRecordChanged: null, onRecordUnchanged: null ); // Act var result = testClass.ComputeDiff(oldEnumerable, newEnumerable).ToArray(); // Assert Assert.Equal(0, result.Count()); }