public void Can_get_field_accessor_from_sub_and_super_types() { var sub = new SubAccessor(); var subGet = StaticAccessors.GetValueGetter <SubAccessor>(typeof(SubAccessor).GetField("SubField")); var subSet = StaticAccessors.GetValueSetter <SubAccessor>(typeof(SubAccessor).GetField("SubField")); subSet(sub, "sub"); Assert.That(subGet(sub), Is.EqualTo("sub")); var sup = new AccessorBase(); var supGet = StaticAccessors.GetValueGetter <AccessorBase>(typeof(AccessorBase).GetField("BaseField")); var supSet = StaticAccessors.GetValueSetter <AccessorBase>(typeof(AccessorBase).GetField("BaseField")); supSet(sup, "base"); Assert.That(supGet(sup), Is.EqualTo("base")); supSet(sub, "base"); Assert.That(supGet(sub), Is.EqualTo("base")); }
public void Can_get_field_accessor_from_sub_and_super_types() { var sub = new SubAccessor(); var subGet = StaticAccessors.GetValueGetter<SubAccessor>(typeof(SubAccessor).GetFieldInfo("SubField")); var subSet = StaticAccessors.GetValueSetter<SubAccessor>(typeof(SubAccessor).GetFieldInfo("SubField")); subSet(sub, "sub"); Assert.That(subGet(sub), Is.EqualTo("sub")); var sup = new AccessorBase(); var supGet = StaticAccessors.GetValueGetter<AccessorBase>(typeof(AccessorBase).GetFieldInfo("BaseField")); var supSet = StaticAccessors.GetValueSetter<AccessorBase>(typeof(AccessorBase).GetFieldInfo("BaseField")); supSet(sup, "base"); Assert.That(supGet(sup), Is.EqualTo("base")); supSet(sub, "base"); Assert.That(supGet(sub), Is.EqualTo("base")); }
public void Can_get_property_accessor_from_sub_and_super_types() { var sub = new SubAccessor(); var subGet = typeof(SubAccessor).GetProperty("Sub").CreateGetter <SubAccessor>(); var subSet = typeof(SubAccessor).GetProperty("Sub").CreateSetter <SubAccessor>(); subSet(sub, "sub"); Assert.That(subGet(sub), Is.EqualTo("sub")); var sup = new AccessorBase(); var supGet = typeof(AccessorBase).GetProperty("Base").CreateGetter <AccessorBase>(); var supSet = typeof(AccessorBase).GetProperty("Base").CreateSetter <AccessorBase>(); supSet(sup, "base"); Assert.That(supGet(sup), Is.EqualTo("base")); supSet(sub, "base"); Assert.That(supGet(sub), Is.EqualTo("base")); }