public void Dictionary() { var t = new XamlType(typeof(int), sctx); Assert.IsFalse(t.IsDictionary, "#1.1"); Assert.IsFalse(t.IsCollection, "#1.1-2"); Assert.IsNull(t.KeyType, "#1.2"); t = new XamlType(typeof(Hashtable), sctx); Assert.IsTrue(t.IsDictionary, "#2.1"); Assert.IsFalse(t.IsCollection, "#2.1-2"); Assert.IsNotNull(t.KeyType, "#2.2"); Assert.IsNotNull(t.ItemType, "#2.2-2"); Assert.AreEqual("Object", t.KeyType.Name, "#2.3"); Assert.AreEqual("Object", t.ItemType.Name, "#2.3-2"); t = new XamlType(typeof(Dictionary <int, string>), sctx); Assert.IsTrue(t.IsDictionary, "#3.1"); Assert.IsFalse(t.IsCollection, "#3.1-2"); Assert.IsNotNull(t.KeyType, "#3.2"); Assert.IsNotNull(t.ItemType, "#3.2-2"); Assert.AreEqual("Int32", t.KeyType.Name, "#3.3"); Assert.AreEqual("String", t.ItemType.Name, "#3.3-2"); var ml = t.GetAllMembers(); Assert.AreEqual(2, ml.Count, "#3.4"); Assert.IsTrue(ml.Any(mi => mi.Name == "Keys"), "#3.4-2"); Assert.IsTrue(ml.Any(mi => mi.Name == "Values"), "#3.4-3"); Assert.IsNotNull(t.GetMember("Keys"), "#3.4-4"); Assert.IsNotNull(t.GetMember("Values"), "#3.4-5"); }
public void ListMembers() { var xt = new XamlType(typeof(List <int>), sctx); var ml = xt.GetAllMembers().ToArray(); Assert.AreEqual(1, ml.Length, "#1"); Assert.IsNotNull(xt.GetMember("Capacity"), "#2"); }
public void ContentIncluded() { var xt = new XamlType(typeof(ContentIncludedClass), sctx); var xm = xt.GetMember("Content"); Assert.AreEqual(xm, xt.ContentProperty, "#1"); Assert.IsTrue(xt.GetAllMembers().Contains(xm), "#2"); }
public void CustomArrayExtension() { var xt = new XamlType(typeof(MyArrayExtension), sctx); var xm = xt.GetMember("Items"); Assert.IsNotNull(xt.GetAllMembers().FirstOrDefault(m => m.Name == "Items"), "#0"); Assert.IsNotNull(xm, "#1"); Assert.IsFalse(xm.IsReadOnly, "#2"); // Surprisingly it is False. Looks like XAML ReadOnly is true only if it lacks set accessor. Having private member does not make it ReadOnly. Assert.IsTrue(xm.Type.IsCollection, "#3"); Assert.IsFalse(xm.Type.IsConstructible, "#4"); }
public void NamedItem() { var xt = new XamlType(typeof(NamedItem), sctx); var e = xt.GetAllMembers().GetEnumerator(); Assert.IsTrue(e.MoveNext(), "#1"); Assert.AreEqual(xt.GetMember("ItemName"), e.Current, "#2"); Assert.IsTrue(e.MoveNext(), "#3"); Assert.AreEqual(xt.GetMember("References"), e.Current, "#4"); Assert.IsFalse(e.MoveNext(), "#5"); }
void TestXamlTypePrimitive(XamlType t, string name, Type underlyingType, bool nullable, bool constructorRequiresArguments) { TestXamlTypeCommon(t, name, underlyingType, nullable, constructorRequiresArguments); Assert.IsFalse(t.IsMarkupExtension, "#14"); Assert.IsNotNull(t.TypeConverter, "#25"); Assert.IsNull(t.ContentProperty, "#27"); Assert.IsNull(t.MarkupExtensionReturnType, "#29"); var l = t.GetAllMembers().ToArray(); Assert.AreEqual(0, l.Length, "#31"); }
public void DefaultValuesArgumentAttributed() { var t = new XamlType(typeof(ArgumentAttributed), sctx); Assert.IsNotNull(t.Invoker, "#1"); Assert.IsTrue(t.IsNameValid, "#2"); Assert.IsFalse(t.IsUnknown, "#3"); Assert.AreEqual("ArgumentAttributed", t.Name, "#4"); Assert.AreEqual("clr-namespace:MonoTests.Portable.Xaml;assembly=" + GetType().GetTypeInfo().Assembly.GetName().Name, t.PreferredXamlNamespace, "#5"); Assert.IsNull(t.TypeArguments, "#6"); Assert.AreEqual(typeof(ArgumentAttributed), t.UnderlyingType, "#7"); Assert.IsTrue(t.ConstructionRequiresArguments, "#8"); Assert.IsFalse(t.IsArray, "#9"); Assert.IsFalse(t.IsCollection, "#10"); Assert.IsTrue(t.IsConstructible, "#11"); Assert.IsFalse(t.IsDictionary, "#12"); Assert.IsFalse(t.IsGeneric, "#13"); Assert.IsFalse(t.IsMarkupExtension, "#14"); Assert.IsFalse(t.IsNameScope, "#15"); Assert.IsTrue(t.IsNullable, "#16"); Assert.IsTrue(t.IsPublic, "#17"); Assert.IsFalse(t.IsUsableDuringInitialization, "#18"); Assert.IsFalse(t.IsWhitespaceSignificantCollection, "#19"); Assert.IsFalse(t.IsXData, "#20"); Assert.IsFalse(t.TrimSurroundingWhitespace, "#21"); Assert.IsFalse(t.IsAmbient, "#22"); Assert.IsNull(t.AllowedContentTypes, "#23"); Assert.IsNull(t.ContentWrappers, "#24"); #if HAS_TYPE_CONVERTER Assert.IsNull(t.TypeConverter, "#25"); #endif Assert.IsNull(t.ValueSerializer, "#26"); Assert.IsNull(t.ContentProperty, "#27"); // Assert.IsNull (t.DeferringLoader, "#28"); Assert.IsNull(t.MarkupExtensionReturnType, "#29"); Assert.AreEqual(sctx, t.SchemaContext, "#30"); var members = t.GetAllMembers(); Assert.AreEqual(2, members.Count, "#31"); string [] names = { "Arg1", "Arg2" }; foreach (var member in members) { Assert.IsTrue(Array.IndexOf(names, member.Name) >= 0, "#32"); } }
void TestXamlTypePrimitive(XamlType t, string name, Type underlyingType, bool nullable, bool constructorRequiresArguments) { TestXamlTypeCommon(t, name, underlyingType, nullable, constructorRequiresArguments); Assert.IsFalse(t.IsMarkupExtension, "#14"); Assert.IsNotNull(t.TypeConverter, "#25"); Assert.IsNull(t.ContentProperty, "#27"); Assert.IsNull(t.MarkupExtensionReturnType, "#29"); var l = t.GetAllMembers().ToArray(); if (underlyingType == typeof(decimal)) { Assert.AreEqual(6, l.Length, "#31"); //decimal has 6 internal properties (see Decimal.DecCalc.cs) } else { Assert.AreEqual(0, l.Length, "#31"); } }
public void ContentIncluded () { var xt = new XamlType (typeof (ContentIncludedClass), sctx); var xm = xt.GetMember ("Content"); Assert.AreEqual (xm, xt.ContentProperty, "#1"); Assert.IsTrue (xt.GetAllMembers ().Contains (xm), "#2"); }
public void NamedItem () { var xt = new XamlType (typeof (NamedItem), sctx); var e = xt.GetAllMembers ().GetEnumerator (); Assert.IsTrue (e.MoveNext (), "#1"); Assert.AreEqual (xt.GetMember ("ItemName"), e.Current, "#2"); Assert.IsTrue (e.MoveNext (), "#3"); Assert.AreEqual (xt.GetMember ("References"), e.Current, "#4"); Assert.IsFalse (e.MoveNext (), "#5"); }
public void ListMembers () { var xt = new XamlType (typeof (List<int>), sctx); var ml = xt.GetAllMembers ().ToArray (); Assert.AreEqual (1, ml.Length, "#1"); Assert.IsNotNull (xt.GetMember ("Capacity"), "#2"); }
public void CustomArrayExtension () { var xt = new XamlType (typeof (MyArrayExtension), sctx); var xm = xt.GetMember ("Items"); Assert.IsNotNull (xt.GetAllMembers ().FirstOrDefault (m => m.Name == "Items"), "#0"); Assert.IsNotNull (xm, "#1"); Assert.IsFalse (xm.IsReadOnly, "#2"); // Surprisingly it is False. Looks like XAML ReadOnly is true only if it lacks set accessor. Having private member does not make it ReadOnly. Assert.IsTrue (xm.Type.IsCollection, "#3"); Assert.IsFalse (xm.Type.IsConstructible, "#4"); }
public void DefaultValuesArgumentAttributed () { var t = new XamlType (typeof (ArgumentAttributed), sctx); Assert.IsNotNull (t.Invoker, "#1"); Assert.IsTrue (t.IsNameValid, "#2"); Assert.IsFalse (t.IsUnknown, "#3"); Assert.AreEqual ("ArgumentAttributed", t.Name, "#4"); Assert.AreEqual ("clr-namespace:MonoTests.System.Xaml;assembly=" + GetType ().Assembly.GetName ().Name, t.PreferredXamlNamespace, "#5"); Assert.IsNull (t.TypeArguments, "#6"); Assert.AreEqual (typeof (ArgumentAttributed), t.UnderlyingType, "#7"); Assert.IsTrue (t.ConstructionRequiresArguments, "#8"); Assert.IsFalse (t.IsArray, "#9"); Assert.IsFalse (t.IsCollection, "#10"); Assert.IsTrue (t.IsConstructible, "#11"); Assert.IsFalse (t.IsDictionary, "#12"); Assert.IsFalse (t.IsGeneric, "#13"); Assert.IsFalse (t.IsMarkupExtension, "#14"); Assert.IsFalse (t.IsNameScope, "#15"); Assert.IsTrue (t.IsNullable, "#16"); Assert.IsTrue (t.IsPublic, "#17"); Assert.IsFalse (t.IsUsableDuringInitialization, "#18"); Assert.IsFalse (t.IsWhitespaceSignificantCollection, "#19"); Assert.IsFalse (t.IsXData, "#20"); Assert.IsFalse (t.TrimSurroundingWhitespace, "#21"); Assert.IsFalse (t.IsAmbient, "#22"); Assert.IsNull (t.AllowedContentTypes, "#23"); Assert.IsNull (t.ContentWrappers, "#24"); Assert.IsNull (t.TypeConverter, "#25"); Assert.IsNull (t.ValueSerializer, "#26"); Assert.IsNull (t.ContentProperty, "#27"); // Assert.IsNull (t.DeferringLoader, "#28"); Assert.IsNull (t.MarkupExtensionReturnType, "#29"); Assert.AreEqual (sctx, t.SchemaContext, "#30"); var members = t.GetAllMembers (); Assert.AreEqual (2, members.Count, "#31"); string [] names = {"Arg1", "Arg2"}; foreach (var member in members) Assert.IsTrue (Array.IndexOf (names, member.Name) >= 0, "#32"); }
public void Dictionary () { var t = new XamlType (typeof (int), sctx); Assert.IsFalse (t.IsDictionary, "#1.1"); Assert.IsFalse (t.IsCollection, "#1.1-2"); Assert.IsNull (t.KeyType, "#1.2"); t = new XamlType (typeof (Hashtable), sctx); Assert.IsTrue (t.IsDictionary, "#2.1"); Assert.IsFalse (t.IsCollection, "#2.1-2"); Assert.IsNotNull (t.KeyType, "#2.2"); Assert.IsNotNull (t.ItemType, "#2.2-2"); Assert.AreEqual ("Object", t.KeyType.Name, "#2.3"); Assert.AreEqual ("Object", t.ItemType.Name, "#2.3-2"); t = new XamlType (typeof (Dictionary<int,string>), sctx); Assert.IsTrue (t.IsDictionary, "#3.1"); Assert.IsFalse (t.IsCollection, "#3.1-2"); Assert.IsNotNull (t.KeyType, "#3.2"); Assert.IsNotNull (t.ItemType, "#3.2-2"); Assert.AreEqual ("Int32", t.KeyType.Name, "#3.3"); Assert.AreEqual ("String", t.ItemType.Name, "#3.3-2"); var ml = t.GetAllMembers (); Assert.AreEqual (2, ml.Count, "#3.4"); Assert.IsTrue (ml.Any (mi => mi.Name == "Keys"), "#3.4-2"); Assert.IsTrue (ml.Any (mi => mi.Name == "Values"), "#3.4-3"); Assert.IsNotNull (t.GetMember ("Keys"), "#3.4-4"); Assert.IsNotNull (t.GetMember ("Values"), "#3.4-5"); }
protected void WriteNullMemberAsObject (XamlReader r, Action validateNullInstance) { Assert.AreEqual (XamlNodeType.None, r.NodeType, "#1"); Assert.IsTrue (r.Read (), "#6"); Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "#7"); Assert.AreEqual (String.Empty, r.Namespace.Prefix, "#7-2"); Assert.AreEqual ("clr-namespace:MonoTests.System.Xaml;assembly=" + GetType ().Assembly.GetName ().Name, r.Namespace.Namespace, "#7-3"); Assert.IsTrue (r.Read (), "#11"); Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "#12"); Assert.AreEqual ("x", r.Namespace.Prefix, "#12-2"); Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "#12-3"); Assert.IsTrue (r.Read (), "#16"); Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "#17"); var xt = new XamlType (typeof (TestClass4), r.SchemaContext); Assert.AreEqual (xt, r.Type, "#17-2"); // Assert.IsTrue (r.Instance is TestClass4, "#17-3"); Assert.AreEqual (2, xt.GetAllMembers ().Count, "#17-4"); if (r is XamlXmlReader) ReadBase (r); Assert.IsTrue (r.Read (), "#21"); Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "#22"); Assert.AreEqual (xt.GetMember ("Bar"), r.Member, "#22-2"); Assert.IsTrue (r.Read (), "#26"); Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "#27"); Assert.AreEqual (XamlLanguage.Null, r.Type, "#27-2"); if (validateNullInstance != null) validateNullInstance (); Assert.IsTrue (r.Read (), "#31"); Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "#32"); Assert.IsTrue (r.Read (), "#36"); Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#37"); Assert.IsTrue (r.Read (), "#41"); Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "#42"); Assert.AreEqual (xt.GetMember ("Foo"), r.Member, "#42-2"); Assert.IsTrue (r.Read (), "#43"); Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "#43-2"); Assert.AreEqual (XamlLanguage.Null, r.Type, "#43-3"); if (validateNullInstance != null) validateNullInstance (); Assert.IsTrue (r.Read (), "#44"); Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "#44-2"); Assert.IsTrue (r.Read (), "#46"); Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#47"); Assert.IsTrue (r.Read (), "#51"); Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "#52"); Assert.IsFalse (r.Read (), "#56"); Assert.IsTrue (r.IsEof, "#57"); }
private static bool GetSomeMemberHasDependencies(XamlType xamlType) { var allMembers = xamlType.GetAllMembers().OfType<MutableXamlMember>(); return allMembers.Any(member => member.Dependencies.Any()); }
void TestXamlTypePrimitive (XamlType t, string name, Type underlyingType, bool nullable, bool constructorRequiresArguments) { TestXamlTypeCommon (t, name, underlyingType, nullable, constructorRequiresArguments); Assert.IsFalse (t.IsMarkupExtension, "#14"); Assert.IsNotNull (t.TypeConverter, "#25"); Assert.IsNull (t.ContentProperty, "#27"); Assert.IsNull (t.MarkupExtensionReturnType, "#29"); var l = t.GetAllMembers ().ToArray (); Assert.AreEqual (0, l.Length, "#31"); }
private static bool GetSomeMemberHasDependencies(XamlType xamlType) { var allMembers = xamlType.GetAllMembers().OfType <MutableXamlMember>(); return(allMembers.Any(member => member.Dependencies.Any())); }
protected void StaticMember (XamlReader r) { Assert.AreEqual (XamlNodeType.None, r.NodeType, "#1"); Assert.IsTrue (r.Read (), "#6"); Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "#7"); Assert.AreEqual (String.Empty, r.Namespace.Prefix, "#7-2"); Assert.AreEqual ("clr-namespace:MonoTests.System.Xaml;assembly=" + GetType ().Assembly.GetName ().Name, r.Namespace.Namespace, "#7-3"); Assert.IsTrue (r.Read (), "#11"); Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "#12"); Assert.AreEqual ("x", r.Namespace.Prefix, "#12-2"); Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "#12-3"); Assert.IsTrue (r.Read (), "#16"); Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "#17"); var xt = new XamlType (typeof (TestClass5), r.SchemaContext); Assert.AreEqual (xt, r.Type, "#17-2"); // Assert.IsTrue (r.Instance is TestClass5, "#17-3"); Assert.AreEqual (2, xt.GetAllMembers ().Count, "#17-4"); Assert.IsTrue (xt.GetAllMembers ().Any (xm => xm.Name == "Bar"), "#17-5"); Assert.IsTrue (xt.GetAllMembers ().Any (xm => xm.Name == "Baz"), "#17-6"); if (r is XamlXmlReader) ReadBase (r); Assert.IsTrue (r.Read (), "#21"); Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "#22"); Assert.AreEqual (xt.GetMember ("Bar"), r.Member, "#22-2"); Assert.IsTrue (r.Read (), "#26"); Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "#27"); Assert.AreEqual (XamlLanguage.Null, r.Type, "#27-2"); // Assert.IsNull (r.Instance, "#27-3"); Assert.IsTrue (r.Read (), "#31"); Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "#32"); Assert.IsTrue (r.Read (), "#36"); Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#37"); // static Foo is not included in GetAllXembers() return value. // ReadOnly is not included in GetAllMembers() return value neither. // nonpublic Baz is a member, but does not appear in the reader. Assert.IsTrue (r.Read (), "#51"); Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "#52"); Assert.IsFalse (r.Read (), "#56"); Assert.IsTrue (r.IsEof, "#57"); }