Implement XamlReader.ReadSubtree().
[mono.git] / mcs / class / System.Xaml / Test / System.Xaml / XamlReaderTest.cs
1 //
2 // Copyright (C) 2010 Novell Inc. http://novell.com
3 //
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:
11 // 
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
14 // 
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.
22 //
23 using System;
24 using System.Collections;
25 using System.Collections.Generic;
26 using System.ComponentModel;
27 using System.IO;
28 using System.Linq;
29 using System.Reflection;
30 using System.Windows.Markup;
31 using System.Xaml;
32 using System.Xaml.Schema;
33 using System.Xml;
34 using NUnit.Framework;
35
36 using CategoryAttribute = NUnit.Framework.CategoryAttribute;
37
38 namespace MonoTests.System.Xaml
39 {
40         [TestFixture]
41         public partial class XamlReaderTest
42         {
43                 [Test]
44                 public void ReadSubtree1 ()
45                 {
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");
55                 }
56
57                 [Test]
58                 public void ReadSubtree2 ()
59                 {
60                         var xr = new XamlObjectReader (5);
61                         xr.Read ();
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");
70                 }
71
72                 [Test]
73                 public void ReadSubtree3 ()
74                 {
75                         var xr = new XamlObjectReader (5);
76                         xr.Read ();
77                         xr.Read ();
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");
98                 }
99         }
100 }