public ReflectedObject(object o, LeafRegistry registry)
 {
     this.o = o;
     leafRegister = registry;
     if (o != null)
     {
         @class = new Class(o.GetType());
         @class.IgnoreClass(ignoredType);
         fields = new Fields(this.o);
     }
 }
        public void Parent_object_refers_to_two_objects___the_objects_havent_changed_but_the_reference_on_parent_has_changed()
        {
            ParentObjectForTest parentObjectForTest = new ParentObjectForTest();
            parentObjectForTest.ChildObjectForTest1 = new ChildObjectForTest(1);
            parentObjectForTest.ChildObjectForTest2 = new ChildObjectForTest(2);

            ParentObjectForTest clonedParent = new ParentObjectForTest();
            parentObjectForTest.ChildObjectForTest1 = new ChildObjectForTest(1);
            clonedParent.ChildObjectForTest2 = clonedParent.ChildObjectForTest1;

            LeafRegistry registry = new LeafRegistry();
            registry.IgnoreLeaf(typeof(MetaDataForTest));

            new ObjectComparer().Compare(parentObjectForTest, clonedParent, registry);
            Assert.AreEqual(Tristate.Eager, clonedParent.ComparisonStatus.State);
        }