public void Add_ByValuesNullTest()
{
DataTable t = new DataTable("test");
t.Columns.Add("id", typeof(int));
t.Columns.Add("name", typeof(string));
t.Columns.Add("nullable", typeof(string));
t.Columns[0].AutoIncrement = true;
t.Columns[0].AutoIncrementSeed = 10;
t.Columns[0].AutoIncrementStep = 5;
t.Columns[1].DefaultValue = "testme";
// null test & missing columns
DataRow r = t.Rows.Add(new object[] { null, null });
Assert.Equal(10, (int)r[0]);
Assert.Equal("testme", (string)r[1]);
Assert.Equal(DBNull.Value, r[2]);
// dbNull test
r = t.Rows.Add(new object[] { DBNull.Value, DBNull.Value, DBNull.Value });
Assert.Equal(DBNull.Value, r[0]);
Assert.Equal(DBNull.Value, r[1]);
Assert.Equal(DBNull.Value, r[2]);
// ai test & no default value test
r = t.Rows.Add(new object[] { null, null, null });
Assert.Equal(15, (int)r[0]);
Assert.Equal("testme", (string)r[1]);
Assert.Equal(DBNull.Value, r[2]);
}