Пример #1
0
        public void Traverse_Static_Field_Instance_Field()
        {
            var extra = new Traverse_ExtraClass("test1");

            Assert.AreEqual("test1", Traverse.Create(extra).Field("someString").GetValue());

            Assert.AreEqual("test2", TraverseFields_Static.extraClassInstance.someString, "direct");

            var trv  = Traverse.Create(typeof(TraverseFields_Static));
            var trv2 = trv.Field("extraClassInstance");

            Assert.AreEqual(typeof(Traverse_ExtraClass), trv2.GetValue().GetType());
            Assert.AreEqual("test2", trv2.Field("someString").GetValue(), "traverse");
        }
Пример #2
0
        public void Traverse_Instance_Field_Static_Field()
        {
            var instance = new Traverse_ExtraClass("test3");

            Assert.AreEqual(typeof(Traverse_BaseClass), instance.baseClass.GetType());

            var trv1 = Traverse.Create(instance);

            Assert.NotNull(trv1, "trv1");

            var trv2 = trv1.Field("baseClass");

            Assert.NotNull(trv2, "trv2");

            var val = trv2.GetValue();

            Assert.NotNull(val, "val");
            Assert.AreEqual(typeof(Traverse_BaseClass), val.GetType());

            var trv3 = trv2.Field("baseField");

            Assert.NotNull(trv3, "trv3");
            Assert.AreEqual("base-field", trv3.GetValue());
        }