DeserializeTests.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //
  2. // System.Xml.DeserializationTests
  3. //
  4. // Author:
  5. // Atsushi Enomoto <[email protected]>
  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. namespace MonoTests.System.Xml
  16. {
  17. public class Sample
  18. {
  19. public string Text;
  20. public string [] ArrayText;
  21. }
  22. [TestFixture]
  23. public class DeserializationTests
  24. {
  25. object result;
  26. private void Deserialize (Type t, string xml)
  27. {
  28. StringReader sr = new StringReader (xml);
  29. XmlReader xr = new XmlTextReader (sr);
  30. Deserialize (t, xr);
  31. }
  32. private void Deserialize (Type t, XmlReader xr)
  33. {
  34. XmlSerializer ser = new XmlSerializer (t);
  35. result = ser.Deserialize (xr);
  36. }
  37. [Test]
  38. public void SimpleDeserialize ()
  39. {
  40. Deserialize (typeof (Sample), "<Sample><Text>Test.</Text></Sample>");
  41. Assertion.AssertEquals (typeof (Sample), result.GetType ());
  42. Sample sample = result as Sample;
  43. Assertion.AssertEquals ("Test.", sample.Text);
  44. }
  45. [Test]
  46. public void DeserializeInt ()
  47. {
  48. Deserialize (typeof (int), "<int>10</int>");
  49. Assertion.AssertEquals (typeof (int), result.GetType ());
  50. Assertion.AssertEquals (10, result);
  51. }
  52. [Test]
  53. public void DeserializeSimpleArray ()
  54. {
  55. Deserialize (typeof (Sample), "<Sample><ArrayText><string>Test1</string><string>Test2</string></ArrayText></Sample>");
  56. Assertion.AssertEquals (typeof (Sample), result.GetType ());
  57. Sample sample = result as Sample;
  58. Assertion.AssertEquals ("Test1", sample.ArrayText [0]);
  59. Assertion.AssertEquals ("Test2", sample.ArrayText [1]);
  60. }
  61. }
  62. }