Blob Blame History Raw
--- trunk/mcs/class/System.Data/Test/System.Data/BinarySerializationTest.cs	2008/09/16 12:52:47	113147
+++ trunk/mcs/class/System.Data/Test/System.Data/BinarySerializationTest.cs	2008/09/16 12:53:08	113148
@@ -172,6 +172,59 @@
 		dt.Rows[0].RejectChanges();
 		dt.Rows[1].RejectChanges();
 	}
+
+	[Test]
+	public void TestDefaultValues ()
+	{
+	 	//Serialize Table
+		DataTable tb1 = new DataTable ();
+		tb1.Columns.Add ("id", typeof (int));
+		tb1.Columns.Add ("Date", typeof (string));
+		tb1.Columns["id"].DefaultValue = 10;
+		tb1.Columns["Date"].DefaultValue = "9/15/2008";
+		tb1.Rows.Add (tb1.NewRow());
+
+		MemoryStream ms = new MemoryStream ();
+		BinaryFormatter bf = new BinaryFormatter ();
+		tb1.RemotingFormat = SerializationFormat.Binary;
+		bf.Serialize (ms,tb1);
+		byte [] serializedStream = ms.ToArray ();
+		ms.Close ();
+		//DserializeTable
+		ms = new MemoryStream (serializedStream);
+		DataTable dt = (DataTable)bf.Deserialize (ms);
+		ms.Close ();
+
+		//Table Data
+		for (int i = 0; i < tb1.Rows.Count; i++) 
+			for (int j = 0; j < tb1.Columns.Count; j++) {
+				Assert.AreEqual (tb1.Columns[j].DefaultValue, dt.Rows [i][j], "#1 Element differs from DefaultValue at Row :{0} Column :{1}", i, j);
+				Assert.AreEqual (tb1.Rows [i][j], dt.Rows [i][j], "#2 Elements differ at Row :{0} Column :{1}", i, j);
+			}
+	}
+
+	[Test]
+	public void TestEmptyTable ()
+	{
+	 	//Serialize Table
+		DataTable tb1 = new DataTable ();
+		tb1.Columns.Add ("id", typeof (int));
+		tb1.Columns.Add ("Date", typeof (string));
+
+		MemoryStream ms = new MemoryStream ();
+		BinaryFormatter bf = new BinaryFormatter ();
+		tb1.RemotingFormat = SerializationFormat.Binary;
+		bf.Serialize (ms,tb1);
+		byte [] serializedStream = ms.ToArray ();
+		ms.Close ();
+		//DserializeTable
+		ms = new MemoryStream (serializedStream);
+		DataTable dt = (DataTable)bf.Deserialize (ms);
+		ms.Close ();
+
+		Assert.AreEqual(tb1.Rows.Count, dt.Rows.Count);
+	}
+
 	[Test]
 	public void Test_With_Null_Values1 ()
 	{