Exemple #1
0
        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)));
        }
Exemple #2
0
        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));
        }