2 // Copyright (C) 2010 Novell Inc. http://novell.com
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 using System.Collections;
25 using System.Collections.Generic;
26 using System.ComponentModel;
29 using System.Reflection;
30 using System.Windows.Markup;
32 using System.Xaml.Schema;
34 using NUnit.Framework;
36 using CategoryAttribute = NUnit.Framework.CategoryAttribute;
38 namespace MonoTests.System.Xaml
41 public partial class XamlReaderTest
44 public void ReadSubtree1 ()
46 var xr = new XamlObjectReader (5);
47 var sr = xr.ReadSubtree ();
48 Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#1-2");
49 Assert.AreEqual (XamlNodeType.None, xr.NodeType, "#1-3");
50 Assert.IsTrue (sr.Read (), "#2");
51 Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#2-2");
52 Assert.AreEqual (XamlNodeType.None, xr.NodeType, "#2-3");
53 Assert.IsFalse (sr.Read (), "#3");
54 Assert.AreEqual (XamlNodeType.NamespaceDeclaration, xr.NodeType, "#3-2");
58 public void ReadSubtree2 ()
60 var xr = new XamlObjectReader (5);
62 var sr = xr.ReadSubtree ();
63 Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#1-2");
64 Assert.AreEqual (XamlNodeType.NamespaceDeclaration, xr.NodeType, "#1-3");
65 Assert.IsTrue (sr.Read (), "#2");
66 Assert.AreEqual (XamlNodeType.NamespaceDeclaration, sr.NodeType, "#2-2");
67 Assert.AreEqual (XamlNodeType.NamespaceDeclaration, xr.NodeType, "#2-3");
68 Assert.IsFalse (sr.Read (), "#3");
69 Assert.AreEqual (XamlNodeType.StartObject, xr.NodeType, "#3-2");
73 public void ReadSubtree3 ()
75 var xr = new XamlObjectReader (5);
78 var sr = xr.ReadSubtree ();
79 Assert.AreEqual (XamlNodeType.None, sr.NodeType, "#1-2");
80 Assert.AreEqual (XamlNodeType.StartObject, xr.NodeType, "#1-3");
81 Assert.IsTrue (sr.Read (), "#2");
82 Assert.AreEqual (XamlNodeType.StartObject, sr.NodeType, "#2-2");
83 Assert.AreEqual (XamlNodeType.StartObject, xr.NodeType, "#2-3");
84 Assert.IsTrue (sr.Read (), "#3");
85 Assert.AreEqual (XamlNodeType.StartMember, sr.NodeType, "#3-2");
86 Assert.AreEqual (XamlNodeType.StartMember, xr.NodeType, "#3-3");
87 Assert.IsTrue (sr.Read (), "#4");
88 Assert.AreEqual (XamlNodeType.Value, sr.NodeType, "#4-2");
89 Assert.AreEqual (XamlNodeType.Value, xr.NodeType, "#4-3");
90 Assert.IsTrue (sr.Read (), "#5");
91 Assert.AreEqual (XamlNodeType.EndMember, sr.NodeType, "#5-2");
92 Assert.AreEqual (XamlNodeType.EndMember, xr.NodeType, "#5-3");
93 Assert.IsTrue (sr.Read (), "#6");
94 Assert.AreEqual (XamlNodeType.EndObject, sr.NodeType, "#6-2");
95 Assert.AreEqual (XamlNodeType.EndObject, xr.NodeType, "#6-3");
96 Assert.IsFalse (sr.Read (), "#7");
97 Assert.AreEqual (XamlNodeType.None, xr.NodeType, "#7-2");