public void MakeFastPropertySetter_SetsPropertyValues_ForOverridenProperties() { // Arrange var instance = new DerivedClassWithOverride(); var typeInfo = instance.GetType().GetTypeInfo(); var property = typeInfo.GetDeclaredProperty("PropA"); var propertySetter = PropertyHelper.MakeFastPropertySetter(property); // Act propertySetter(instance, "Test value"); // Assert Assert.Equal("OverridenTest value", instance.PropA); }
public void PropertyHelper_ForDerived_WithVirtual() { // Arrange var derived = new DerivedClassWithOverride { PropA = "propAValue", PropB = "propBValue" }; // Act var helpers = PropertyHelper.GetProperties(derived).ToArray(); // Assert Assert.NotNull(helpers); Assert.Equal(2, helpers.Length); var propAHelper = Assert.Single(helpers.Where(h => h.Name == "PropA")); var propBHelper = Assert.Single(helpers.Where(h => h.Name == "PropB")); Assert.Equal("OverridenpropAValue", propAHelper.GetValue(derived)); Assert.Equal("propBValue", propBHelper.GetValue(derived)); }
public void PropertyHelperForDerivedWithVirtual() { // Arrange object derived = new DerivedClassWithOverride { PropA = "propAValue", PropB = "propBValue" }; // Act PropertyHelper[] helpers = PropertyHelper.GetProperties(derived).ToArray(); // Assert Assert.NotNull(helpers); Assert.Equal(2, helpers.Length); PropertyHelper propAHelper = Assert.Single(helpers, h => h.Name == "PropA"); PropertyHelper propBHelper = Assert.Single(helpers, h => h.Name == "PropB"); Assert.Equal("Overriden", propAHelper.GetValue(derived)); Assert.Equal("propBValue", propBHelper.GetValue(derived)); }
public void PropertyHelper_ForDerived_WithVirtual() { // Arrange var derived = new DerivedClassWithOverride { PropA = "propAValue", PropB = "propBValue" }; // Act var helpers = PropertyHelper.GetProperties(derived).ToArray(); // Assert Assert.NotNull(helpers); Assert.Equal(2, helpers.Length); var propAHelper = Assert.Single(helpers.Where(h => h.Name == "PropA")); var propBHelper = Assert.Single(helpers.Where(h => h.Name == "PropB")); Assert.Equal("OverridenpropAValue", propAHelper.GetValue(derived)); Assert.Equal("propBValue", propBHelper.GetValue(derived)); }
public void MakeFastPropertySetter_SetsPropertyValues_ForOverridenProperties() { // Arrange var instance = new DerivedClassWithOverride(); var typeInfo = instance.GetType().GetTypeInfo(); var property = typeInfo.GetDeclaredProperty("PropA"); var propertySetter = PropertyHelper.MakeFastPropertySetter(property); // Act propertySetter(instance, "Test value"); // Assert Assert.Equal("OverridenTest value", instance.PropA); }