Example #1
0
        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");
        }
Example #2
0
        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");
        }
Example #3
0
        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");
        }
Example #4
0
        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");
        }
Example #5
0
        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");
        }
Example #6
0
        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");
        }
Example #7
0
        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");
            }
        }
Example #9
0
		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");
		}
Example #10
0
		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");
		}
Example #11
0
		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");
		}
Example #12
0
		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");
		}
Example #13
0
		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");
		}
Example #14
0
		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");
		}
Example #15
0
		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());
 }
Example #17
0
		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");
		}
Example #18
0
        private static bool GetSomeMemberHasDependencies(XamlType xamlType)
        {
            var allMembers = xamlType.GetAllMembers().OfType <MutableXamlMember>();

            return(allMembers.Any(member => member.Dependencies.Any()));
        }
Example #19
0
		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");
		}