Exemple #1
0
        public void CompositeCompare()
        {
            var bike = new Bicycle
            {
                Name       = "Lightning",
                FrontWheel = new Wheel {
                    Brand = "Dunlop"
                },
                RearWheel = new Wheel {
                    Brand = "Michelin"
                }
            };

            var clone = bike.Clone(deep: true); // deep clone!

            Assert.AreNotSame(bike, clone);
            Assert.AreNotSame(bike.FrontWheel, clone.FrontWheel);
            Assert.AreNotSame(bike.RearWheel, clone.RearWheel);

            // compare the whole bike with the clone including wheels
            Assert.IsTrue(bike.EqualsByValue(clone));

            clone.FrontWheel.Brand = "Noname";
            Assert.IsFalse(bike.EqualsByValue(clone));
        }