public void AddComparerByNameWhenNameEmpty(string memberName) { var valueComparer = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); Assert.Throws <ArgumentException>(() => collection.AddComparer(memberName, valueComparer)); }
public void AddComparerByTypeWhenTypeNull() { var valueComparer = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); Assert.Throws <ArgumentNullException>(() => collection.AddComparer((Type)null, valueComparer)); }
public void AddComparerByMemberInfoWhenComparerNull() { var memberInfo = Substitute.ForPartsOf <MemberInfo>(); var collection = new ComparerOverridesCollection(); Assert.Throws <ArgumentNullException>(() => collection.AddComparer(memberInfo, null)); }
public void AddComparerByMemberInfoWhenMemberNull() { var valueComparer = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); // ReSharper disable once RedundantCast Assert.Throws <ArgumentNullException>(() => collection.AddComparer((MemberInfo)null, valueComparer)); }
public void GetOverrideByNameComparerByMemberName() { var valueComparer = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer("Prop1", valueComparer); var valueComparerFromCollection = collection.GetComparer("Prop1"); Assert.AreEqual(valueComparer, valueComparerFromCollection); }
public void GetOverrideByTypeWhenNoComparerMatchCriteria() { var valueComparer1 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer(typeof(string), valueComparer1); var valueComparerFromCollection = collection.GetComparer(typeof(int)); Assert.IsNull(valueComparerFromCollection); }
public void GetOverrideByNameComparerByMemberNameWhenTwoComparersMatchCriteria() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer("Prop1", valueComparer1); collection.AddComparer("Prop1", valueComparer2); Assert.Throws <AmbiguousComparerOverrideResolutionException>(() => collection.GetComparer("Prop1")); }
public void AddComparerByMemberInfoWhenExists() { var memberInfo = Substitute.ForPartsOf <MemberInfo>(); var valueComparer = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer(memberInfo, valueComparer); var exception = Assert.Throws <ValueComparerExistsException>(() => collection.AddComparer(memberInfo, valueComparer)); Assert.AreEqual(memberInfo, exception.MemberInfo); }
public void GetOverrideByNameComparerByMemberNameWhenNoComparerMatchCriteria() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer("Prop1", valueComparer1, mi => false); collection.AddComparer("Prop1", valueComparer2, mi => false); var valueComparerFromCollection = collection.GetComparer("Prop1"); Assert.IsNull(valueComparerFromCollection); }
public void GetOverrideByTypeWhenAllComparersHaveFilters() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer(typeof(string), valueComparer1, mi => true); collection.AddComparer(typeof(string), valueComparer2, mi => true); var valueComparerFromCollection = collection.GetComparer(typeof(string)); Assert.IsNull(valueComparerFromCollection); }
public void GetOverrideByTypeWhenMoreThanOneComparerMatchCriteria() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer(typeof(string), valueComparer1); collection.AddComparer(typeof(string), valueComparer2); var exception = Assert.Throws <AmbiguousComparerOverrideResolutionException>(() => collection.GetComparer(typeof(string))); Assert.AreEqual(typeof(string), exception.Type); }
public void GetOverrideByTypeWhenOnlyOneComparerDoNotHaveFilter() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); collection.AddComparer(typeof(string), valueComparer1, mi => true); collection.AddComparer(typeof(string), valueComparer2); var valueComparerFromCollection = collection.GetComparer(typeof(string)); Assert.AreEqual(valueComparer2, valueComparerFromCollection); }
public void GetOverrideByTypeComparerByType() { var valueComparer = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); var memberInfo = Substitute.ForPartsOf <PropertyInfo>(); memberInfo.PropertyType.Returns(typeof(string)); collection.AddComparer(typeof(string), valueComparer); var valueComparerFromCollection = collection.GetComparer(typeof(string)); Assert.AreEqual(valueComparer, valueComparerFromCollection); }
public void GetOverrideByNameComparerByMemberInfoWhenTwoComparersMatchCriteria() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); var memberInfo = Substitute.ForPartsOf <PropertyInfo>(); memberInfo.PropertyType.Returns(typeof(string)); memberInfo.Name.Returns("Prop1"); collection.AddComparer("Prop1", valueComparer1); collection.AddComparer("Prop1", valueComparer2, mi => true); Assert.Throws <AmbiguousComparerOverrideResolutionException>(() => collection.GetComparer(memberInfo)); }
public void GetOverrideByNameComparerByMemberInfoWhenOneComparerMatchCriteria() { var valueComparer1 = Substitute.For <IValueComparer>(); var valueComparer2 = Substitute.For <IValueComparer>(); var collection = new ComparerOverridesCollection(); var memberInfo = Substitute.ForPartsOf <PropertyInfo>(); memberInfo.PropertyType.Returns(typeof(string)); memberInfo.Name.Returns("Prop1"); collection.AddComparer("Prop1", valueComparer1, mi => false); collection.AddComparer("Prop1", valueComparer2, mi => true); var valueComparerFromCollection = collection.GetComparer(memberInfo); Assert.AreEqual(valueComparer2, valueComparerFromCollection); }
public void GetComparerByMemberInfoWhenNotExists() { var memberInfo1 = Substitute.ForPartsOf <PropertyInfo>(); memberInfo1.PropertyType.Returns(typeof(string)); var valueComparer1 = Substitute.For <IValueComparer>(); var memberInfo2 = Substitute.ForPartsOf <PropertyInfo>(); memberInfo2.PropertyType.Returns(typeof(string)); var collection = new ComparerOverridesCollection(); collection.AddComparer(memberInfo1, valueComparer1); var valueComparer2FromCollection = collection.GetComparer(memberInfo2); Assert.IsNull(valueComparer2FromCollection); }
public void AddComparerByTypeWhenComparerNull() { var collection = new ComparerOverridesCollection(); Assert.Throws <ArgumentNullException>(() => collection.AddComparer(typeof(string), null)); }
public void AddComparerByNameWhenComparerNull() { var collection = new ComparerOverridesCollection(); Assert.Throws <ArgumentNullException>(() => collection.AddComparer("Name", null)); }
public void GetComparerByMemberNameWhenNull() { var collection = new ComparerOverridesCollection(); Assert.Throws <ArgumentNullException>(() => collection.GetComparer((string)null)); }