diff options
author | Senganal T <senga@mono-cvs.ximian.com> | 2006-02-13 10:54:39 +0300 |
---|---|---|
committer | Senganal T <senga@mono-cvs.ximian.com> | 2006-02-13 10:54:39 +0300 |
commit | 870e79a0fddad4d2c0ccb8238fd8a3fa9d8a464c (patch) | |
tree | e27e4225ae6549b4ddeac6a7acf04973d254d876 /mcs/class/System.Data/Test | |
parent | cad7a4e6983be114834d531b8eef4c4e19f89684 (diff) |
2006-02-13 Senganal T <tsenganal@novell.com>
* Test/ProviderTests/System.Data.SqlClient/SqlAdapterTest.cs : Added testcases for #77480
* System.Data.Common/DbDataAdapter.cs :
- FillSchema :
- Add table to schema only if MissingSchemaAction is not Ignore
Add schema to table if MissingSchemaAction is set to either of
Add or AddWithKey
- BuildSchema :
- Set the Schema values only if MissingSchemaAction is set to
AddWithKey
svn path=/branches/mono-1-1-13/mcs/; revision=56832
Diffstat (limited to 'mcs/class/System.Data/Test')
-rw-r--r-- | mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/ChangeLog | 4 | ||||
-rw-r--r-- | mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlDataAdapterTest.cs | 76 |
2 files changed, 80 insertions, 0 deletions
diff --git a/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/ChangeLog b/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/ChangeLog index 24558753b4e..27c8ad4a0b6 100644 --- a/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/ChangeLog +++ b/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/ChangeLog @@ -1,3 +1,7 @@ +2006-02-13 Senganal T <tsenganal@novell.com> + + * SqlAdapterTest.cs : Added testcases for #77480 + 2006-02-05 Senganal T <tsenganal@novell.com> * SqlParameterTest.cs : New : Testcase for bug #77410 diff --git a/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlDataAdapterTest.cs b/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlDataAdapterTest.cs index 2724b6fc11f..488c7c65252 100644 --- a/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlDataAdapterTest.cs +++ b/mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlDataAdapterTest.cs @@ -657,5 +657,81 @@ namespace MonoTests.System.Data.SqlClient Assert.IsTrue (dataSet.Tables[0].Columns[1].AllowDBNull,"#3"); } } + + [Test] + public void Fill_CheckSchema () + { + SqlConnection conn = new SqlConnection(connectionString); + using (conn) { + conn.Open(); + + IDbCommand command = conn.CreateCommand(); + + // Create Temp Table + String cmd = "Create Table #tmp_TestTable (" ; + cmd += "id int primary key,"; + cmd += "field int not null)"; + command.CommandText = cmd; + command.ExecuteNonQuery(); + + DataSet dataSet = new DataSet(); + string selectString = "SELECT * from #tmp_TestTable"; + IDbDataAdapter dataAdapter = new SqlDataAdapter ( + selectString,conn); + dataAdapter.Fill (dataSet); + Assert.IsTrue (dataSet.Tables[0].Columns[1].AllowDBNull, "#1"); + Assert.AreEqual (0, dataSet.Tables[0].PrimaryKey.Length, "#2"); + + dataSet.Reset (); + dataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey ; + dataAdapter.Fill (dataSet); + Assert.IsFalse (dataSet.Tables[0].Columns[1].AllowDBNull, "#3"); + Assert.AreEqual (1, dataSet.Tables[0].PrimaryKey.Length, "#4"); + } + } + + [Test] + public void FillSchema_CheckSchema () + { + SqlConnection conn = new SqlConnection(connectionString); + using (conn) { + conn.Open(); + + IDbCommand command = conn.CreateCommand(); + + // Create Temp Table + String cmd = "Create Table #tmp_TestTable (" ; + cmd += "id int primary key,"; + cmd += "field int not null)"; + command.CommandText = cmd; + command.ExecuteNonQuery(); + + DataSet dataSet = new DataSet(); + string selectString = "SELECT * from #tmp_TestTable"; + IDbDataAdapter dataAdapter = new SqlDataAdapter ( + selectString,conn); + + dataAdapter.FillSchema (dataSet, SchemaType.Mapped); + Assert.IsFalse (dataSet.Tables[0].Columns[1].AllowDBNull, "#1"); + + dataSet.Reset (); + dataAdapter.MissingSchemaAction = MissingSchemaAction.Add; + dataAdapter.FillSchema (dataSet, SchemaType.Mapped); + Assert.IsFalse (dataSet.Tables[0].Columns[1].AllowDBNull, "#2"); + + dataSet.Reset (); + dataAdapter.MissingSchemaAction = MissingSchemaAction.Ignore; + dataAdapter.FillSchema (dataSet, SchemaType.Mapped); + Assert.AreEqual (0, dataSet.Tables.Count, "#3"); + + dataSet.Reset (); + dataAdapter.MissingSchemaAction = MissingSchemaAction.Error; + try { + dataAdapter.FillSchema (dataSet, SchemaType.Mapped); + Assert.Fail ("#4 Error should be thrown"); + } catch (InvalidOperationException e) { + } + } + } } } |