public void PropertiesBasic() { var propertiesType = this._assembly.GetType("AssemblyToProcess.Basic.Properties"); var propertiesInstance = (dynamic) Activator.CreateInstance(propertiesType); PropertyExtensions.SetPrivatePropertyValue( propertiesInstance, "BackedProperty", 1.23); PropertyExtensions.SetPrivatePropertyValue( propertiesInstance, "PrivateProperty", 123); propertiesType.GetProperty("PublicProperty").SetValue(propertiesInstance, "I'm public."); // Hand copy. var hCopy = propertiesInstance.HCopy(); var hGetter = new ObjectGetter(propertiesType, hCopy); Assert.Equal(1.23, hGetter.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, hGetter.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", hGetter.PropertyValue("PublicProperty")); // Deep copy. var dCopy = propertiesInstance.DeepCopy(); var dGetter = new ObjectGetter(propertiesType, dCopy); Assert.Equal(1.23, dGetter.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, dGetter.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", dGetter.PropertyValue("PublicProperty")); }
public void PropertiesBasic() { var propertiesType = this._assembly.GetType("AssemblyToProcess.Basic.Properties"); var propertiesInstance = (dynamic)Activator.CreateInstance(propertiesType); PropertyExtensions.SetPrivatePropertyValue( propertiesInstance, "BackedProperty", 1.23); PropertyExtensions.SetPrivatePropertyValue( propertiesInstance, "PrivateProperty", 123); propertiesType.GetProperty("PublicProperty").SetValue(propertiesInstance, "I'm public."); // Hand copy. var hCopy = propertiesInstance.HCopy(); var hGetter = new ObjectGetter(propertiesType, hCopy); Assert.Equal(1.23, hGetter.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, hGetter.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", hGetter.PropertyValue("PublicProperty")); // Deep copy. var dCopy = propertiesInstance.DeepCopy(); var dGetter = new ObjectGetter(propertiesType, dCopy); Assert.Equal(1.23, dGetter.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, dGetter.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", dGetter.PropertyValue("PublicProperty")); }
public void ObjectInheritanceTest() { var inheritsAbstractType = this._assembly.GetType("AssemblyToProcess.Abstracts.InheritsAbstract"); var inheritsAbstractInstance = (dynamic)Activator.CreateInstance(inheritsAbstractType); inheritsAbstractType.GetField("MainObject").SetValue(inheritsAbstractInstance, "main obj"); inheritsAbstractType.GetProperty("InterfaceProperty").SetValue(inheritsAbstractInstance, 123); // Hand copy. var hCopy = inheritsAbstractInstance.HCopy(); var hGet = new ObjectGetter(inheritsAbstractType, hCopy); Assert.Equal("main obj", hGet.FieldValue("MainObject")); Assert.Equal(123, hGet.PropertyValue("InterfaceProperty")); // Deep copy. var dCopy = inheritsAbstractInstance.DeepCopy(); var dGet = new ObjectGetter(inheritsAbstractType, dCopy); Assert.Equal("main obj", dGet.FieldValue("MainObject")); Assert.Equal(123, dGet.PropertyValue("InterfaceProperty")); }
public void ObjectInheritanceTest() { var inheritsAbstractType = this._assembly.GetType("AssemblyToProcess.Abstracts.InheritsAbstract"); var inheritsAbstractInstance = (dynamic) Activator.CreateInstance(inheritsAbstractType); inheritsAbstractType.GetField("MainObject").SetValue(inheritsAbstractInstance, "main obj"); inheritsAbstractType.GetProperty("InterfaceProperty").SetValue(inheritsAbstractInstance, 123); // Hand copy. var hCopy = inheritsAbstractInstance.HCopy(); var hGet = new ObjectGetter(inheritsAbstractType, hCopy); Assert.Equal("main obj", hGet.FieldValue("MainObject")); Assert.Equal(123, hGet.PropertyValue("InterfaceProperty")); // Deep copy. var dCopy = inheritsAbstractInstance.DeepCopy(); var dGet = new ObjectGetter(inheritsAbstractType, dCopy); Assert.Equal("main obj", dGet.FieldValue("MainObject")); Assert.Equal(123, dGet.PropertyValue("InterfaceProperty")); }
public void Tests() { var propT = this._assembly.GetType("AssemblyToProcess.Basic.Properties"); var propI = (dynamic)Activator.CreateInstance(propT); PropertyExtensions.SetPrivatePropertyValue(propI, "BackedProperty", 1.23); PropertyExtensions.SetPrivatePropertyValue(propI, "PrivateProperty", 123); propT.GetProperty("PublicProperty").SetValue(propI, "I'm public."); var typicalIT = this._assembly.GetType("AssemblyToProcess.Inherits.TypicalInheritance"); var typicalII = (dynamic)Activator.CreateInstance(typicalIT); typicalIT.GetField("Properties").SetValue(typicalII, propI); // Hand copy. var hCopy = typicalII.HCopy(); var hGet = new ObjectGetter(typicalIT, hCopy); var fValue = hGet.FieldValue("Properties"); hGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, hGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(0, hGet.PrivatePropertyValue("PrivateProperty")); // Won't copy since it's private. Assert.Equal("I'm public.", hGet.PropertyValue("PublicProperty")); // Deep copy. var dCopy = typicalII.DeepCopy(); var dGet = new ObjectGetter(typicalIT, dCopy); fValue = dGet.FieldValue("Properties"); dGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, dGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, dGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", dGet.PropertyValue("PublicProperty")); // Bad copy. var bCopy = typicalII.BCopy(); var bGet = new ObjectGetter(typicalIT, bCopy); fValue = bGet.FieldValue("Properties"); bGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, bGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, bGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", bGet.PropertyValue("PublicProperty")); // Modify. PropertyExtensions.SetPrivatePropertyValue(propI, "BackedProperty", 2.34); PropertyExtensions.SetPrivatePropertyValue(propI, "PrivateProperty", 234); propT.GetProperty("PublicProperty").SetValue(propI, "I'm changed!"); typicalIT.GetField("Properties").SetValue(typicalII, propI); // Hand copy. hGet = new ObjectGetter(typicalIT, hCopy); fValue = hGet.FieldValue("Properties"); hGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, hGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(0, hGet.PrivatePropertyValue("PrivateProperty")); // Won't copy since it's private. Assert.Equal("I'm public.", hGet.PropertyValue("PublicProperty")); // Deep copy. dGet = new ObjectGetter(typicalIT, dCopy); fValue = dGet.FieldValue("Properties"); dGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, dGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, dGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", dGet.PropertyValue("PublicProperty")); // Bad copy. bGet = new ObjectGetter(typicalIT, bCopy); fValue = bGet.FieldValue("Properties"); bGet = new ObjectGetter(propT, fValue); Assert.Equal(2.34, bGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(234, bGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm changed!", bGet.PropertyValue("PublicProperty")); }
public void Tests() { var propT = this._assembly.GetType("AssemblyToProcess.Basic.Properties"); var propI = (dynamic) Activator.CreateInstance(propT); PropertyExtensions.SetPrivatePropertyValue(propI, "BackedProperty", 1.23); PropertyExtensions.SetPrivatePropertyValue(propI, "PrivateProperty", 123); propT.GetProperty("PublicProperty").SetValue(propI, "I'm public."); var typicalIT = this._assembly.GetType("AssemblyToProcess.Inherits.TypicalInheritance"); var typicalII = (dynamic) Activator.CreateInstance(typicalIT); typicalIT.GetField("Properties").SetValue(typicalII, propI); // Hand copy. var hCopy = typicalII.HCopy(); var hGet = new ObjectGetter(typicalIT, hCopy); var fValue = hGet.FieldValue("Properties"); hGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, hGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(0, hGet.PrivatePropertyValue("PrivateProperty")); // Won't copy since it's private. Assert.Equal("I'm public.", hGet.PropertyValue("PublicProperty")); // Deep copy. var dCopy = typicalII.DeepCopy(); var dGet = new ObjectGetter(typicalIT, dCopy); fValue = dGet.FieldValue("Properties"); dGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, dGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, dGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", dGet.PropertyValue("PublicProperty")); // Bad copy. var bCopy = typicalII.BCopy(); var bGet = new ObjectGetter(typicalIT, bCopy); fValue = bGet.FieldValue("Properties"); bGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, bGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, bGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", bGet.PropertyValue("PublicProperty")); // Modify. PropertyExtensions.SetPrivatePropertyValue(propI, "BackedProperty", 2.34); PropertyExtensions.SetPrivatePropertyValue(propI, "PrivateProperty", 234); propT.GetProperty("PublicProperty").SetValue(propI, "I'm changed!"); typicalIT.GetField("Properties").SetValue(typicalII, propI); // Hand copy. hGet = new ObjectGetter(typicalIT, hCopy); fValue = hGet.FieldValue("Properties"); hGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, hGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(0, hGet.PrivatePropertyValue("PrivateProperty")); // Won't copy since it's private. Assert.Equal("I'm public.", hGet.PropertyValue("PublicProperty")); // Deep copy. dGet = new ObjectGetter(typicalIT, dCopy); fValue = dGet.FieldValue("Properties"); dGet = new ObjectGetter(propT, fValue); Assert.Equal(1.23, dGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(123, dGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm public.", dGet.PropertyValue("PublicProperty")); // Bad copy. bGet = new ObjectGetter(typicalIT, bCopy); fValue = bGet.FieldValue("Properties"); bGet = new ObjectGetter(propT, fValue); Assert.Equal(2.34, bGet.PrivatePropertyValue("BackedProperty")); Assert.Equal(234, bGet.PrivatePropertyValue("PrivateProperty")); Assert.Equal("I'm changed!", bGet.PropertyValue("PublicProperty")); }