public void SetUp() { _comparer = new Comparer(new ComparisonSettings { UseDefaultIfMemberNotExist = true }); //Some fields should be ignored _comparer.AddComparerOverride("ConnectionString", DoNotCompareValueComparer.Instance); _comparer.AddComparerOverride("Email", DoNotCompareValueComparer.Instance); _comparer.AddComparerOverride("Notifications", DoNotCompareValueComparer.Instance); //Smart Modes are disabled by default. These fields are not case sensitive var disabledByDefaultComparer = new DefaultValueValueComparer <string>("Disabled", IgnoreCaseStringsValueComparer.Instance); _comparer.AddComparerOverride("SmartMode1", disabledByDefaultComparer); _comparer.AddComparerOverride("SmartMode2", disabledByDefaultComparer); _comparer.AddComparerOverride("SmartMode3", disabledByDefaultComparer); //http prefix in URLs should be ignored var urlComparer = new DynamicValueComparer <string>( (url1, url2, settings) => url1.Trim('/').Replace(@"http://", string.Empty) == url2.Trim('/').Replace(@"http://", string.Empty)); _comparer.AddComparerOverride("SomeUrl", urlComparer); _comparer.AddComparerOverride("SomeOtherUrl", urlComparer); //DataCompression is Off by default. _comparer.AddComparerOverride("DataCompression", new DefaultValueValueComparer <string>("Off", NulableStringsValueComparer.Instance)); //ProcessTaskTimeout and TotalProcessTimeout fields have default values. _comparer.AddComparerOverride("ProcessTaskTimeout", new DefaultValueValueComparer <long>(100, DefaultValueComparer.Instance)); _comparer.AddComparerOverride("TotalProcessTimeout", new DefaultValueValueComparer <long>(500, DefaultValueComparer.Instance)); }
public void CompareSecondArgumentNullNotValueType() { var comparer = new DynamicValueComparer <string>((s1, s2, settings) => s1 == s2, s => s); var result = comparer.Compare("23", null, new ComparisonSettings()); Assert.IsFalse(result); }
public void CompareWithDefaultToString(string str1, string str2, bool expectedResult) { var comparer = new DynamicValueComparer <string>((s1, s2, settings) => s1.Length == s2.Length); var result = comparer.Compare(str1, str2, new ComparisonSettings()); var toString = comparer.ToString(str1); Assert.AreEqual(expectedResult, result); Assert.AreEqual(str1, toString); }
public void NulableType() { DateTime?dt1 = null; DateTime?dt2 = null; var dateComparer = new DynamicValueComparer <DateTime?> ((date1, date2, settings) => date1 == date2 || (date1 != null && date2 != null && date1.Value.Date == date2.Value.Date)); var comparer = new Comparer <DateTime?>(); comparer.AddComparerOverride <DateTime?>(dateComparer); var result = comparer.Compare(dt1, dt2); Assert.IsTrue(result); }
public void CompareSecondArgumentNullValueType() { var comparer = new DynamicValueComparer <int>((i1, i2, settings) => i1 == i2, i => i.ToString()); Assert.Throws <ArgumentException>(() => comparer.Compare(23, null, new ComparisonSettings())); }
public void CompareWrongSecondArgument() { var comparer = new DynamicValueComparer <string>((s1, s2, settings) => true, s => s); Assert.Throws <ArgumentException>(() => comparer.Compare("25", 25, new ComparisonSettings())); }