public void BaseValueObject_ShouldBeNotEqualToDerived() { var baseAddress = new Address("123", "Line 1", "Fooburg"); var derivedAddress = new DerivedAddress("123", "Line 1", "Fooburg", "Ontario"); Assert.AreNotEqual(baseAddress, derivedAddress, "base equals derived"); Assert.AreNotEqual(derivedAddress, baseAddress, "derived equals base"); }
public void DerivedValueObjectsWithSameValues_ShouldBeEqual() { var derivedAddress1 = new DerivedAddress("123", "Line 1", "Fooburg", "Ontario"); var derivedAddress2 = new DerivedAddress("123", "Line 1", "Fooburg", "Ontario"); Assert.AreEqual(derivedAddress1, derivedAddress2, "derived1 not equals derived2"); Assert.AreEqual(derivedAddress2, derivedAddress1, "derived2 not equals derived1"); Assert.IsTrue(EqualsAsBase(derivedAddress1, derivedAddress2), "not equals as base"); bool EqualsAsBase(Address x, Address y) => x.Equals(y) && y.Equals(x); }
public void DerivedValueObjectsWithDifferentValues_ShouldBeNotEqual() { var derivedAddress1 = new DerivedAddress("123", "Line 1", "Fooburg", "Ontario"); var derivedAddress2 = new DerivedAddress("123", "Line 1", "Fooburg", "Alberta"); Assert.AreNotEqual(derivedAddress1, derivedAddress2, "derived1 equals derived2"); Assert.AreNotEqual(derivedAddress2, derivedAddress1, "derived2 equals derived1"); Assert.IsFalse(EqualsAsBase(derivedAddress1, derivedAddress2), "equals as base"); bool EqualsAsBase(Address x, Address y) => x.Equals(y) || y.Equals(x); }