**** Merged from MCS ****
[mono-project.git] / mcs / class / System.XML / Test / System.Xml.Serialization / DeserializeTests.cs
blobec9123b082cc4a6fe9ce2bcc8b03d01e43d72114
1 //
2 // System.Xml.DeserializationTests
3 //
4 // Author:
5 // Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
6 //
7 // (C) 2003 Atsushi Enomoto
8 //
9 //
10 using System;
11 using System.IO;
12 using System.Xml;
13 using System.Xml.Serialization;
14 using NUnit.Framework;
15 using MonoTests.System.Xml.TestClasses;
17 namespace MonoTests.System.XmlSerialization
19 public class Sample
21 public string Text;
22 public string [] ArrayText;
25 [TestFixture]
26 public class DeserializationTests
28 object result;
30 private object Deserialize (Type t, string xml)
32 StringReader sr = new StringReader (xml);
33 XmlReader xr = new XmlTextReader (sr);
34 return Deserialize (t, xr);
37 private object Deserialize (Type t, XmlReader xr)
39 XmlSerializer ser = new XmlSerializer (t);
40 result = ser.Deserialize (xr);
41 return result;
44 [Test]
45 public void SimpleDeserialize ()
47 Deserialize (typeof (Sample), "<Sample><Text>Test.</Text></Sample>");
48 Assertion.AssertEquals (typeof (Sample), result.GetType ());
49 Sample sample = result as Sample;
50 Assertion.AssertEquals ("Test.", sample.Text);
53 [Test]
54 public void DeserializeInt ()
56 Deserialize (typeof (int), "<int>10</int>");
57 Assertion.AssertEquals (typeof (int), result.GetType ());
58 Assertion.AssertEquals (10, result);
61 [Test]
62 public void DeserializeSimpleArray ()
64 Deserialize (typeof (Sample), "<Sample><ArrayText><string>Test1</string><string>Test2</string></ArrayText></Sample>");
65 Assertion.AssertEquals (typeof (Sample), result.GetType ());
66 Sample sample = result as Sample;
67 Assertion.AssertEquals ("Test1", sample.ArrayText [0]);
68 Assertion.AssertEquals ("Test2", sample.ArrayText [1]);
71 [Test]
72 public void DeserializeEmptyEnum ()
74 Field f = Deserialize (typeof (Field), "<field modifiers=\"\" />") as Field;
75 Assertion.AssertEquals (MapModifiers.Public, f.Modifiers);
78 [Test]
79 public void DeserializePrivateCollection ()
81 MemoryStream ms = new MemoryStream ();
82 Container c = new Container();
83 c.Items.Add(1);
85 XmlSerializer serializer = new XmlSerializer(typeof(Container));
86 serializer.Serialize(ms, c);
88 ms.Position = 0;
89 c = (Container) serializer.Deserialize (ms);
90 Assertion.AssertEquals (1, c.Items[0]);
93 [Test]
94 [ExpectedException (typeof (InvalidOperationException))]
95 public void DeserializeEmptyPrivateCollection ()
97 MemoryStream ms = new MemoryStream ();
98 Container2 c = new Container2(true);
99 c.Items.Add(1);
101 XmlSerializer serializer = new XmlSerializer(typeof(Container2));
102 serializer.Serialize(ms, c);
104 ms.Position = 0;
105 c = (Container2) serializer.Deserialize (ms);