public IProperty CloneWithoutObject() { var prop = _property.CloneWithoutObject(); prop.SetObject(((ITypeExtension)_property.Object).CloneWithoutObject()); return(new ExtensionProperty(_objectType, prop)); }
static void CloneYieldsIndependentPropertiesWithSameObject(IProperty property, object o) { // Arrange property.SetObject(o); // Act IProperty clone = property.CloneWithoutObject(); // Assert Assert.AreNotSame(property, clone); Assert.AreSame(o, property.Object); Assert.IsNull(clone.Object); }
static void ClonedPropertyCanChangeObjectIndependently(IProperty property, object o1, object o2) { // Arrange property.SetObject(o1); // Act IProperty clone = property.CloneWithoutObject(); clone.SetObject(o2); // Assert Assert.AreSame(o1, property.Object); Assert.AreSame(o2, clone.Object); }