public void FromProperty () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); Assert.AreEqual (pi.GetGetMethod (), i.UnderlyingGetter, "#1"); Assert.IsNull (i.UnderlyingSetter, "#2"); Assert.AreEqual (5, i.GetValue ("hello"), "#3"); }
internal static XamlMember ReplaceXamlMemberInvoker(this XamlMember originalXamlMember, XamlSchemaContext schemaContext, XamlMemberInvoker newInvoker) { if (originalXamlMember.IsEvent) { if (originalXamlMember.IsAttachable) { UnitTestUtility.Assert(originalXamlMember.UnderlyingMember is MethodInfo, "Guaranteed by XamlMember."); return new XamlMember(originalXamlMember.Name, originalXamlMember.UnderlyingMember as MethodInfo, schemaContext, newInvoker); } else { UnitTestUtility.Assert(originalXamlMember.UnderlyingMember is EventInfo, "Guaranteed by XamlMember."); return new XamlMember(originalXamlMember.UnderlyingMember as EventInfo, schemaContext, newInvoker); } } else if (originalXamlMember.IsDirective) { return originalXamlMember; } else if (originalXamlMember.IsUnknown) { return originalXamlMember; } else { if (originalXamlMember.IsAttachable) { MethodInfo attachablePropertyMethod = originalXamlMember.UnderlyingMember as MethodInfo; if (attachablePropertyMethod.ReturnType == typeof(void)) { return new XamlMember(originalXamlMember.Name, null, originalXamlMember.UnderlyingMember as MethodInfo, schemaContext, newInvoker); } else { return new XamlMember(originalXamlMember.Name, originalXamlMember.UnderlyingMember as MethodInfo, null, schemaContext, newInvoker); } } else { PropertyInfo propertyInfo = originalXamlMember.UnderlyingMember as PropertyInfo; if (propertyInfo != null) { return new XamlMember(propertyInfo, schemaContext, newInvoker); } else { return originalXamlMember; } } } }
public void SetValueOnReadOnlyProperty () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.SetValue ("hello", 5); }
public void GetValueOnWriteOnlyProperty () { var pi = xr_resolver; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.GetValue (new XmlUrlResolver ()); }
public void SetValueNullObject () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.SetValue (null, 5); }
public void GetValueNullObject () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.GetValue (null); }
public void UnderlyingSetter () { var i = new XamlMemberInvoker (new MyXamlMember (str_len, sctx)); // call XamlMember's UnderlyingSetter. Assert.IsNull (i.UnderlyingSetter, "#1"); }
public void SetValueOnEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); i.SetValue (AppDomain.CurrentDomain, new AssemblyLoadEventHandler (DummyAssemblyLoad)); }
public void SetValueOnEventValueMismatch () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); i.SetValue (AppDomain.CurrentDomain, 5); }
public void GetValueOnEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); i.GetValue (AppDomain.CurrentDomain); }
public void FromEvent () { var ei = ass_load; var i = new XamlMemberInvoker (new XamlMember (ei, sctx)); Assert.IsNull (i.UnderlyingGetter, "#1"); Assert.AreEqual (ei.GetAddMethod (), i.UnderlyingSetter, "#2"); }
public void SetValueOnIrrelevantObject () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.SetValue ("hello", 5); }
public void GetValueOnTypeValue () { var xm = XamlLanguage.Type.GetMember ("Type"); var i = new XamlMemberInvoker (xm); var o = i.GetValue (new TypeExtension (typeof (int))); Assert.AreEqual (typeof (int), o, "#1"); }
public void GetValueOnIrrelevantObject () { var pi = str_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); i.GetValue (new StringBuilder ()); }
public void SetValueOnReadWriteProperty () { var pi = sb_len; var i = new XamlMemberInvoker (new XamlMember (pi, sctx)); var sb = new StringBuilder (); i.SetValue (sb, 5); Assert.AreEqual (5, sb.Length, "#1"); }
internal ValueNodeXamlMemberInvoker(XamlDebuggerXmlReader parent, XamlMemberInvoker wrapped, DocumentRange attributeValueRange) { this.parent = parent; this.wrapped = wrapped; this.attributeValueRange = attributeValueRange; }