public void XmlTest7()
{
MakeParentTable1();
using (FileStream stream = new FileStream(_tempFile, FileMode.Create))
{
WriteXmlSerializable(stream, _parentTable1);
stream.Close();
}
//Create a target table which has matching
// column(s) name and an extra column
DataTable table = new DataTable("ParentTable");
table.Columns.Add(new DataColumn("id", typeof(int)));
table.Columns.Add(new DataColumn("ParentItem", typeof(string)));
table.Columns.Add(new DataColumn("DepartmentID", typeof(int)));
table.Columns.Add(new DataColumn("DummyColumn", typeof(string)));
DataSet dataSet = new DataSet("XmlDataSet");
dataSet.Tables.Add(table);
using (FileStream stream = new FileStream(_tempFile, FileMode.Open))
{
ReadXmlSerializable(stream, table);
}
Assert.Equal("ParentTable", table.TableName);
Assert.Equal(3, table.Rows.Count);
Assert.Equal(4, table.Columns.Count);
Assert.NotNull(table.DataSet);
//Check the Columns
Assert.Equal("id", table.Columns[0].ColumnName);
Assert.Equal(typeof(int), table.Columns[0].DataType);
Assert.Equal("ParentItem", table.Columns[1].ColumnName);
Assert.Equal(typeof(string), table.Columns[1].DataType);
Assert.Equal("DepartmentID", table.Columns[2].ColumnName);
Assert.Equal(typeof(int), table.Columns[2].DataType);
Assert.Equal("DummyColumn", table.Columns[3].ColumnName);
Assert.Equal(typeof(string), table.Columns[3].DataType);
//Check the rows
DataRow row = table.Rows[0];
Assert.Equal(1, row["id"]);
Assert.Equal("ParentItem 1", row["ParentItem"]);
Assert.Equal(1, row["DepartmentID"]);
row = table.Rows[1];
Assert.Equal(2, row["id"]);
Assert.Equal("ParentItem 2", row["ParentItem"]);
Assert.Equal(2, row["DepartmentID"]);
row = table.Rows[2];
Assert.Equal(3, row["id"]);
Assert.Equal("ParentItem 3", row["ParentItem"]);
Assert.Equal(3, row["DepartmentID"]);
}