public void SChainedComparer_CompareS() { var subject = new PropertySEqualizer(); Assert.That(subject.Equals(_a, new EqualitySubject { S = "A" }), Is.True); Assert.That(subject.Equals(_a, _b), Is.False); }
public void Inheritors_DoNotHaveToCareAboutNulls() { var notNull = new EqualitySubject { S = "A" }; var chainable = new PropertySEqualizer(); Assert.That(chainable.Equals(notNull, null), Is.False); Assert.That(chainable.Equals(null, notNull), Is.False); Assert.That(chainable.Equals(null, null), Is.True); }
public void Explore() { PropertySEqualizer inheritor = new PropertySEqualizer(); Assert.That(inheritor, Is.InstanceOf <IEqualityComparer <EqualitySubject> >(), "is a proper comparer"); EqualitySubject one = new EqualitySubject("1", 1, 1m), two = new EqualitySubject("1", 2, 2m); Assert.That(inheritor.Equals(one, two), Is.True, "x.S == y.S"); Assert.That(inheritor.GetHashCode(one), Is.EqualTo(one.S.GetHashCode())); ChainableEqualizer <EqualitySubject> chained = inheritor.Then(new PropertyIEqualizer()); Assert.That(one, Is.Not.EqualTo(two).Using(chained), "x.I != y.I"); }