Merge pull request #2527 from vargaz/jit-errors
[mono.git] / mcs / class / System.Xaml / Test / System.Xaml / XamlMemberTest.cs
index 33fe16ff58827a54ec954e121683903a29b1c2f0..f4023dd9767adf065c9fa71eea03a41f113cf2c4 100755 (executable)
@@ -24,8 +24,10 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 using System.ComponentModel;
+using System.Linq;
 using System.Reflection;
 using System.Text;
+using System.Windows.Markup;
 using System.Xaml;
 using System.Xaml.Schema;
 using NUnit.Framework;
@@ -232,7 +234,7 @@ namespace MonoTests.System.Xaml
                        Assert.AreEqual (new XamlType (typeof (string), sctx), m.TargetType, "#10");
                        Assert.IsNotNull (m.Type, "#11");
                        Assert.AreEqual (typeof (int), m.Type.UnderlyingType, "#11-2");
-//                     Assert.IsNotNull (m.TypeConverter, "#12");
+                       Assert.IsNotNull (m.TypeConverter, "#12");
                        Assert.IsNull (m.ValueSerializer, "#13");
                        Assert.IsNull (m.DeferringLoader, "#14");
                        Assert.AreEqual (str_len, m.UnderlyingMember, "#15");
@@ -360,7 +362,7 @@ namespace MonoTests.System.Xaml
                        Assert.AreEqual (new XamlType (typeof (string), sctx), m.TargetType, "#10");
                        Assert.IsNotNull (m.Type, "#11");
                        Assert.AreEqual (typeof (object), m.Type.UnderlyingType, "#11-2");
-//                     Assert.IsNull (m.TypeConverter, "#12");
+                       Assert.IsNull (m.TypeConverter, "#12");
                        Assert.IsNull (m.ValueSerializer, "#13");
                        Assert.IsNull (m.DeferringLoader, "#14");
                        Assert.IsNull (m.UnderlyingMember, "#15");
@@ -384,11 +386,36 @@ namespace MonoTests.System.Xaml
                        Assert.IsNull (new XamlMember ("Length", new XamlType (typeof (string), sctx), false).UnderlyingMember, "#5");
                }
 
+               [Test]
+               public void EqualsTest ()
+               {
+                       XamlMember m;
+                       var xt = XamlLanguage.Type;
+                       m = new XamlMember ("Type", xt, false);
+                       var type_type = xt.GetMember ("Type");
+                       Assert.AreNotEqual (m, xt.GetMember ("Type"), "#1"); // whoa!
+                       Assert.AreNotEqual (type_type, m, "#2"); // whoa!
+                       Assert.AreEqual (type_type, xt.GetMember ("Type"), "#3");
+                       Assert.AreEqual (type_type.ToString (), m.ToString (), "#4");
+
+                       Assert.AreEqual (xt.GetAllMembers ().FirstOrDefault (mm => mm.Name == "Type"), xt.GetAllMembers ().FirstOrDefault (mm => mm.Name == "Type"), "#5");
+                       Assert.AreEqual (xt.GetAllMembers ().FirstOrDefault (mm => mm.Name == "Type"), xt.GetMember ("Type"), "#6");
+
+                       // different XamlSchemaContext
+                       Assert.AreNotEqual (m, XamlLanguage.Type.GetMember ("Type"), "#7");
+                       Assert.AreNotEqual (XamlLanguage.Type.GetMember ("Type"), new XamlSchemaContext ().GetXamlType (typeof (Type)).GetMember ("Type"), "#7");
+                       Assert.AreEqual (XamlLanguage.Type.GetMember ("Type"), new XamlSchemaContext ().GetXamlType (typeof (TypeExtension)).GetMember ("Type"), "#8");
+               }
+
                [Test]
                public void ToStringTest ()
                {
                        Assert.AreEqual ("{http://schemas.microsoft.com/winfx/2006/xaml}_Initialization", XamlLanguage.Initialization.ToString (), "#1");
 
+                       // Wow. Uncomment this, and it will show .NET returns the XamlMember.ToString() results *inconsistently*.
+                       //Assert.AreEqual ("System.Windows.Markup.XData", XamlLanguage.XData.ToString (), "#2pre");
+                       Assert.AreEqual (XamlLanguage.Xaml2006Namespace, XamlLanguage.XData.PreferredXamlNamespace, "#2pre2");
+
                        Assert.AreEqual ("{http://schemas.microsoft.com/winfx/2006/xaml}XData.Text", XamlLanguage.XData.GetMember ("Text").ToString (), "#2");
 
                        var pi = typeof (string).GetProperty ("Length");