public void TestValueType() { var Today = DateTime.Today; var target = new MyValue(5); Assert.Equal(100, (int)Reflector.GetValue(ref target, nameof(MyValue.IntegerField))); Assert.Equal(123.05m, (decimal)Reflector.GetValue(ref target, nameof(MyValue.DecimalProperty))); Assert.Equal("StringField", (string)Reflector.GetValue(ref target, nameof(MyValue.StringField))); Assert.Equal("StringProperty", (string)Reflector.GetValue(ref target, nameof(MyValue.StringProperty))); Assert.Null(Reflector.GetValue(ref target, nameof(MyValue.NullableField))); Assert.Null(Reflector.GetValue(ref target, nameof(MyValue.NullableProperty))); Assert.Equal("#0", Reflector.GetValue(ref target, "Item", 0)); Assert.Equal("#1", Reflector.GetValue(ref target, "Item", 1)); Assert.Equal("#2", Reflector.GetValue(ref target, "Item", 2)); Assert.Equal("#3", Reflector.GetValue(ref target, "Item", 3)); Assert.Equal("#4", Reflector.GetValue(ref target, "Item", 4)); Reflector.SetValue(ref target, nameof(MyValue.IntegerField), 200); Reflector.SetValue(ref target, nameof(MyValue.DecimalProperty), 456.78); Reflector.SetValue(ref target, nameof(MyValue.StringField), "NewStringField"); Reflector.SetValue(ref target, nameof(MyValue.StringProperty), "NewStringProperty"); Assert.Equal(200, (int)Reflector.GetValue(ref target, nameof(MyValue.IntegerField))); Assert.Equal(456.78m, (decimal)Reflector.GetValue(ref target, nameof(MyValue.DecimalProperty))); Assert.Equal("NewStringField", (string)Reflector.GetValue(ref target, nameof(MyValue.StringField))); Assert.Equal("NewStringProperty", (string)Reflector.GetValue(ref target, nameof(MyValue.StringProperty))); Reflector.SetValue(ref target, nameof(MyValue.NullableField), Today); Assert.Equal(Today, Reflector.GetValue(ref target, nameof(MyValue.NullableField))); Reflector.SetValue(ref target, nameof(MyValue.NullableProperty), Today); Assert.Equal(Today, Reflector.GetValue(ref target, nameof(MyValue.NullableProperty))); Reflector.SetValue(ref target, nameof(MyValue.NullableField), null); Assert.Null(Reflector.GetValue(ref target, nameof(MyValue.NullableField))); Reflector.SetValue(ref target, nameof(MyValue.NullableProperty), null); Assert.Null(Reflector.GetValue(ref target, nameof(MyValue.NullableProperty))); object obj = target; Reflector.SetValue(ref obj, nameof(MyValue.IntegerField), 300); Reflector.SetValue(ref obj, nameof(MyValue.DecimalProperty), 168.09); Reflector.SetValue(ref obj, nameof(MyValue.StringField), "MyStringField"); Reflector.SetValue(ref obj, nameof(MyValue.StringProperty), "MyStringProperty"); Assert.Equal(300, (int)Reflector.GetValue(ref obj, nameof(MyValue.IntegerField))); Assert.Equal(168.09m, (decimal)Reflector.GetValue(ref obj, nameof(MyValue.DecimalProperty))); Assert.Equal("MyStringField", (string)Reflector.GetValue(ref obj, nameof(MyValue.StringField))); Assert.Equal("MyStringProperty", (string)Reflector.GetValue(ref obj, nameof(MyValue.StringProperty))); Reflector.SetValue(ref obj, nameof(MyValue.NullableField), Today); Assert.Equal(Today, Reflector.GetValue(ref obj, nameof(MyValue.NullableField))); Reflector.SetValue(ref obj, nameof(MyValue.NullableProperty), Today); Assert.Equal(Today, Reflector.GetValue(ref obj, nameof(MyValue.NullableProperty))); Reflector.SetValue(ref obj, nameof(MyValue.NullableField), null); Assert.Null(Reflector.GetValue(ref obj, nameof(MyValue.NullableField))); Reflector.SetValue(ref obj, nameof(MyValue.NullableProperty), null); Assert.Null(Reflector.GetValue(ref obj, nameof(MyValue.NullableProperty))); }
public void TestValueType() { var target = new MyValue(5); Assert.Equal(100, (int)Reflector.GetValue(ref target, nameof(MyValue.IntegerField))); Assert.Equal(123.05m, (decimal)Reflector.GetValue(ref target, nameof(MyValue.DecimalProperty))); Assert.Equal("StringField", (string)Reflector.GetValue(ref target, nameof(MyValue.StringField))); Assert.Equal("StringProperty", (string)Reflector.GetValue(ref target, nameof(MyValue.StringProperty))); Assert.Equal("#0", Reflector.GetValue(ref target, "Item", 0)); Assert.Equal("#1", Reflector.GetValue(ref target, "Item", 1)); Assert.Equal("#2", Reflector.GetValue(ref target, "Item", 2)); Assert.Equal("#3", Reflector.GetValue(ref target, "Item", 3)); Assert.Equal("#4", Reflector.GetValue(ref target, "Item", 4)); }