Add not-working tets for some MarkupExtension wrapper types.
authorAtsushi Eno <atsushi@ximian.com>
Fri, 26 Nov 2010 07:31:48 +0000 (16:31 +0900)
committerAtsushi Eno <atsushi@ximian.com>
Fri, 26 Nov 2010 07:31:48 +0000 (16:31 +0900)
mcs/class/System.Xaml/Test/System.Xaml/TestedTypes.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlLanguageTest.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlObjectReaderTest.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlObjectWriterTest.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlXmlReaderTest.cs
mcs/class/System.Xaml/Test/System.Xaml/XamlXmlWriterTest.cs

index e94c85c04a6c9e2e164c8d50571ee76b5c682ea9..c9eca1c47e9a9d091eb43f6377e6a3b0b9c6eb83 100755 (executable)
@@ -426,7 +426,6 @@ namespace MonoTests.System.Xaml
                public static string FooBar { get; set; }
        }
 
-       // FIXME: test it
        public class StaticExtensionWrapper
        {
                public StaticExtensionWrapper ()
@@ -434,5 +433,22 @@ namespace MonoTests.System.Xaml
                }
                
                public StaticExtension Param { get; set; }
+
+               public static string Foo = "foo";
+       }
+       
+       public class TypeExtensionWrapper
+       {
+               public TypeExtensionWrapper ()
+               {
+               }
+               
+               public TypeExtension Param { get; set; }
+       }
+       
+       // FIXME: test it
+       public class XDataWrapper
+       {
+               public XData Markup { get; set; }
        }
 }
index 768b0c5f95bc27e79fc34820f563cfc3ee84fe50..82bc3033a5448ef765cf16edbea61eca4eae9a6c 100755 (executable)
@@ -398,7 +398,10 @@ namespace MonoTests.System.Xaml
                {
                        var t = XamlLanguage.Static;
                        TestXamlTypeExtension (t, "StaticExtension", typeof (StaticExtension), typeof (object), false);
-                       Assert.IsNotNull (t.TypeConverter.ConverterInstance, "#25-2");
+                       var tc = t.TypeConverter.ConverterInstance;
+                       Assert.IsNotNull (tc, "#25-2");
+                       Assert.IsFalse (tc.CanConvertFrom (typeof (string)), "#25-3");
+                       Assert.IsTrue (tc.CanConvertTo (typeof (string)), "#25-4");
                        Assert.IsNull (t.ContentProperty, "#27");
 
                        var l = t.GetAllMembers ().ToArray ();
index cfd8ced1a053c118e29d8545df01943c5fb38238..2a45a5d198dc835d58a86325ccc5e2a353bb2736 100755 (executable)
@@ -1905,6 +1905,114 @@ namespace MonoTests.System.Xaml
                        Assert.IsFalse (r.Read (), "end");
                }
 
