ReadWriteXmlTest - New Tests - for Read/WriteXml API tests.
[mono.git] / mcs / class / System.Data / Test / System.Data.SqlTypes / SqlCharsTest.cs
index 4bd59f8b586fdfadad5f158998d2a359d78fc2cb..1fc17625a7567e201ef2e8607e9ffe139a2e3a4f 100644 (file)
@@ -37,6 +37,11 @@ using System.Data.SqlTypes;
 using System.Threading;
 using System.Globalization;
 
+#if NET_2_0
+using System.Xml.Serialization;
+using System.IO;
+#endif 
+
 namespace MonoTests.System.Data.SqlTypes
 {
        [TestFixture]
@@ -207,6 +212,48 @@ namespace MonoTests.System.Data.SqlTypes
                        XmlQualifiedName qualifiedName = SqlChars.GetXsdType (null);
                        NUnit.Framework.Assert.AreEqual ("string", qualifiedName.Name, "#A01");
                }
+
+               internal void ReadWriteXmlTestInternal (string xml, 
+                                                       string testval, 
+                                                       string unit_test_id)
+               {
+                       SqlString test;
+                       SqlString test1;
+                       XmlSerializer ser;
+                       StringWriter sw;
+                       XmlTextWriter xw;
+                       StringReader sr;
+                       XmlTextReader xr;
+
+                       test = new SqlString (testval);
+                       ser = new XmlSerializer(typeof(SqlString));
+                       sw = new StringWriter ();
+                       xw = new XmlTextWriter (sw);
+                       
+                       ser.Serialize (xw, test);
+
+                       Assert.AreEqual (xml, sw.ToString (), unit_test_id);
+                       Console.WriteLine ("{0} - Got: {1}", unit_test_id, sw.ToString ());
+
+                       sr = new StringReader (xml);
+                       xr = new XmlTextReader (sr);
+                       test1 = (SqlString)ser.Deserialize (xr);
+
+                       Assert.AreEqual (testval, test1.Value, unit_test_id);
+                       Console.WriteLine ("{0} - Got: {1}", unit_test_id, test1.Value);
+               }
+
+               [Test]
+               public void ReadWriteXmlTest ()
+               {
+                       string xml1 = "<?xml version=\"1.0\" encoding=\"utf-16\"?><SqlString>This is a test string</SqlString>";
+                       string xml2 = "<?xml version=\"1.0\" encoding=\"utf-16\"?><SqlString>a</SqlString>";
+                       string strtest1 = "This is a test string";
+                       char strtest2 = 'a';
+
+                       ReadWriteXmlTestInternal (xml1, strtest1, "BA01");
+                       ReadWriteXmlTestInternal (xml2, strtest2.ToString (), "BA02");
+               }
        }
 }