private HierarchyDomain CreateReferenceLoop()
        {
            var firstNode = new HierarchyDomain { Name = "First" };
            var secondNode = new HierarchyDomain { Name = "Second" };

            firstNode.ChildNode = secondNode;
            secondNode.ChildNode = firstNode;

            return firstNode;
        }
        public void ThenShouldFailWhenExpressionRuleAndNestedPropertyDiffers()
        {
            var comparator = new ObjectComparator<HierarchyDomain>();
            comparator
                .Property(x => x.Name)
                .Ignore();

            var objA = new HierarchyDomain
            {
                Name = "AAA",
                ChildNode = new HierarchyDomain
                {
                    Name = "BBB"
                }
            };

            var objB = new HierarchyDomain
            {
                Name = "AAA",
                ChildNode = new HierarchyDomain
                {
                    Name = "CCC"
                }
            };

            var result = comparator.Compare(objA, objB);
            result.AreSame.Should().BeFalse();
            result.Differences.Single().PropertyPath.Should().Be("ChildNode.Name");
        }