+               protected void Read_StaticExtensionWrapper (XamlReader r)
+               {
+                       Assert.IsTrue (r.Read (), "ns#1-1");
+                       Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#1-2");
+                       Assert.IsNotNull (r.Namespace, "ns#1-3");
+                       Assert.AreEqual ("", r.Namespace.Prefix, "ns#1-4");
+                       Assert.AreEqual ("clr-namespace:MonoTests.System.Xaml;assembly=" + GetType ().Assembly.GetName ().Name, r.Namespace.Namespace, "ns#1-5");
+
+                       Assert.IsTrue (r.Read (), "ns#2-1");
+                       Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2-2");
+                       Assert.IsNotNull (r.Namespace, "ns#2-3");
+                       Assert.AreEqual ("x", r.Namespace.Prefix, "ns#2-4");
+                       Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "ns#2-5");
+
+                       Assert.IsTrue (r.Read (), "so#1-1");
+                       Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#1-2");
+                       var xt = new XamlType (typeof (StaticExtensionWrapper), r.SchemaContext);
+                       Assert.AreEqual (xt, r.Type, "so#1-3");
+
+                       if (r is XamlXmlReader)
+                               ReadBase (r);
+
+                       Assert.IsTrue (r.Read (), "sprm#1");
+                       Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sprm#2");
+                       Assert.AreEqual (xt.GetMember ("Param"), r.Member, "sprm#3");
+
+                       Assert.IsTrue (r.Read (), "so#2-1");
+                       Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2-2");
+                       xt = new XamlType (typeof (StaticExtension), r.SchemaContext);
+                       Assert.AreEqual (xt, r.Type, "so#2-3");
+
+                       Assert.IsTrue (r.Read (), "smbr#1");
+                       Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "smbr#2");
+                       Assert.AreEqual (XamlLanguage.PositionalParameters, r.Member, "smbr#3");
+
+                       Assert.IsTrue (r.Read (), "vmbr#1");
+                       Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vmbr#2");
+                       Assert.AreEqual ("StaticExtensionWrapper.Foo", r.Value, "vmbr#3");
+
+                       Assert.IsTrue (r.Read (), "embr#1");
+                       Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "embr#2");
+
+                       Assert.IsTrue (r.Read (), "eo#2-1");
+                       Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2-2");
+
+                       Assert.IsTrue (r.Read (), "emod#1-1");
+                       Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "emod#1-2");
+
+                       Assert.IsTrue (r.Read (), "eo#1-1");
+                       Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#1-2");
+
+                       Assert.IsFalse (r.Read (), "end");
+               }
+
+               protected void Read_TypeExtensionWrapper (XamlReader r)
+               {
+                       Assert.IsTrue (r.Read (), "ns#1-1");
+                       Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#1-2");
+                       Assert.IsNotNull (r.Namespace, "ns#1-3");
+                       Assert.AreEqual ("", r.Namespace.Prefix, "ns#1-4");
+                       Assert.AreEqual ("clr-namespace:MonoTests.System.Xaml;assembly=" + GetType ().Assembly.GetName ().Name, r.Namespace.Namespace, "ns#1-5");
+
+                       Assert.IsTrue (r.Read (), "ns#2-1");
+                       Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2-2");
+                       Assert.IsNotNull (r.Namespace, "ns#2-3");
+                       Assert.AreEqual ("x", r.Namespace.Prefix, "ns#2-4");
+                       Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "ns#2-5");
+
+                       Assert.IsTrue (r.Read (), "so#1-1");
+                       Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#1-2");
+                       var xt = new XamlType (typeof (TypeExtensionWrapper), r.SchemaContext);
+                       Assert.AreEqual (xt, r.Type, "so#1-3");
+
+                       if (r is XamlXmlReader)
+                               ReadBase (r);
+
+                       Assert.IsTrue (r.Read (), "sprm#1");
+                       Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sprm#2");
+                       Assert.AreEqual (xt.GetMember ("Param"), r.Member, "sprm#3");
+
+                       Assert.IsTrue (r.Read (), "so#2-1");
+                       Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2-2");
+                       xt = new XamlType (typeof (TypeExtension), r.SchemaContext);
+                       Assert.AreEqual (xt, r.Type, "so#2-3");
+
+                       Assert.IsTrue (r.Read (), "smbr#1");
+                       Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "smbr#2");
+                       Assert.AreEqual (XamlLanguage.PositionalParameters, r.Member, "smbr#3");
+
+                       Assert.IsTrue (r.Read (), "vmbr#1");
+                       Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vmbr#2");
+                       Assert.AreEqual (String.Empty, r.Value, "vmbr#3");
+
+                       Assert.IsTrue (r.Read (), "embr#1");
+                       Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "embr#2");
+
+                       Assert.IsTrue (r.Read (), "eo#2-1");
+                       Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2-2");
+
+                       Assert.IsTrue (r.Read (), "emod#1-1");
+                       Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "emod#1-2");
+
+                       Assert.IsTrue (r.Read (), "eo#1-1");
+                       Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#1-2");
+
+                       Assert.IsFalse (r.Read (), "end");
+               }
+
                protected void Read_CommonXamlPrimitive (object obj)
                {
                        var r = new XamlObjectReader (obj);
@@ -2096,5 +2204,24 @@ namespace MonoTests.System.Xaml
                        var r = new XamlObjectReader (obj);
                        Read_PropertyDefinition (r);
                }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void Read_StaticExtensionWrapper ()
