diff options
author | Veerapuram Varadhan <v.varadhan@gmail.com> | 2009-09-27 01:01:10 +0400 |
---|---|---|
committer | Veerapuram Varadhan <v.varadhan@gmail.com> | 2009-09-27 01:01:10 +0400 |
commit | 8b8d58705b4db1e1365ce4927148db2cccb7c211 (patch) | |
tree | 9fdff4a36a3824ea105d35465787abb41c4ae7e9 /mcs/class/System.Data/Test | |
parent | c5cbb9cb4b612174b1f40760190c8f34cb3560d4 (diff) |
backport of r142668
svn path=/branches/mono-2-6/mcs/; revision=142688
Diffstat (limited to 'mcs/class/System.Data/Test')
-rw-r--r-- | mcs/class/System.Data/Test/System.Data/ChangeLog | 7 | ||||
-rw-r--r-- | mcs/class/System.Data/Test/System.Data/DataSetTypedDataSetTest.cs | 52 |
2 files changed, 58 insertions, 1 deletions
diff --git a/mcs/class/System.Data/Test/System.Data/ChangeLog b/mcs/class/System.Data/Test/System.Data/ChangeLog index 56c256e7129..d96346d1d9b 100644 --- a/mcs/class/System.Data/Test/System.Data/ChangeLog +++ b/mcs/class/System.Data/Test/System.Data/ChangeLog @@ -1,6 +1,11 @@ +2009-09-26 Veerapuram Varadhan <vvaradhan@novell.com> + + * DataSetTypedDataSet.cs: Test for #427769. Patch by + John Lenz <jlenz2@math.uiuc.edu>. + 2009-09-24 Veerapuram Varadhan <vvaradhan@novell.com> - * DataSetTest2.cs (MergeTest_SameDataSet_536194): Added new. + * DataSetTest2.cs (MergeTest_SameDataSet_536194): Added new. 2009-01-16 Atsushi Enomoto <atsushi@ximian.com> diff --git a/mcs/class/System.Data/Test/System.Data/DataSetTypedDataSetTest.cs b/mcs/class/System.Data/Test/System.Data/DataSetTypedDataSetTest.cs index b10faba3034..72cbc19e776 100644 --- a/mcs/class/System.Data/Test/System.Data/DataSetTypedDataSetTest.cs +++ b/mcs/class/System.Data/Test/System.Data/DataSetTypedDataSetTest.cs @@ -196,6 +196,58 @@ namespace MonoTests.System.Data myTypedDataSet.Order_DetailsRow[] drArr1 = ds.Orders[0].GetOrder_DetailsRows(); DataRow[] drArr2 = ds.Orders[0].GetChildRows(ds.Relations[0]); Assert.AreEqual(drArr1 ,drArr2,"TDS25"); + +#if NET_2_0 + //now test serialization of a typed dataset generated by microsoft's xsd.exe + DataSet1 ds1 = new DataSet1(); + ds1.DataTable1.AddDataTable1Row("test"); + ds1.DataTable1.AddDataTable1Row("test2"); + + global::System.Runtime.Serialization.Formatters.Binary.BinaryFormatter formatter = + new global::System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); + MemoryStream stream = new MemoryStream(); + + formatter.Serialize(stream, ds1); + + stream.Seek(0, SeekOrigin.Begin); + + DataSet1 ds1load = (DataSet1) formatter.Deserialize(stream); + + Assert.IsTrue(ds1load.Tables.Contains("DataTable1")); + Assert.AreEqual("DataTable1DataTable", ds1load.Tables["DataTable1"].GetType().Name); + Assert.AreEqual(2, ds1load.DataTable1.Rows.Count); + Assert.AreEqual("DataTable1Row", ds1load.DataTable1[0].GetType().Name); + if (ds1load.DataTable1[0].Column1 == "test") { + Assert.AreEqual("test2", ds1load.DataTable1[1].Column1); + } else if (ds1load.DataTable1[0].Column1 == "test2") { + Assert.AreEqual("test", ds1load.DataTable1[1].Column1); + } else { + Assert.Fail("Invalid entry for Column1"); + } + + //now test when the mode is exclude schema + ds1.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.ExcludeSchema; + + stream = new MemoryStream(); + + formatter.Serialize(stream, ds1); + + stream.Seek(0, SeekOrigin.Begin); + + ds1load = (DataSet1) formatter.Deserialize(stream); + + Assert.IsTrue(ds1load.Tables.Contains("DataTable1")); + Assert.AreEqual("DataTable1DataTable", ds1load.Tables["DataTable1"].GetType().Name); + Assert.AreEqual(2, ds1load.DataTable1.Rows.Count); + Assert.AreEqual("DataTable1Row", ds1load.DataTable1[0].GetType().Name); + if (ds1load.DataTable1[0].Column1 == "test") { + Assert.AreEqual("test2", ds1load.DataTable1[1].Column1); + } else if (ds1load.DataTable1[0].Column1 == "test2") { + Assert.AreEqual("test", ds1load.DataTable1[1].Column1); + } else { + Assert.Fail("Invalid entry for Column1"); + } +#endif } protected void T_Changing(object sender, myTypedDataSet.OrdersRowChangeEvent e) |