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