2 // System.Xml.DeserializationTests
5 // Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
7 // (C) 2003 Atsushi Enomoto
13 using System
.Xml
.Serialization
;
14 using NUnit
.Framework
;
15 using MonoTests
.System
.Xml
.TestClasses
;
17 namespace MonoTests
.System
.XmlSerialization
22 public string [] ArrayText
;
26 public class DeserializationTests
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
);
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
);
54 public void DeserializeInt ()
56 Deserialize (typeof (int), "<int>10</int>");
57 Assertion
.AssertEquals (typeof (int), result
.GetType ());
58 Assertion
.AssertEquals (10, result
);
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]);
72 public void DeserializeEmptyEnum ()
74 Field f
= Deserialize (typeof (Field
), "<field modifiers=\"\" />") as Field
;
75 Assertion
.AssertEquals (MapModifiers
.Public
, f
.Modifiers
);
79 public void DeserializePrivateCollection ()
81 MemoryStream ms
= new MemoryStream ();
82 Container c
= new Container();
85 XmlSerializer serializer
= new XmlSerializer(typeof(Container
));
86 serializer
.Serialize(ms
, c
);
89 c
= (Container
) serializer
.Deserialize (ms
);
90 Assertion
.AssertEquals (1, c
.Items
[0]);
94 [ExpectedException (typeof (InvalidOperationException
))]
95 public void DeserializeEmptyPrivateCollection ()
97 MemoryStream ms
= new MemoryStream ();
98 Container2 c
= new Container2(true);
101 XmlSerializer serializer
= new XmlSerializer(typeof(Container2
));
102 serializer
.Serialize(ms
, c
);
105 c
= (Container2
) serializer
.Deserialize (ms
);