Skip2 (r);
}
+ [Test]
+ public void Skip3 ()
+ {
+ var r = new XamlObjectReader (new ReadOnlyPropertyContainer () { Foo = "x" });
+ while (r.NodeType != XamlNodeType.StartMember)
+ r.Read ();
+ r.Skip ();
+ Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "#1");
+ }
+
[Test]
public void Read_XmlDocument ()
{
}
[Test]
- [Category ("NotWorking")]
public void Read_NamedItems ()
{
// foo
}
[Test]
- [Category ("NotWorking")]
public void Read_NamedItems2 ()
{
// i1
var xr = new XamlObjectReader (obj);
Read_NamedItems2 (xr, true);
}
+
+ [Test]
+ public void Read_XmlSerializableWrapper ()
+ {
+ var obj = new XmlSerializableWrapper (new XmlSerializable ("<root/>"));
+ var xr = new XamlObjectReader (obj);
+ Read_XmlSerializableWrapper (xr, true);
+ }
+
+ [Test] // If it is root, it is not serialized as IXmlSerializable.
+ public void Read_XmlSerializable ()
+ {
+ var obj = new XmlSerializable ("<root/>");
+ var xr = new XamlObjectReader (obj);
+ Read_XmlSerializable (xr);
+ }
+
+ [Test] // List contents are (sort of) treated as top-level too, so it is not serialized as IXmlSerializable(!)
+ public void Read_ListXmlSerializable ()
+ {
+ var obj = new List<XmlSerializable> ();
+ obj.Add (new XmlSerializable ("<root/>"));
+ var xr = new XamlObjectReader (obj);
+ Read_ListXmlSerializable (xr);
+ }
+
+ [Test]
+ public void Read_AttachedProperty ()
+ {
+ var obj = new AttachedWrapper ();
+ Attachable.SetFoo (obj, "x");
+ Attachable.SetFoo (obj.Value, "y");
+ try {
+ var xr = new XamlObjectReader (obj);
+ Read_AttachedProperty (xr);
+ } finally {
+ Attachable.SetFoo (obj, null);
+ Attachable.SetFoo (obj.Value, null);
+ }
+ }
+
+ [Test]
+ [Ignore ("Foo does not work as attached properties in this test yet")]
+ public void Read_AttachedProperty2 ()
+ {
+ var obj = new AttachedWrapper2 ();
+ AttachedWrapper2.SetFoo (obj, "x");
+ AttachedWrapper2.SetFoo (obj.Value, "y");
+ try {
+ var xr = new XamlObjectReader (obj);
+//while (xr.Read ()) Console.Error.WriteLine ("{0} {1} {2} {3}", xr.NodeType, xr.Type, xr.Member, xr.Value);
+ } finally {
+ AttachedWrapper2.SetFoo (obj, null);
+ AttachedWrapper2.SetFoo (obj.Value, null);
+ }
+ }
+
+ [Test]
+ public void Read_AbstractContainer ()
+ {
+ var obj = new AbstractContainer () { Value2 = new DerivedObject () { Foo = "x" } };
+ var xr = new XamlObjectReader (obj);
+ while (!xr.IsEof)
+ xr.Read ();
+ }
+
+ [Test]
+ public void Read_ReadOnlyPropertyContainer ()
+ {
+ var obj = new ReadOnlyPropertyContainer () { Foo = "x" };
+ var xr = new XamlObjectReader (obj);
+ var xt = xr.SchemaContext.GetXamlType (obj.GetType ());
+ while (xr.Read ())
+ if (xr.NodeType == XamlNodeType.StartMember)
+ break;
+ Assert.AreEqual (xt.GetMember ("Foo"), xr.Member, "#1");
+ while (!xr.IsEof)
+ xr.Read ();
+ }
+
+ [Test]
+ public void Read_TypeConverterOnListMember ()
+ {
+ var obj = new SecondTest.TypeOtherAssembly ();
+ obj.Values.AddRange (new uint? [] {1, 2, 3});
+ var xr = new XamlObjectReader (obj);
+ Read_TypeConverterOnListMember (xr);
+ }
+
+ [Test]
+ public void Read_EnumContainer ()
+ {
+ var obj = new EnumContainer () { EnumProperty = EnumValueType.Two };
+ var xr = new XamlObjectReader (obj);
+ Read_EnumContainer (xr);
+ }
+
+ [Test]
+ public void Read_CollectionContentProperty ()
+ {
+ var obj = new CollectionContentProperty ();
+ for (int i = 0; i < 4; i++)
+ obj.ListOfItems.Add (new SimpleClass ());
+ var xr = new XamlObjectReader (obj);
+ Read_CollectionContentProperty (xr, false);
+ }
+
+ [Test]
+ public void Read_CollectionContentPropertyX ()
+ {
+ var obj = new CollectionContentPropertyX ();
+ var l = new List<object> ();
+ obj.ListOfItems.Add (l);
+ for (int i = 0; i < 4; i++)
+ l.Add (new SimpleClass ());
+ var xr = new XamlObjectReader (obj);
+ Read_CollectionContentPropertyX (xr, false);
+ }
+
+ [Test]
+ [Category ("NotWorking")] // only member ordering difference, maybe.
+ public void Read_AmbientPropertyContainer ()
+ {
+ var obj = new SecondTest.ResourcesDict ();
+ var t1 = new SecondTest.TestObject ();
+ obj.Add ("TestDictItem", t1);
+ var t2 = new SecondTest.TestObject ();
+ t2.TestProperty = t1;
+ obj.Add ("okay", t2);
+ var xr = new XamlObjectReader (obj);
+ Read_AmbientPropertyContainer (xr, false);
+ }
+
+ [Test]
+ [Category ("NotWorking")] // only member ordering difference, maybe.
+ public void Read_AmbientPropertyContainer2 ()
+ {
+ var obj = new SecondTest.ResourcesDict ();
+ var t1 = new SecondTest.TestObject ();
+ obj.Add ("TestDictItem", t1);
+ obj.Add ("okay", new SecondTest.ResourceExtension (t1));
+ var xr = new XamlObjectReader (obj);
+ Read_AmbientPropertyContainer (xr, true);
+ }
+
+ [Test]
+ public void Read_NullableContainer ()
+ {
+ var obj = new NullableContainer () { TestProp = 5 };
+ var xr = new XamlObjectReader (obj);
+ Read_NullableContainer (xr);
+ }
}
}