public void TestAllPublic() { ImplicitPublicPOCO foo = new ImplicitPublicPOCO { ImplicitField = 101, ExplicitNonPublic = 102, IgnoreDirect = 103, IgnoreIndirect = 104, ImplicitNonPublic = 105, ImplicitProperty = 106 }; Assert.AreEqual(101, foo.ImplicitField, "ImplicitField: pre"); Assert.AreEqual(102, foo.ExplicitNonPublic, "ExplicitNonPublic: pre"); Assert.AreEqual(103, foo.IgnoreDirect, "IgnoreDirect: pre"); Assert.AreEqual(104, foo.IgnoreIndirect, "IgnoreIndirect: pre"); Assert.AreEqual(105, foo.ImplicitNonPublic, "ImplicitNonPublic: pre"); Assert.AreEqual(106, foo.ImplicitProperty, "ImplicitProperty: pre"); ImplicitPublicPOCO bar = Serializer.DeepClone(foo); Assert.AreEqual(101, bar.ImplicitField, "ImplicitField: post"); Assert.AreEqual(102, bar.ExplicitNonPublic, "ExplicitNonPublic: post"); Assert.AreEqual(0, bar.IgnoreDirect, "IgnoreDirect: post"); Assert.AreEqual(0, bar.IgnoreIndirect, "IgnoreIndirect: post"); Assert.AreEqual(0, bar.ImplicitNonPublic, "ImplicitNonPublic: post"); Assert.AreEqual(106, bar.ImplicitProperty, "ImplicitProperty: post"); ImplicitPublicPOCOEquiv equiv = Serializer.ChangeType <ImplicitPublicPOCO, ImplicitPublicPOCOEquiv>(foo); Assert.AreEqual(101, equiv.ImplicitField, "ImplicitField: equiv"); Assert.AreEqual(102, equiv.ExplicitNonPublic, "ExplicitNonPublic: equiv"); Assert.AreEqual(106, equiv.ImplicitProperty, "ImplicitProperty: equiv"); }