public void ShouldServeAsNonGenericIEqualityComparer() { Sample1 obj1 = new Sample1(); EqualityHelper <Sample1> helper = new EqualityHelper <Sample1>(); helper.Add(x => x.IntProp); helper.Add(x => x.StringProp); var hash = new Hashtable(helper); hash.Add(new Sample1() { IntProp = 2, StringProp = "asd" }, "doesn't matter"); hash.ContainsKey(new Sample1() { IntProp = 2, StringProp = "asd" }).Should().Be.True(); hash.ContainsKey(new Sample1() { IntProp = 3, StringProp = "asd" }).Should().Be.False(); }
public void TestBasicTypesEqualityInner() { Sample1 obj1 = new Sample1(); Sample1 obj2 = new Sample1(); EqualityHelper helper = new EqualityHelper(obj1); helper.Add((Sample1 x) => x.IntProp); helper.Add((Sample1 x) => x.StringProp); helper.ObjectEquals(obj2).Should().Be.True(); obj1.IntProp = obj2.IntProp = 42; helper.ObjectEquals(obj2).Should().Be.True(); helper.ObjectGetHashCode(obj2).Should().Be(helper.ObjectGetHashCode()); obj1.StringProp = "A"; helper.ObjectEquals(obj2).Should().Be.False(); obj2.StringProp = "B"; helper.ObjectEquals(obj2).Should().Be.False(); obj1.StringProp = "B"; helper.ObjectEquals(obj2).Should().Be.True(); helper.ObjectGetHashCode(obj2).Should().Be(helper.ObjectGetHashCode()); }
public void TestBasicTypesEqualityOuterUsingPrivateFields() { Sample5 obj1 = new Sample5(); Sample5 obj2 = new Sample5(); EqualityHelper helper = new EqualityHelper(typeof(Sample5)); helper.Add("IntProp").Add("StringProp"); helper.ObjectEquals(obj1, obj2).Should().Be.True(); }
public void TestBasicTypesEqualityOuterUsingPrivateProperties() { Sample4 obj1 = new Sample4(); Sample4 obj2 = new Sample4(); EqualityHelper helper = new EqualityHelper <Sample4>(); helper.Add("IntProp").Add("StringProp"); helper.ObjectEquals(obj1, obj2).Should().Be.True(); }
public void TestBasicTypesEqualityOuterWithCustomComparer() { Sample1 obj1 = new Sample1(); Sample1 obj2 = new Sample1(); var helper = new EqualityHelper <Sample1>(); helper.Add(x => x.StringProp, StringComparer.InvariantCultureIgnoreCase); helper.ObjectEquals(obj1, obj2).Should().Be.True(); obj1.StringProp = "A"; helper.ObjectEquals(obj1, obj2).Should().Be.False(); obj2.StringProp = "A"; helper.ObjectEquals(obj1, obj2).Should().Be.True(); obj1.StringProp = "a"; helper.ObjectEquals(obj1, obj2).Should().Be.True(); helper.ObjectGetHashCode(obj2).Should().Be(helper.ObjectGetHashCode(obj1)); }