Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGert Driesen <drieseng@users.sourceforge.net>2009-01-19 00:06:07 +0300
committerGert Driesen <drieseng@users.sourceforge.net>2009-01-19 00:06:07 +0300
commit4efbca7c6de5732228ffd54a22c0e948ea4fb580 (patch)
tree01aefa7ca425c1b384e6f570cb6035b8abc3c7ca /mcs/class/System.Data/Test
parent36453ac9b008bed4411cac8cc13628e2161f3e31 (diff)
* DataReaderTest.cs: Added indexer tests. Added/improved GetBytes
tests. * IDbCommandTest.cs: Added test for ExecuteReader with CommandText that is not initialized. Improved ExecuteScalar test. svn path=/trunk/mcs/; revision=123750
Diffstat (limited to 'mcs/class/System.Data/Test')
-rw-r--r--mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/ChangeLog7
-rw-r--r--mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/DataReaderTest.cs385
-rw-r--r--mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/IDbCommandTest.cs59
3 files changed, 426 insertions, 25 deletions
diff --git a/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/ChangeLog b/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/ChangeLog
index 11b7fe826b6..24e930d7180 100644
--- a/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/ChangeLog
+++ b/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/ChangeLog
@@ -1,3 +1,10 @@
+2009-01-18 Gert Driesen <drieseng@users.sourceforge.net>
+
+ * DataReaderTest.cs: Added indexer tests. Added/improved GetBytes
+ tests.
+ * IDbCommandTest.cs: Added test for ExecuteReader with CommandText
+ that is not initialized. Improved ExecuteScalar test.
+
2009-01-03 Gert Driesen <drieseng@users.sourceforge.net>
* DataReaderTest.cs: Added tests for GetValue. Improved test
diff --git a/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/DataReaderTest.cs b/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/DataReaderTest.cs
index 253c7b277d6..65147f1b473 100644
--- a/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/DataReaderTest.cs
+++ b/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/DataReaderTest.cs
@@ -540,7 +540,7 @@ namespace MonoTests.System.Data
}
[Test]
- public void GetOrdinal_Name_DoesNotExist ()
+ public void GetOrdinal_Name_NotFound ()
{
IDataReader reader = null;
@@ -686,6 +686,292 @@ namespace MonoTests.System.Data
}
}
+ [Test] // this [Int32]
+ public void Indexer1 ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "SELECT * FROM employee WHERE lname='kumar'";
+ reader = cmd.ExecuteReader ();
+ Assert.IsTrue (reader.Read ());
+ Assert.AreEqual (1, reader [0], "#0");
+ Assert.AreEqual ("suresh", reader [1], "#1");
+ Assert.AreEqual ("kumar", reader [2], "#2");
+ Assert.AreEqual (new DateTime (1978, 8, 22), reader [3], "#3");
+ Assert.AreEqual (new DateTime (2001, 3, 12), reader [4], "#4");
+ Assert.AreEqual ("suresh@gmail.com", reader [5], "#5");
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [Int32]
+ public void Indexer1_Reader_Closed ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee";
+ reader = cmd.ExecuteReader ();
+ reader.Read ();
+ reader.Close ();
+
+ try {
+ object value = reader [0];
+ Assert.Fail ("#A1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ }
+
+ reader = cmd.ExecuteReader ();
+ reader.Close ();
+
+ try {
+ object value = reader [0];
+ Assert.Fail ("#B1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [Int32]
+ public void Indexer1_Reader_NoData ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee WHERE lname='kumar'";
+ reader = cmd.ExecuteReader ();
+ try {
+ object value = reader [0];
+ Assert.Fail ("#A1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ }
+
+ Assert.IsTrue (reader.Read ());
+ Assert.IsFalse (reader.Read ());
+
+ try {
+ object value = reader [0];
+ Assert.Fail ("#B1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [Int32]
+ public void Indexer1_Value_Invalid ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee";
+ reader = cmd.ExecuteReader ();
+ Assert.IsTrue (reader.Read ());
+ try {
+ object value = reader [-1];
+ Assert.Fail ("#A1:" + value);
+ } catch (IndexOutOfRangeException ex) {
+ // Index was outside the bounds of the array
+ Assert.AreEqual (typeof (IndexOutOfRangeException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ }
+
+ try {
+ object value = reader [1];
+ Assert.Fail ("#B1:" + value);
+ } catch (IndexOutOfRangeException ex) {
+ // Index was outside the bounds of the array
+ Assert.AreEqual (typeof (IndexOutOfRangeException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [String]
+ public void Indexer2 ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "SELECT * FROM employee WHERE lname='kumar'";
+ reader = cmd.ExecuteReader ();
+ Assert.IsTrue (reader.Read ());
+ Assert.AreEqual (1, reader ["id"], "id");
+ Assert.AreEqual ("suresh", reader ["fname"], "fname");
+ Assert.AreEqual ("kumar", reader ["lname"], "lname");
+ Assert.AreEqual (new DateTime (1978, 8, 22), reader ["doB"], "doB");
+ Assert.AreEqual (new DateTime (2001, 3, 12), reader ["doj"], "doj");
+ Assert.AreEqual ("suresh@gmail.com", reader ["EmaiL"], "EmaiL");
+ Assert.AreEqual (1, reader ["iD"], "iD");
+ Assert.AreEqual ("suresh@gmail.com", reader ["eMail"], "eMail");
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [String]
+ public void Indexer2_Reader_Closed ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee";
+ reader = cmd.ExecuteReader ();
+ reader.Read ();
+ reader.Close ();
+
+ try {
+ object value = reader ["fname"];
+ Assert.Fail ("#A1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ }
+
+ reader = cmd.ExecuteReader ();
+ reader.Close ();
+
+ try {
+ object value = reader ["fname"];
+ Assert.Fail ("#B1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [String]
+ public void Indexer2_Reader_NoData ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee WHERE lname='kumar'";
+ reader = cmd.ExecuteReader ();
+
+ try {
+ object value = reader ["fname"];
+ Assert.Fail ("#A1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ }
+
+ Assert.IsTrue (reader.Read ());
+ Assert.IsFalse (reader.Read ());
+
+ try {
+ object value = reader ["fname"];
+ Assert.Fail ("#B1:" + value);
+ } catch (InvalidOperationException ex) {
+ // No data exists for the row/column
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [String]
+ public void Indexer2_Value_NotFound ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee";
+ reader = cmd.ExecuteReader ();
+ Assert.IsTrue (reader.Read ());
+ try {
+ object value = reader ["address"];
+ Assert.Fail ("#A1:" + value);
+ } catch (IndexOutOfRangeException ex) {
+ // Index was outside the bounds of the array
+ Assert.AreEqual (typeof (IndexOutOfRangeException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ }
+
+ try {
+ object value = reader [string.Empty];
+ Assert.Fail ("#B1:" + value);
+ } catch (IndexOutOfRangeException ex) {
+ // Index was outside the bounds of the array
+ Assert.AreEqual (typeof (IndexOutOfRangeException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
+ [Test] // this [String]
+ public void Indexer2_Value_Null ()
+ {
+ IDataReader reader = null;
+
+ try {
+ cmd.CommandText = "select fname from employee";
+ reader = cmd.ExecuteReader ();
+ try {
+ object value = reader [(string) null];
+ Assert.Fail ("#1:" + value);
+ } catch (ArgumentNullException ex) {
+ Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+ Assert.IsNull (ex.InnerException, "#3");
+ Assert.IsNotNull (ex.Message, "#4");
+ Assert.AreEqual ("fieldName", ex.ParamName, "#5");
+ }
+ } finally {
+ if (reader != null)
+ reader.Close ();
+ }
+ }
+
[Test]
public void IsClosed_Command_Disposed ()
{
@@ -1828,12 +2114,10 @@ namespace MonoTests.System.Data
[Test]
public void GetBytes ()
{
+ byte [] expected = new byte [] { 0x32, 0x56, 0x00, 0x44, 0x22 };
cmd.CommandText = "SELECT type_blob FROM binary_family where id = 1";
- CommandBehavior behavior;
-
- behavior = CommandBehavior.SingleResult | CommandBehavior.SequentialAccess;
- using (IDataReader reader = cmd.ExecuteReader (behavior)) {
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
Assert.IsTrue (reader.Read (), "#A1");
// Get By Parts for the column blob
@@ -1850,12 +2134,11 @@ namespace MonoTests.System.Data
count += ret;
} while (count < totalsize);
- Assert.AreEqual (5, count, "#A2");
- Assert.AreEqual (new byte [] { 0x32, 0x56, 0x00, 0x44, 0x22 }, val, "#A3");
+ Assert.AreEqual (expected.Length, count, "#A2");
+ Assert.AreEqual (expected, val, "#A3");
}
- behavior = CommandBehavior.SingleResult;
- using (IDataReader reader = cmd.ExecuteReader (behavior)) {
+ using (IDataReader reader = cmd.ExecuteReader ()) {
Assert.IsTrue (reader.Read (), "#B1");
// Get By Parts for the column blob
@@ -1873,20 +2156,40 @@ namespace MonoTests.System.Data
count += ret;
} while (count < totalsize);
- Assert.AreEqual (5, count, "#B2");
- Assert.AreEqual (new byte [] { 0x32, 0x56, 0x00, 0x44, 0x22 }, val, "#B3");
+ Assert.AreEqual (expected.Length, count, "#B2");
+ Assert.AreEqual (expected, val, "#B3");
}
- behavior = CommandBehavior.SingleResult;
- using (IDataReader reader = cmd.ExecuteReader (behavior)) {
- Assert.IsTrue (reader.Read (), "#D1");
+ // buffer size > (buffer offset + length) > remaining data
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
+ Assert.IsTrue (reader.Read ());
long totalsize = reader.GetBytes (0, 0, null, 0, 0);
+ byte [] val = new byte [totalsize + 5];
+ int buffer_offset = 3;
- byte [] val = new byte [totalsize];
- long ret = reader.GetBytes (0, 0L, val, 0, (int) (totalsize * 2));
- Assert.AreEqual (totalsize, ret, "#D2");
- Assert.AreEqual (new byte [] { 0x32, 0x56, 0x00, 0x44, 0x22 }, val, "#D3");
+ long ret = reader.GetBytes (0, 0, val, buffer_offset, (int) totalsize);
+ Assert.AreEqual (expected.Length, ret, "#C1");
+ for (int i = 0; i < buffer_offset; i++)
+ Assert.AreEqual (0x00, val [i], "#C2:" + i);
+ for (int i = 0; i < totalsize; i++)
+ Assert.AreEqual (expected [i], val [buffer_offset + i], "#C3:" + i);
+ }
+
+ // buffer size > (buffer offset + length) > remaining data
+ using (IDataReader reader = cmd.ExecuteReader ()) {
+ Assert.IsTrue (reader.Read ());
+
+ long totalsize = reader.GetBytes (0, 0, null, 0, 0);
+ byte [] val = new byte [totalsize + 5];
+ int buffer_offset = 3;
+
+ long ret = reader.GetBytes (0, 0, val, buffer_offset, (int) totalsize);
+ Assert.AreEqual (expected.Length, ret, "#D1");
+ for (int i = 0; i < buffer_offset; i++)
+ Assert.AreEqual (0x00, val [i], "#D2:" + i);
+ for (int i = 0; i < totalsize; i++)
+ Assert.AreEqual (expected [i], val [buffer_offset + i], "#D3:" + i);
}
/* FIXME: dataIndex is currently ignored */
@@ -1985,7 +2288,7 @@ namespace MonoTests.System.Data
using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
Assert.IsTrue (reader.Read (), "#E1");
- Assert.AreEqual (5, reader.GetBytes (0, 5, null, 3, 4), "#E2");
+ Assert.AreEqual (5, reader.GetBytes (0, 5, null, 3, 8), "#E2");
Assert.IsTrue (reader.Read (), "#F1");
Assert.AreEqual (275, reader.GetBytes (0, 5, null, 3, 4), "#F2");
@@ -2055,7 +2358,7 @@ namespace MonoTests.System.Data
using (IDataReader reader = cmd.ExecuteReader ()) {
Assert.IsTrue (reader.Read (), "#M1");
- Assert.AreEqual (5, reader.GetBytes (0, 5, null, 3, 4), "#M2");
+ Assert.AreEqual (5, reader.GetBytes (0, 5, null, 3, 8), "#M2");
Assert.IsTrue (reader.Read (), "#N1");
Assert.AreEqual (275, reader.GetBytes (0, 5, null, 3, 4), "#N2");
@@ -2093,6 +2396,48 @@ namespace MonoTests.System.Data
}
[Test]
+ public void GetBytes_DataIndex_Overflow ()
+ {
+ cmd.CommandText = "SELECT type_blob FROM binary_family where id = 2";
+
+ using (IDataReader reader = cmd.ExecuteReader (CommandBehavior.SequentialAccess)) {
+ Assert.IsTrue (reader.Read ());
+
+ long totalsize = reader.GetBytes (0, 0, null, 0, 0);
+ byte [] val = new byte [totalsize * 2];
+ long ret;
+
+ // dataIndex > total size, length = 0
+ ret = reader.GetBytes (0, totalsize + 5, val, 0, 0);
+ Assert.AreEqual (0, ret, "#C1");
+ // dataIndex > total size, length < total size
+ ret = reader.GetBytes (0, totalsize + 5, val, 0, 5);
+ Assert.AreEqual (0, ret, "#C2");
+ // dataIndex > total size, length > total size
+ ret = reader.GetBytes (0, totalsize + 5, val, 0, (int) (totalsize + 5));
+ Assert.AreEqual (0, ret, "#C3");
+ }
+
+ using (IDataReader reader = cmd.ExecuteReader ()) {
+ Assert.IsTrue (reader.Read ());
+
+ long totalsize = reader.GetBytes (0, 0, null, 0, 0);
+ byte [] val = new byte [totalsize * 2];
+ long ret;
+
+ // dataIndex > total size, length = 0
+ ret = reader.GetBytes (0, totalsize + 5, val, 0, 0);
+ Assert.AreEqual (0, ret, "#B1");
+ // dataIndex > total size, length < total size
+ ret = reader.GetBytes (0, totalsize + 5, val, 0, 5);
+ Assert.AreEqual (0, ret, "#B2");
+ // dataIndex > total size, length > total size
+ ret = reader.GetBytes (0, totalsize + 5, val, 0, (int) (totalsize + 5));
+ Assert.AreEqual (0, ret, "#B3");
+ }
+ }
+
+ [Test]
public void GetBytes_DataIndex_OffSet ()
{
cmd.CommandText = "SELECT type_blob FROM binary_family where id = 2";
diff --git a/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/IDbCommandTest.cs b/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/IDbCommandTest.cs
index ce392efd6f5..79903b490a9 100644
--- a/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/IDbCommandTest.cs
+++ b/mcs/class/System.Data/Test/ProviderTests/ProviderIndependant/IDbCommandTest.cs
@@ -73,7 +73,7 @@ namespace MonoTests.System.Data
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
Assert.IsNull (ex.InnerException, "#A3");
Assert.IsNotNull (ex.Message, "#A4");
- Assert.IsTrue (ex.Message.IndexOf ("ExecuteNonQuery") != -1, "#A5:" + ex.Message);
+ Assert.IsTrue (ex.Message.StartsWith ("ExecuteNonQuery"), "#A5:" + ex.Message);
}
cmd.CommandText = string.Empty;
@@ -87,7 +87,7 @@ namespace MonoTests.System.Data
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
Assert.IsNull (ex.InnerException, "#B3");
Assert.IsNotNull (ex.Message, "#B4");
- Assert.IsTrue (ex.Message.IndexOf ("ExecuteNonQuery") != -1, "#B5:" + ex.Message);
+ Assert.IsTrue (ex.Message.StartsWith ("ExecuteNonQuery"), "#B5:" + ex.Message);
}
cmd.CommandText = null;
@@ -101,7 +101,51 @@ namespace MonoTests.System.Data
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNull (ex.InnerException, "#C3");
Assert.IsNotNull (ex.Message, "#C4");
- Assert.IsTrue (ex.Message.IndexOf ("ExecuteNonQuery") != -1, "#C5:" + ex.Message);
+ Assert.IsTrue (ex.Message.StartsWith ("ExecuteNonQuery"), "#C5:" + ex.Message);
+ }
+ }
+
+ [Test]
+ public void ExecuteReader_CommandText_Empty ()
+ {
+ try {
+ cmd.ExecuteReader ();
+ Assert.Fail ("#A1");
+ } catch (InvalidOperationException ex) {
+ // ExecuteReader: CommandText property
+ // has not been initialized
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
+ Assert.IsNull (ex.InnerException, "#A3");
+ Assert.IsNotNull (ex.Message, "#A4");
+ Assert.IsTrue (ex.Message.StartsWith ("ExecuteReader"), "#A5:" + ex.Message);
+ }
+
+ cmd.CommandText = string.Empty;
+
+ try {
+ cmd.ExecuteReader ();
+ Assert.Fail ("#B1");
+ } catch (InvalidOperationException ex) {
+ // ExecuteReader: CommandText property
+ // has not been initialized
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
+ Assert.IsNull (ex.InnerException, "#B3");
+ Assert.IsNotNull (ex.Message, "#B4");
+ Assert.IsTrue (ex.Message.StartsWith ("ExecuteReader"), "#B5:" + ex.Message);
+ }
+
+ cmd.CommandText = null;
+
+ try {
+ cmd.ExecuteReader ();
+ Assert.Fail ("#C1");
+ } catch (InvalidOperationException ex) {
+ // ExecuteReader: CommandText property
+ // has not been initialized
+ Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
+ Assert.IsNull (ex.InnerException, "#C3");
+ Assert.IsNotNull (ex.Message, "#C4");
+ Assert.IsTrue (ex.Message.StartsWith ("ExecuteReader"), "#C5:" + ex.Message);
}
}
@@ -155,12 +199,17 @@ namespace MonoTests.System.Data
}
[Test]
- public void ExecuteScalarTest ()
+ public void ExecuteScalar ()
{
cmd.CommandText = "select count(*) from employee where id < 3";
Assert.AreEqual (2, (int) Convert.ChangeType (cmd.ExecuteScalar (),
typeof (int)),
- "#1 there should be 2 records");
+ "#1");
+ cmd.Dispose ();
+
+ cmd = conn.CreateCommand ();
+ cmd.CommandText = "select id from employee where id = 666";
+ Assert.IsNull (cmd.ExecuteScalar (), "#2");
}
}
}