public void TwoTypes_DifferentPropertyNames_DefaultEqualityComparer() { var firstToCompare = new FirstToCompare { AProperty = "Test" }; var secondToCompare = new SecondToCompare { CProperty = "Test" }; var comparisons = new List <PropertyComparison <FirstToCompare, SecondToCompare> > { new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.AProperty), nameof(secondToCompare.CProperty)) }; var differences = new ObjectComparer <FirstToCompare, SecondToCompare>(comparisons) .GetDifferences(firstToCompare, secondToCompare); Assert.IsFalse(differences.Any()); }
public void TwoTypes_GetDifferences_ReturnsNoDifferences() { var firstToCompare = new FirstToCompare { AProperty = "Test", BProperty = 5000 }; var secondToCompare = new SecondToCompare { AProperty = "Test", BProperty = 5000 }; var comparisons = new List <PropertyComparison <FirstToCompare, SecondToCompare> > { new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.AProperty)), new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.BProperty)) }; var differences = new ObjectComparer <FirstToCompare, SecondToCompare>(comparisons) .GetDifferences(firstToCompare, secondToCompare); Assert.IsFalse(differences.Any()); }
public void TwoTypes_GetDifferences_ReturnsDifferences() { var firstToCompare = new FirstToCompare { AProperty = "Test", BProperty = 1 }; var secondToCompare = new SecondToCompare { AProperty = "Test", BProperty = 5000 }; var comparisons = new List <PropertyComparison <FirstToCompare, SecondToCompare> > { new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.AProperty)), new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.BProperty)) }; var differences = new ObjectComparer <FirstToCompare, SecondToCompare>(comparisons) .GetDifferences(firstToCompare, secondToCompare); Assert.AreEqual(1, differences.Count()); Assert.AreEqual(differences.First().FirstPropertyName, nameof(FirstToCompare.BProperty)); }
public void TwoTypes_NewIncludingOnlyDifferences_ReturnsNewOfSpecifiedType() { var firstToCompare = new FirstToCompare { AProperty = "Test", BProperty = 1 }; var secondToCompare = new SecondToCompare { AProperty = "Test", BProperty = 5000 }; var comparisons = new List <PropertyComparison <FirstToCompare, SecondToCompare> > { new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.AProperty)), new PropertyComparison <FirstToCompare, SecondToCompare>( nameof(firstToCompare.BProperty)) }; var newInstance = new ObjectComparer <FirstToCompare, SecondToCompare>(comparisons) .NewIncludingOnlyDifferences <FirstToCompare>(firstToCompare, secondToCompare); Assert.IsInstanceOfType(newInstance, typeof(FirstToCompare)); Assert.IsNull(newInstance.AProperty); Assert.AreEqual(newInstance.BProperty, 1); }