+               {
+                       var obj = new StaticExtensionWrapper () { Param = new StaticExtension ("StaticExtensionWrapper.Foo") };
+using (var sw = new StreamWriter ("Test/XmlFiles/StaticExtensionWrapper.xml")) sw.Write (XamlServices.Save (obj));
+                       var r = new XamlObjectReader (obj);
+                       Read_StaticExtensionWrapper (r);
+               }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void Read_TypeExtensionWrapper ()
+               {
+                       var obj = new TypeExtensionWrapper () { Param = new TypeExtension ("Foo") };
+                       var r = new XamlObjectReader (obj);
+                       Read_TypeExtensionWrapper (r);
+               }
        }
 }
index 3bfceea39060a1e2be8f0f8e6d632427f87a47ad..787a9f37228521f8c37d4bb139be9b478b87837b 100755 (executable)
@@ -1089,5 +1089,30 @@ namespace MonoTests.System.Xaml
                                Assert.AreEqual (XamlLanguage.String, des.Type, "#3");
                        }
                }
+               
+               [Test]
+               [Ignore ("this still does not give successful deserialization result - should there be any way?")]
+               public void Write_StaticExtensionWrapper ()
+               {
+                       //var obj = new StaticExtensionWrapper () { Param = new StaticExtension ("Foo") };
+                       using (var xr = GetReader ("StaticExtensionWrapper.xml")) {
+                               var des = (StaticExtensionWrapper) XamlServices.Load (xr);
+                               Assert.IsNotNull (des.Param, "#1");
+                               Assert.AreEqual ("Foo", des.Param.Member, "#2");
+                       }
+               }
+               
+               [Test]
+               [Ignore ("this still does not give successful deserialization result - should there be any way?")]
+               public void Write_TypeExtensionWrapper ()
+               {
+                       //var obj = new TypeExtensionWrapper () { Param = new TypeExtension ("Foo") };
+                       using (var xr = GetReader ("TypeExtensionWrapper.xml")) {
+                               var des = (TypeExtensionWrapper) XamlServices.Load (xr);
+                               Assert.IsNotNull (des.Param, "#1");
+                               // TypeName was not serialized into xml, hence deserialized as empty.
+                               Assert.AreEqual (String.Empty, des.Param.TypeName, "#2");
+                       }
+               }
        }
 }
index 58f811bf1dd922f174d7a7c1d53d11c77ec9507b..2e5c3f7f43be002aabea673fec4d7b4f754ec96d 100755 (executable)
@@ -476,5 +476,21 @@ namespace MonoTests.System.Xaml
                        var r = GetReader ("PropertyDefinition.xml");
                        Read_PropertyDefinition (r);
                }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void Read_StaticExtensionWrapper ()
+               {
+                       var r = GetReader ("StaticExtensionWrapper.xml");
+                       Read_StaticExtensionWrapper (r);
+               }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void Read_TypeExtensionWrapper ()
+               {
+                       var r = GetReader ("TypeExtensionWrapper.xml");
+                       Read_TypeExtensionWrapper (r);
+               }
        }
 }
index e176f646db33fde418cc76e09ce8143795c55bf8..894cfa5b982ecbca17abb068ef293ccd4dd978ad 100755 (executable)
@@ -887,6 +887,22 @@ namespace MonoTests.System.Xaml
                        var obj = new PropertyDefinition () { Modifier = "protected", Name = "foo", Type = XamlLanguage.String };
                        Assert.AreEqual (ReadXml ("PropertyDefinition.xml").Trim (), XamlServices.Save (obj), "#1");
                }
+               
+               [Test]
+               [Category ("NotWorking")]
+               public void Write_StaticExtensionWrapper ()
+               {
+                       var obj = new StaticExtensionWrapper () { Param = new StaticExtension ("StaticExtensionWrapper.Foo") };
+                       Assert.AreEqual (ReadXml ("StaticExtensionWrapper.xml").Trim (), XamlServices.Save (obj), "#1");
+               }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void Write_TypeExtensionWrapper ()
+               {
+                       var obj = new TypeExtensionWrapper () { Param = new TypeExtension ("Foo") };
+                       Assert.AreEqual (ReadXml ("TypeExtensionWrapper.xml").Trim (), XamlServices.Save (obj), "#1");
+               }
        }
 
        public class TestXmlWriterClass1