public void xDataTableToDataSetXMLTest() { var dt_now = System.DateTime.Now; var dto_Now = System.DateTimeOffset.Now; var datatable1 = new System.Data.DataTable(); datatable1.Columns.Add("Name", typeof(string)); datatable1.Columns.Add("Age", typeof(int)); datatable1.Columns.Add("Alive", typeof(bool)); datatable1.Columns.Add("Updated", typeof(System.DateTime)); datatable1.Columns.Add("Accessed", typeof(System.DateTimeOffset)); datatable1.Rows.Add("Akuma", 38, true, dt_now, dto_Now); datatable1.Rows.Add("Ken", 38, true, dt_now, dto_Now); datatable1.Rows.Add("Ryu", null, true, dt_now, dto_Now); datatable1.TableName = "Competitors"; datatable1.Rows[2][2] = 100; string filename = System.IO.Path.GetTempFileName(); var dataset1 = new System.Data.DataSet(); dataset1.Tables.Add(datatable1); DataExporter.ToXML(dataset1, filename); var dataset2 = DataSetBuilder.FromXML(filename); var datatable2 = dataset2.Tables[0]; Assert.AreEqual(5, datatable2.Columns.Count); Assert.AreEqual("Name", datatable2.Columns[0].ColumnName); Assert.AreEqual(typeof(string), datatable2.Columns[0].DataType); Assert.AreEqual("Age", datatable2.Columns[1].ColumnName); Assert.AreEqual(typeof(int), datatable2.Columns[1].DataType); Assert.AreEqual("Alive", datatable2.Columns[2].ColumnName); Assert.AreEqual(typeof(bool), datatable2.Columns[2].DataType); Assert.AreEqual("Updated", datatable2.Columns[3].ColumnName); Assert.AreEqual(typeof(System.DateTime), datatable2.Columns[3].DataType); Assert.AreEqual("Accessed", datatable2.Columns[4].ColumnName); Assert.AreEqual(typeof(System.DateTimeOffset), datatable2.Columns[4].DataType); Assert.AreEqual(3, datatable2.Rows.Count); var row0 = datatable2.Rows[0].ItemArray; var row1 = datatable2.Rows[1].ItemArray; var row2 = datatable2.Rows[2].ItemArray; Assert.AreEqual("Akuma", row0[0]); Assert.AreEqual(38, row0[1]); Assert.AreEqual(true, row0[2]); var actual_datetime = (System.DateTime)row0[3]; Assert.AreEqual(dt_now.Year, actual_datetime.Year); Assert.AreEqual(dt_now.Month, actual_datetime.Month); Assert.AreEqual(dt_now.Day, actual_datetime.Day); Assert.AreEqual(dt_now.Hour, actual_datetime.Hour); Assert.AreEqual(dt_now.Minute, actual_datetime.Minute); Assert.AreEqual(dt_now.Second, actual_datetime.Second); Assert.AreEqual(dt_now.Millisecond, actual_datetime.Millisecond); Assert.AreEqual(typeof(System.DBNull), row2[1].GetType()); System.IO.File.Delete(filename); }