public void Equals_WhenSecondDescendantsHaveSameValues_ReturnsTrue()
        {
            //Arrange
            var sut = new SecondDescendentValueObject();

            var match = new SecondDescendentValueObject();

            //Act
            bool matches = sut.Equals(match);

            //Assert
            Assert.IsTrue(matches);
        }
        public void Equals_WhenSecondDescendantsHasFirstDescendantMismatchValue_ReturnsFalse()
        {
            //Arrange
            var sut = new SecondDescendentValueObject();

            var match = new SecondDescendentValueObject();

            match.SetPrivateClassFieldToNotMatch();

            //Act
            bool matches = sut.Equals(match);

            //Assert
            Assert.IsTrue(matches);
        }
        public void Equals_WhenSecondDescendantsHasMismatchValue_ReturnsFalse()
        {
            //Arrange
            var sut = new SecondDescendentValueObject();

            var match = new SecondDescendentValueObject
            {
                Field = !sut.Field
            };

            //Act
            bool matches = sut.Equals(match);

            //Assert
            Assert.IsFalse(matches);
        }