public void XmlTest9()
{
MakeParentTable1();
MakeChildTable();
MakeSecondChildTable();
//Relate the parent and the children
MakeDataRelation();
using (FileStream stream = new FileStream(_tempFile, FileMode.Create))
{
//Write only the Xml
_parentTable1.WriteXml(stream, XmlWriteMode.IgnoreSchema, true);
}
DataSet ds = new DataSet();
ds.ReadXml(_tempFile);
Assert.Equal(3, ds.Tables.Count);
Assert.Equal("ParentTable", ds.Tables[0].TableName);
Assert.Equal("ChildTable", ds.Tables[1].TableName);
Assert.Equal("SecondChildTable", ds.Tables[2].TableName);
//get the first table
DataTable table = ds.Tables[0];
Assert.Equal(3, table.Rows.Count);
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"]);
//get the second table
table = ds.Tables[1];
Assert.Equal(6, table.Rows.Count);
row = table.Rows[0];
Assert.Equal("1", row["ChildID"]);
Assert.Equal("ChildItem 1", row["ChildItem"]);
Assert.Equal("1", row["ParentID"]);
row = table.Rows[1];
Assert.Equal("2", row["ChildID"]);
Assert.Equal("ChildItem 2", row["ChildItem"]);
Assert.Equal("1", row["ParentID"]);
row = table.Rows[2];
Assert.Equal("5", row["ChildID"]);
Assert.Equal("ChildItem 1", row["ChildItem"]);
Assert.Equal("2", row["ParentID"]);
row = table.Rows[3];
Assert.Equal("6", row["ChildID"]);
Assert.Equal("ChildItem 2", row["ChildItem"]);
Assert.Equal("2", row["ParentID"]);
row = table.Rows[4];
Assert.Equal("10", row["ChildID"]);
Assert.Equal("ChildItem 1", row["ChildItem"]);
Assert.Equal("3", row["ParentID"]);
row = table.Rows[5];
Assert.Equal("11", row["ChildID"]);
Assert.Equal("ChildItem 2", row["ChildItem"]);
Assert.Equal("3", row["ParentID"]);
//get the third table
table = ds.Tables[2];
Assert.Equal(6, table.Rows.Count);
row = table.Rows[0];
Assert.Equal("1", row["ChildID"]);
Assert.Equal("SecondChildItem 1", row["ChildItem"]);
Assert.Equal("1", row["ParentID"]);
Assert.Equal("1", row["DepartmentID"]);
row = table.Rows[1];
Assert.Equal("2", row["ChildID"]);
Assert.Equal("SecondChildItem 2", row["ChildItem"]);
Assert.Equal("1", row["ParentID"]);
Assert.Equal("1", row["DepartmentID"]);
row = table.Rows[2];
Assert.Equal("5", row["ChildID"]);
Assert.Equal("SecondChildItem 1", row["ChildItem"]);
Assert.Equal("2", row["ParentID"]);
Assert.Equal("2", row["DepartmentID"]);
row = table.Rows[3];
Assert.Equal("6", row["ChildID"]);
Assert.Equal("SecondChildItem 2", row["ChildItem"]);
Assert.Equal("2", row["ParentID"]);
Assert.Equal("2", row["DepartmentID"]);
row = table.Rows[4];
Assert.Equal("10", row["ChildID"]);
Assert.Equal("SecondChildItem 1", row["ChildItem"]);
Assert.Equal("3", row["ParentID"]);
Assert.Equal("3", row["DepartmentID"]);
row = table.Rows[5];
Assert.Equal("11", row["ChildID"]);
Assert.Equal("SecondChildItem 2", row["ChildItem"]);
Assert.Equal("3", row["ParentID"]);
Assert.Equal("3", row["DepartmentID"]);
}