* SqlParameterTest.cs: Improved tests for bug #382589.
authorGert Driesen <drieseng@users.sourceforge.net>
Thu, 30 Jul 2009 19:56:59 +0000 (19:56 -0000)
committerGert Driesen <drieseng@users.sourceforge.net>
Thu, 30 Jul 2009 19:56:59 +0000 (19:56 -0000)
svn path=/trunk/mcs/; revision=139119

mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/ChangeLog
mcs/class/System.Data/Test/ProviderTests/System.Data.SqlClient/SqlParameterTest.cs

index 475057247721db5824871d3ba7309abaef17b479..81ff68b319a7343200ad1a2d71f006970158affa 100644 (file)
@@ -1,3 +1,7 @@
+2009-07-30  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * SqlParameterTest.cs: Improved tests for bug #382589.
+
 2009-07-30  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * SqlParameterTest.cs: Added test for bug #526794, and failed
index 2a429426e2a5d6533ebcefd8bfaa42f3f95cf5a3..22f3f10d3334ef1a6d46bee92d3a207c3f691d0c 100644 (file)
@@ -270,7 +270,6 @@ namespace MonoTests.System.Data.SqlClient
                }
 
                [Test] // bug #382589
-               [ExpectedException (typeof (SqlException))]
                public void DecimalMaxAsParamValueExceptionTest () 
                {
                        string create_sp = "CREATE PROCEDURE #sp_bug382539 (@decmax decimal(29,10) OUT)"
@@ -287,12 +286,22 @@ namespace MonoTests.System.Data.SqlClient
                        SqlParameter pValue = new SqlParameter("@decmax", Decimal.MaxValue);
                        pValue.Direction = ParameterDirection.InputOutput;
                        cmd.Parameters.Add(pValue);
-                       cmd.ExecuteNonQuery();
-                       Assert.Fail ("Expected exception didn't occur");
+
+                       try {
+                               cmd.ExecuteNonQuery ();
+                               Assert.Fail ("#1");
+                       } catch (SqlException ex) {
+                               // Error converting data type numeric to decimal
+                               Assert.AreEqual (typeof (SqlException), ex.GetType (), "#2");
+                               Assert.AreEqual ((byte) 16, ex.Class, "#3");
+                               Assert.IsNull (ex.InnerException, "#4");
+                               Assert.IsNotNull (ex.Message, "#5");
+                               Assert.AreEqual (8114, ex.Number, "#6");
+                               Assert.AreEqual ((byte) 5, ex.State, "#7");
+                       }
                }
 
                [Test] // bug# 382589
-               [ExpectedException (typeof (SqlException))]
                public void DecimalMinAsParamValueExceptionTest () 
                {
                        string create_sp = "CREATE PROCEDURE #sp_bug382539 (@decmax decimal(29,10) OUT)"
@@ -309,8 +318,18 @@ namespace MonoTests.System.Data.SqlClient
                        SqlParameter pValue = new SqlParameter("@decmax", Decimal.MinValue);
                        pValue.Direction = ParameterDirection.InputOutput;
                        cmd.Parameters.Add(pValue);
-                       cmd.ExecuteNonQuery();
-                       Assert.Fail ("Expected exception didn't occur");
+                       try {
+                               cmd.ExecuteNonQuery ();
+                               Assert.Fail ("#1");
+                       } catch (SqlException ex) {
+                               // Error converting data type numeric to decimal
+                               Assert.AreEqual (typeof (SqlException), ex.GetType (), "#2");
+                               Assert.AreEqual ((byte) 16, ex.Class, "#3");
+                               Assert.IsNull (ex.InnerException, "#4");
+                               Assert.IsNotNull (ex.Message, "#5");
+                               Assert.AreEqual (8114, ex.Number, "#6");
+                               Assert.AreEqual ((byte) 5, ex.State, "#7");
+                       }
                }
 
                [Test] // bug #526794