DeserializeTests.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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. using MonoTests.System.Xml.TestClasses;
  16. namespace MonoTests.System.XmlSerialization
  17. {
  18. public class Sample
  19. {
  20. public string Text;
  21. public string [] ArrayText;
  22. }
  23. [TestFixture]
  24. public class DeserializationTests
  25. {
  26. object result;
  27. private object Deserialize (Type t, string xml)
  28. {
  29. StringReader sr = new StringReader (xml);
  30. XmlReader xr = new XmlTextReader (sr);
  31. return Deserialize (t, xr);
  32. }
  33. private object Deserialize (Type t, XmlReader xr)
  34. {
  35. XmlSerializer ser = new XmlSerializer (t);
  36. result = ser.Deserialize (xr);
  37. return result;
  38. }
  39. [Test]
  40. public void SimpleDeserialize ()
  41. {
  42. Deserialize (typeof (Sample), "<Sample><Text>Test.</Text></Sample>");
  43. Assertion.AssertEquals (typeof (Sample), result.GetType ());
  44. Sample sample = result as Sample;
  45. Assertion.AssertEquals ("Test.", sample.Text);
  46. }
  47. [Test]
  48. public void DeserializeInt ()
  49. {
  50. Deserialize (typeof (int), "<int>10</int>");
  51. Assertion.AssertEquals (typeof (int), result.GetType ());
  52. Assertion.AssertEquals (10, result);
  53. }
  54. [Test]
  55. public void DeserializeSimpleArray ()
  56. {
  57. Deserialize (typeof (Sample), "<Sample><ArrayText><string>Test1</string><string>Test2</string></ArrayText></Sample>");
  58. Assertion.AssertEquals (typeof (Sample), result.GetType ());
  59. Sample sample = result as Sample;
  60. Assertion.AssertEquals ("Test1", sample.ArrayText [0]);
  61. Assertion.AssertEquals ("Test2", sample.ArrayText [1]);
  62. }
  63. [Test]
  64. public void DeserializeEmptyEnum ()
  65. {
  66. Field f = Deserialize (typeof (Field), "<field modifiers=\"\" />") as Field;
  67. Assertion.AssertEquals (MapModifiers.Public, f.Modifiers);
  68. }
  69. }
  70. }