Exemple #1
0
        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");
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }