public void XmlTest27()
{
MakeDummyTable();
using (FileStream stream = new FileStream(_tempFile, FileMode.Create))
{
_dummyTable.WriteXml(stream, XmlWriteMode.DiffGram);
}
//Create a table and set the table name
DataTable table = new DataTable("DummyTable");
//define the table and add an extra column in the table
table.Columns.Add(new DataColumn("id", typeof(int)));
table.Columns.Add(new DataColumn("DummyItem", typeof(string)));
//Add an extra column which does not match any column in the source diffram
table.Columns.Add(new DataColumn("ExtraColumn", typeof(double)));
XmlReadMode mode = XmlReadMode.Auto;
using (FileStream stream = new FileStream(_tempFile, FileMode.Open))
{
mode = table.ReadXml(stream);
}
Assert.Equal(XmlReadMode.DiffGram, mode);
Assert.Null(table.DataSet);
Assert.Equal(3, table.Columns.Count);
Assert.Equal(typeof(int), table.Columns[0].DataType);
Assert.Equal(typeof(string), table.Columns[1].DataType);
Assert.Equal(typeof(double), table.Columns[2].DataType);
Assert.Equal(3, table.Rows.Count);
//Check Rows
DataRow row = table.Rows[0];
Assert.Equal(1, row[0]);
Assert.Equal("DummyItem 1", row[1]);
Assert.Same(DBNull.Value, row[2]);
Assert.Equal(DataRowState.Unchanged, row.RowState);
row = table.Rows[1];
Assert.Equal(2, row[0]);
Assert.Equal("Changed_DummyItem 2", row[1]);
Assert.Same(DBNull.Value, row[2]);
Assert.Equal(DataRowState.Modified, row.RowState);
row = table.Rows[2];
Assert.Equal(3, row[0]);
Assert.Equal("DummyItem 3", row[1]);
Assert.Same(DBNull.Value, row[2]);
Assert.Equal(DataRowState.Unchanged, row.RowState);
}