예제 #1
0
        public void EvaluateProperties()
        {
            var model = new PropertiesModel();
            var type  = model.GetType();

            var xProperty = type.GetProperty("X");
            var yProperty = type.GetProperty("Y");
            var zProperty = type.GetProperty("Z");
            var wProperty = type.GetProperty("W");

            Assert.IsNotNull(xProperty);
            Assert.IsTrue(xProperty.CanRead);
            Assert.IsFalse(xProperty.CanWrite);

            Assert.IsNotNull(yProperty);
            Assert.IsTrue(yProperty.CanRead);
            Assert.IsTrue(yProperty.CanWrite);

            Assert.IsNotNull(zProperty);
            Assert.IsFalse(zProperty.CanRead);
            Assert.IsTrue(zProperty.CanWrite);

            Assert.IsNotNull(wProperty);
            Assert.IsTrue(wProperty.CanRead);
            Assert.IsTrue(wProperty.CanWrite);

            Assert.AreEqual(xProperty.GetValue(model), model.X);

            var xGetMethod = xProperty.GetGetMethod();

            Assert.IsNotNull(xGetMethod);
            Assert.AreEqual((int)xGetMethod.Invoke(model, null), model.X);

            zProperty.SetValue(model, 20);
            Assert.AreEqual(model.GetZ(), 20);

            var zSetMethod = zProperty.GetSetMethod();

            Assert.IsNotNull(zSetMethod);
            zSetMethod.Invoke(model, new object[] { 12 });
            Assert.AreEqual(model.GetZ(), 12);

            wProperty.SetValue(model, 99);
            Assert.AreEqual(model.W, 99);

            var indexerProperty = type.GetProperty("Item");

            Assert.IsNotNull(indexerProperty);
            Assert.IsTrue(indexerProperty.GetIndexParameters().Any());
            Assert.AreEqual(model[64], indexerProperty.GetValue(model, new object[] { 64 }));
        }
예제 #2
0
        public void EvaluateProperties()
        {
            var model = new PropertiesModel();
            var type = model.GetType();

            var xProperty = type.GetProperty("X");
            var yProperty = type.GetProperty("Y");
            var zProperty = type.GetProperty("Z");
            var wProperty = type.GetProperty("W");

            Assert.IsNotNull(xProperty);
            Assert.IsTrue(xProperty.CanRead);
            Assert.IsFalse(xProperty.CanWrite);

            Assert.IsNotNull(yProperty);
            Assert.IsTrue(yProperty.CanRead);
            Assert.IsTrue(yProperty.CanWrite);

            Assert.IsNotNull(zProperty);
            Assert.IsFalse(zProperty.CanRead);
            Assert.IsTrue(zProperty.CanWrite);

            Assert.IsNotNull(wProperty);
            Assert.IsTrue(wProperty.CanRead);
            Assert.IsTrue(wProperty.CanWrite);

            Assert.AreEqual(xProperty.GetValue(model), model.X);

            var xGetMethod = xProperty.GetGetMethod();
            Assert.IsNotNull(xGetMethod);
            Assert.AreEqual((int)xGetMethod.Invoke(model, null), model.X);

            zProperty.SetValue(model, 20);
            Assert.AreEqual(model.GetZ(), 20);

            var zSetMethod = zProperty.GetSetMethod();
            Assert.IsNotNull(zSetMethod);
            zSetMethod.Invoke(model, new object[] { 12 });
            Assert.AreEqual(model.GetZ(), 12);

            wProperty.SetValue(model, 99);
            Assert.AreEqual(model.W, 99);

            var indexerProperty = type.GetProperty("Item");
            Assert.IsNotNull(indexerProperty);
            Assert.IsTrue(indexerProperty.GetIndexParameters().Any());
            Assert.AreEqual(model[64], indexerProperty.GetValue(model, new object[] { 64 }));
        }