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"); }
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()); }