+2006-03-16 Boris Kirzner <borisk@mainsfot.com>
+ * run-tests.test.connected.bat - fix in TARGET_JVM test script.
+
2006-03-16 Boris Kirzner <borisk@mainsfot.com>
* run-tests.test.connected.bat - fix classpath in TARGET_JVM test script.
+2006-03-16 Boris Kirzner <borisk@mainsfot.com>
+ * System.Data.SqlClient.jvm: added SqlClient tests for TARGET_JVM
+ * System.Data.OleDb.Tests.J2EE.vmwcsproj: added SqlClient tests for TARGET_JVM
+
2006-03-12 Boris Kirzner <borisk@mainsfot.com>
* System.Data.OleDb.J2EE.sln, System.Data.OleDb.Tests.J2EE.vmwcsproj:
changes for automated testing for TARGET_JVM.
<File RelPath="System.Data.OleDb.jvm\OleDbTransaction\OleDbTransaction_Rollback.cs" SubType="Code" BuildAction="Compile"/>\r
<File RelPath="System.Data.OleDb.jvm\OleDbType\OleDbType.cs" SubType="Code" BuildAction="Compile"/>\r
<File RelPath="System.Data.OleDb.jvm\OleDbType\OleDbType_Date.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlCommand\SqlCommand_ExecuteReader_.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlCommand\SqlCommand_ExecuteXmlReader_.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlCommand\SqlCommand_Parameters.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlCommandBuilder\SqlCommandBuilder_DeriveParameters_S.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlConnection\SqlConnection_BeginTransaction_S.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlConnection\SqlConnection_InfoMessage.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlConnection\SqlConnection_StateChange.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlDataAdapter\SqlDataAdapter_RowUpdated.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlDataAdapter\SqlDataAdapter_RowUpdating.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlParameter\SqlParameter_ctor_SO.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlParameter\SqlParameter_Direction.cs" SubType="Code" BuildAction="Compile"/>\r
+ <File RelPath="System.Data.SqlClient.jvm\SqlParameter\SqlParameter_set_DbType_D.cs" SubType="Code" BuildAction="Compile"/>\r
</Include>\r
</Files>\r
<UserProperties jarserver="ipa" project.JDKType="1.5.0_05" REFS.JarPath.rt="..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual MainWin for J2EE\jre5\lib\rt.jar" REFS.JarPath.system.xml="..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Xml.jar" REFS.JarPath.system.data="..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.Data.jar" REFS.JarPath.system="..\..\..\..\..\..\..\..\Program Files\Mainsoft\Visual MainWin for J2EE\jgac\vmw4j2ee_110\System.jar"/>\r
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlCommand_ExecuteReader_ : ADONetTesterClass\r
+ {\r
+ private Exception exp;\r
+ public static void Main()\r
+ {\r
+ SqlCommand_ExecuteReader_ tc = new SqlCommand_ExecuteReader_();\r
+ try\r
+ {\r
+ // Every Test must begin with BeginTest\r
+ tc.BeginTest("SqlCommand_ExecuteReader");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ tc.exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Test must End with EndTest\r
+ tc.EndTest(tc.exp);\r
+ }\r
+ }\r
+\r
+\r
+ [Test] \r
+ public void run()\r
+ {\r
+ // testing only SQLServerr\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer)\r
+ {\r
+ Log("This test is relevant only for MSSQLServer!");\r
+ return;\r
+ }\r
+\r
+ TestCheckSqlStatementThatDeclaresLocalVariableAndUsesIt();\r
+ }\r
+\r
+ public void TestCheckSqlStatementThatDeclaresLocalVariableAndUsesIt()\r
+ {\r
+ SqlConnection conn = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ SqlDataReader rdr=null;\r
+ try\r
+ {\r
+ BeginCase("Check sql statement that declares a local variable and uses it.");\r
+ SqlCommand cmd = new SqlCommand();\r
+ conn.Open();\r
+ cmd.Connection = conn;\r
+\r
+ cmd.CommandText = "declare @var int; select @var=1;";\r
+ cmd.CommandType = CommandType.Text;\r
+ \r
+ rdr = cmd.ExecuteReader();\r
+ Compare(rdr.Read(), false);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ exp = null;\r
+ if (conn != null && conn.State != ConnectionState.Closed)\r
+ {\r
+ conn.Close();\r
+ }\r
+ if (rdr != null && !rdr.IsClosed)\r
+ {\r
+ rdr.Close();\r
+ }\r
+ }\r
+ }\r
+\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using System.Xml;\r
+using System.Text;\r
+using System.IO;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlCommand_ExecuteXmlReader_ : ADONetTesterClass\r
+ {\r
+ public static void Main()\r
+ {\r
+ SqlCommand_ExecuteXmlReader_ tc = new SqlCommand_ExecuteXmlReader_();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ // Every Test must begin with BeginTest\r
+ tc.BeginTest("SqlCommand_ExecuteXmlReader");\r
+\r
+ //testing only on SQLServer\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer) return ; \r
+\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Test must End with EndTest\r
+ tc.EndTest(exp);\r
+ }\r
+ }\r
+\r
+ [Test]\r
+ [Category("NotWorking")]\r
+ public void run()\r
+ {\r
+ Exception exp = null;\r
+\r
+ // Start Sub Test\r
+ try\r
+ {\r
+ // Every Sub Test must begin with BeginCase\r
+ BeginCase("ExecuteXmlReader 1");\r
+\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+\r
+ con.Open();\r
+ string selectStr = "SELECT * FROM Products WHERE PRODUCTID=1 FOR XML AUTO, XMLDATA;" + \r
+ "SELECT * FROM Orders WHERE ORDERID=1 FOR XML AUTO, XMLDATA;" + \r
+ "SELECT * FROM Customers WHERE CustomerID like 'A%' FOR XML AUTO, XMLDATA";\r
+ \r
+ SqlCommand comm = new SqlCommand(selectStr,con);\r
+ // ExecuteXmlReader is not supported yet\r
+ XmlReader xr = null; // = comm.ExecuteXmlReader();\r
+\r
+ StringBuilder sb = new StringBuilder();\r
+ while(xr.Read()) \r
+ {\r
+ sb.Append(xr.ReadOuterXml());\r
+ }\r
+ // Every Sub Test must have a Compare\r
+ string strXml = null;\r
+ Compare(sb.ToString().Length,4391);\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Sub Test must end with EndCase\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ // End Sub Test\r
+ }\r
+\r
+\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.OleDb;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlCommand_Parameters : ADONetTesterClass\r
+ {\r
+ Exception exp;\r
+\r
+ public static void Main()\r
+ {\r
+ SqlCommand_Parameters tc = new SqlCommand_Parameters();\r
+ tc.exp = null;\r
+ try\r
+ {\r
+ tc.BeginTest("SqlCommand_Parameters");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ tc.exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ tc.EndTest(tc.exp);\r
+ }\r
+ }\r
+\r
+ [Test] \r
+ public void run()\r
+ {\r
+ // testing only SQLServerr\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer)\r
+ {\r
+ Log("This test is relevant only for MSSQLServer!");\r
+ return;\r
+ }\r
+\r
+ CommandParameterTreatBitAsBoolean();\r
+ TestparametersBindByNameOnMSSQLServer();\r
+ \r
+ }\r
+\r
+ //Bug 2814 - MSSQL - Command.Parameters treat bit as Boolean ---- \r
+ public void CommandParameterTreatBitAsBoolean()\r
+ {\r
+ exp=null;\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ try\r
+ {\r
+ BeginCase("Bug 2814 - MSSQL - Command.Parameters treat bit as Boolean");\r
+ SqlCommand cmd = new SqlCommand("SELECT * FROM Products where ProductID = @ProductID AND Discontinued = @Discontinued",con);\r
+ cmd.Connection = con;\r
+ con.Open();\r
+ cmd.CommandType = CommandType.Text;\r
+ \r
+ cmd.Parameters.Add( new SqlParameter("@ProductID", SqlDbType.Int, 4));\r
+ cmd.Parameters.Add( new SqlParameter("@Discontinued", SqlDbType.Int, 4));\r
+ \r
+ cmd.Parameters["@ProductID"].Value = 5;\r
+ cmd.Parameters["@Discontinued"].Value = 1;\r
+ \r
+ SqlDataReader dr = cmd.ExecuteReader(); \r
+ if (dr.HasRows)\r
+ {\r
+ dr.Read();\r
+ Compare(dr.GetValue(0).ToString(),"5");\r
+ }\r
+ else\r
+ {\r
+ Fail("HasRows is not 0.");\r
+ } \r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ if (con.State == ConnectionState.Open) \r
+ {\r
+ con.Close();\r
+ }\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ }\r
+ /// <summary>\r
+ /// Binding parameters in MSSQLServer should be done by parameter name, regardless of their order.\r
+ /// </summary>\r
+ public void TestparametersBindByNameOnMSSQLServer()\r
+ {\r
+ SqlConnection conn = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ SqlDataReader rdr;\r
+ try\r
+ {\r
+ BeginCase("Insert parameters of the same types in different order.");\r
+ SqlCommand cmd = new SqlCommand();\r
+ conn.Open();\r
+ cmd.Connection = conn;\r
+\r
+ cmd.CommandText = "SalesByCategory";\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ \r
+ //Stored procedure is declared as "SalesByCategory @CategoryName nvarchar(15), @OrdYear nvarchar(4) = '1998'"\r
+ //The test declares them in reverse order.\r
+ cmd.Parameters.Add("@OrdYear", "1996");\r
+ cmd.Parameters.Add("@CategoryName", "Beverages");\r
+\r
+ rdr = cmd.ExecuteReader();\r
+ int actualAffectedRows = 0;\r
+ while (rdr.Read())\r
+ {\r
+ actualAffectedRows++;\r
+ }\r
+ Compare(actualAffectedRows, 12);\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ exp = null;\r
+ if (conn.State != ConnectionState.Closed)\r
+ {\r
+ conn.Close();\r
+ }\r
+ }\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlCommandBuilder_DeriveParameters_S : GHTBase\r
+ {\r
+ SqlConnection con;\r
+ SqlCommand cmd;\r
+ public static void Main()\r
+ {\r
+ SqlCommandBuilder_DeriveParameters_S tc = new SqlCommandBuilder_DeriveParameters_S();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ // Every Test must begin with BeginTest\r
+ tc.BeginTest("DeriveParameters");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ exp=ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Test must End with EndTest\r
+ tc.EndTest(exp);\r
+ }\r
+ \r
+ \r
+ }\r
+\r
+ [SetUp]\r
+ public void setUp()\r
+ {\r
+ if (con == null)\r
+ {\r
+ con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ con.Open();\r
+ }\r
+ }\r
+\r
+ [TearDown]\r
+ public void tearDown()\r
+ {\r
+ if (con.State == ConnectionState.Open)\r
+ {\r
+ con.Close();\r
+ }\r
+\r
+ }\r
+\r
+ public void run()\r
+ {\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer)\r
+ {\r
+ //All tests in this class are only for MSSQLServer.\r
+ Log(string.Format("All tests in this class are only for MSSQLServer and cannot be tested on {0}", ConnectedDataProvider.GetDbType()));\r
+ return;\r
+ }\r
+\r
+ setUp();\r
+ test();\r
+ tearDown();\r
+\r
+ \r
+ }\r
+\r
+ [Test]\r
+ public void test()\r
+ {\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer)\r
+ {\r
+ //All tests in this class are only for MSSQLServer.\r
+ Log(string.Format("All tests in this class are only for MSSQLServer and cannot be tested on {0}", ConnectedDataProvider.GetDbType()));\r
+ return;\r
+ }\r
+\r
+ Exception exp = null;\r
+ BeginCase("Checking with sp that doesn't exsits ");\r
+ try\r
+ {\r
+ cmd = new SqlCommand("NotExists",con);\r
+ cmd.CommandType = CommandType.StoredProcedure;\r
+ SqlCommandBuilder.DeriveParameters(cmd);\r
+ } \r
+ catch(InvalidOperationException ex)\r
+ {\r
+ ExpectedExceptionCaught(ex);\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ if (exp == null)\r
+ {\r
+ ExpectedExceptionNotCaught("InvalidOperationException");\r
+ }\r
+ EndCase(null);\r
+ exp = null;\r
+ }\r
+\r
+ }\r
+\r
+ //Activate This Construntor to log All To Standard output\r
+ //public TestClass():base(true){}\r
+\r
+ //Activate this constructor to log Failures to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, false){}\r
+\r
+ //Activate this constructor to log All to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, true){}\r
+\r
+ //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES\r
+\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.OleDb;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlConnection_BeginTransaction_S : ADONetTesterClass\r
+ {\r
+ SqlConnection con;\r
+\r
+ [SetUp]\r
+ public void SetUp()\r
+ {\r
+ Exception exp = null;\r
+ BeginCase("Setup");\r
+ try\r
+ {\r
+ con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ con.Open();\r
+ Compare("Setup", "Setup");\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ }\r
+\r
+ [TearDown]\r
+ public void TearDown()\r
+ {\r
+ if (con != null)\r
+ {\r
+ if (con.State == ConnectionState.Open) con.Close();\r
+ }\r
+ }\r
+\r
+ public static void Main()\r
+ {\r
+ SqlConnection_BeginTransaction_S tc = new SqlConnection_BeginTransaction_S();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ tc.BeginTest("SqlConnection_BeginTransaction_S");\r
+\r
+ //testing only on SQLServer\r
+ if (ConnectedDataProvider.GetDbType(ConnectedDataProvider.ConnectionStringSQLClient) != DataBaseServer.SQLServer) return ; \r
+\r
+ tc.SetUp();\r
+ tc.run();\r
+ tc.TearDown();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ tc.EndTest(exp);\r
+ }\r
+ }\r
+\r
+ [Test] \r
+ public void run()\r
+ {\r
+ Exception exp = null;\r
+\r
+ #region ---- Bug 2716 - MSSQL - SqlCommand.Transaction ---- \r
+ // testing only SQLServerr\r
+ if (ConnectedDataProvider.GetDbType(con.ConnectionString) != DataBaseServer.SQLServer)\r
+ {\r
+ try\r
+ {\r
+ BeginCase("Bug 2716 - MSSQL - SqlCommand.Transaction");\r
+ SqlCommand comm = new SqlCommand("SELECT * FROM Customers",con);\r
+\r
+ SqlTransaction trans = con.BeginTransaction("transaction");\r
+ comm.Transaction = trans;\r
+\r
+ con.Close();\r
+ Compare(con.State,ConnectionState.Closed);\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ if (con != null)\r
+ {if (con.State == ConnectionState.Open) con.Close();}\r
+\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+\r
+ }\r
+ #endregion\r
+\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+using System.Threading;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlConnection_InfoMessage : GHTBase\r
+ {\r
+ private int errorCounter=0;\r
+\r
+ public static void Main()\r
+ {\r
+ SqlConnection_InfoMessage tc = new SqlConnection_InfoMessage();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ // Every Test must begin with BeginTest\r
+ tc.BeginTest("NoName");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Test must End with EndTest\r
+ tc.EndTest(exp);\r
+ }\r
+ // After test is ready, remove this line\r
+ \r
+ }\r
+\r
+ [Test] \r
+ [Category("NotWorking")]\r
+ public void run()\r
+ {\r
+ Exception exp = null;\r
+\r
+ // Start Sub Test\r
+ try\r
+ {\r
+ BeginCase("InfoMessage testing");\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ con.Open();\r
+ con.InfoMessage+=new SqlInfoMessageEventHandler(con_InfoMessage);\r
+ generateError(con);\r
+ con.Close();\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Sub Test must end with EndCase\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ // End Sub Test\r
+ }\r
+\r
+\r
+ private void generateError(SqlConnection con)\r
+ {\r
+ string errorString = string.Empty;\r
+ SqlCommand cmd = new SqlCommand (string.Empty,con); \r
+ cmd.CommandText = "Raiserror ('A sample SQL informational message',10,1)";\r
+\r
+ \r
+ cmd.ExecuteNonQuery();\r
+ \r
+ \r
+ \r
+ // cmd.CommandText = "TestInfoMessage";\r
+ // cmd.CommandType = CommandType.StoredProcedure;\r
+\r
+ \r
+ if (errorCounter == 0)\r
+ {\r
+ Thread.Sleep(5000); \r
+ }\r
+ Compare(errorCounter,1);\r
+ }\r
+\r
+\r
+\r
+ //Activate This Construntor to log All To Standard output\r
+ //public TestClass():base(true){}\r
+\r
+ //Activate this constructor to log Failures to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, false){}\r
+\r
+ //Activate this constructor to log All to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, true){}\r
+\r
+ //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES\r
+\r
+ private void con_InfoMessage(object sender, SqlInfoMessageEventArgs e)\r
+ {\r
+ errorCounter++;\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlConnection_StateChange : GHTBase\r
+ {\r
+\r
+ public static void Main()\r
+ {\r
+ SqlConnection_StateChange tc = new SqlConnection_StateChange();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ tc.BeginTest("SqlConnection_StateChange");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex){exp = ex;}\r
+ finally {tc.EndTest(exp);}\r
+ }\r
+\r
+\r
+ bool blnEventRaised = false;\r
+ ConnectionState OriginalState,CurrentState;\r
+\r
+ [Test] \r
+ public void run()\r
+ {\r
+ \r
+ Exception exp = null;\r
+\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ \r
+ // ----------- reserved for future versions of the product ---------------\r
+ //Broken The connection to the data source is broken. This can occur only after the connection has been opened. A connection in this state may be closed and then re-opened. (This value is reserved for future versions of the product).\r
+ //Connecting The connection object is connecting to the data source. (This value is reserved for future versions of the product.) 2 \r
+ //Executing The connection object is executing a command. (This value is reserved for future versions of the product.) 4 \r
+ //Fetching The connection object is retrieving data. (This value is reserved for future versions of the product.) 8 \r
+\r
+ //-------------- checking only the following: ----------------\r
+ //Closed The connection is closed. \r
+ //Open The connection is open. \r
+\r
+\r
+ //add event handler\r
+ con.StateChange +=new StateChangeEventHandler(con_StateChange);\r
+\r
+ con.Open();\r
+ try\r
+ {\r
+ BeginCase("ConnectionState Closed");\r
+ Compare(blnEventRaised,true);\r
+ } \r
+ catch(Exception ex){exp = ex;}\r
+ finally{EndCase(exp); exp = null;}\r
+\r
+ try\r
+ {\r
+ BeginCase("OriginalState Closed");\r
+ Compare(OriginalState,ConnectionState.Closed );\r
+ } \r
+ catch(Exception ex){exp = ex;}\r
+ finally{EndCase(exp); exp = null;}\r
+\r
+ try\r
+ {\r
+ BeginCase("CurrentState Open");\r
+ Compare(CurrentState,ConnectionState.Open );\r
+ } \r
+ catch(Exception ex){exp = ex;}\r
+ finally{EndCase(exp); exp = null;}\r
+\r
+ blnEventRaised = false;\r
+ con.Close();\r
+ try\r
+ {\r
+ BeginCase("ConnectionState Open");\r
+ Compare(blnEventRaised,true);\r
+ } \r
+ catch(Exception ex){exp = ex;}\r
+ finally{EndCase(exp); exp = null;}\r
+\r
+ try\r
+ {\r
+ BeginCase("OriginalState Open");\r
+ Compare(OriginalState,ConnectionState.Open );\r
+ } \r
+ catch(Exception ex){exp = ex;}\r
+ finally{EndCase(exp); exp = null;}\r
+\r
+ try\r
+ {\r
+ BeginCase("CurrentState Close");\r
+ Compare(CurrentState,ConnectionState.Closed );\r
+ } \r
+ catch(Exception ex){exp = ex;}\r
+ finally{EndCase(exp); exp = null;}\r
+\r
+ if (con.State == ConnectionState.Open) con.Close();\r
+ }\r
+\r
+ void con_StateChange(Object sender, StateChangeEventArgs e)\r
+ {\r
+ CurrentState = e.CurrentState ;\r
+ OriginalState = e.OriginalState ;\r
+ blnEventRaised = true;\r
+\r
+\r
+ }\r
+\r
+ //public TestClass():base(true){}\r
+\r
+ //Activate this constructor to log Failures to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, false){}\r
+\r
+ //Activate this constructor to log All to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, true){}\r
+\r
+ //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES\r
+\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.Common;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlDataAdapter_RowUpdated : ADONetTesterClass\r
+ {\r
+ public static void Main()\r
+ {\r
+ SqlDataAdapter_RowUpdated tc = new SqlDataAdapter_RowUpdated();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ tc.BeginTest("SqlDataAdapter_RowUpdated");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ tc.EndTest(exp);\r
+ }\r
+ }\r
+\r
+ int EventCounter = 0;\r
+ DataRow drInsert,drDelete,drUpdate;\r
+\r
+ [Test] \r
+ public void run()\r
+ {\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer)\r
+ {\r
+ Log("Test \"SqlDataAdapter_RowUpdated\" skipped: [Test applies only to sql server]");\r
+ return;\r
+ }\r
+ Exception exp = null;\r
+\r
+ SqlDataAdapter sqlDa = new SqlDataAdapter();\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient); \r
+ \r
+\r
+ sqlDa.SelectCommand = new SqlCommand("",con);\r
+\r
+ base.SqlDataAdapter_BuildUpdateCommands(ref sqlDa); \r
+ // --------- get data from DB -----------------\r
+\r
+ DataSet ds = base.PrepareDBData_Update((DbDataAdapter)sqlDa,true);\r
+\r
+\r
+ // add event handler\r
+ sqlDa.RowUpdated+=new SqlRowUpdatedEventHandler(sqlDa_RowUpdated);\r
+ \r
+ \r
+ \r
+ //insert ,delete, update\r
+ drInsert = ds.Tables[0].NewRow();\r
+ drInsert.ItemArray = new object[] {9991,"Ofer","Borshtein","Insert"};\r
+ drDelete = ds.Tables[0].Rows.Find(9992);\r
+ drUpdate = ds.Tables[0].Rows.Find(9993);\r
+ \r
+ ds.Tables[0].Rows.Add(drInsert);\r
+ drDelete.Delete();\r
+ drUpdate["Title"] = "Jack the ripper"; \r
+\r
+ //execute update to db, will raise events\r
+ sqlDa.Update(ds);\r
+\r
+ try\r
+ {\r
+ BeginCase("EventCounter ");\r
+ Compare(EventCounter ,3);\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ \r
+ sqlDa.RowUpdated-= new SqlRowUpdatedEventHandler(sqlDa_RowUpdated);\r
+ \r
+ //close connection\r
+ if ( ((IDbDataAdapter)sqlDa).SelectCommand.Connection.State != ConnectionState.Closed )\r
+ ((IDbDataAdapter)sqlDa).SelectCommand.Connection.Close();\r
+ }\r
+\r
+\r
+ private void sqlDa_RowUpdated(object sender, SqlRowUpdatedEventArgs e)\r
+ {\r
+ Exception exp = null;\r
+ switch (e.StatementType)\r
+ {\r
+ case StatementType.Insert: \r
+ try\r
+ {\r
+ BeginCase("RowInsert");\r
+ Compare(drInsert ,e.Row );\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ EventCounter++;\r
+ break;\r
+ case StatementType.Delete:\r
+ try\r
+ {\r
+ BeginCase("RowDelete");\r
+ Compare(drDelete ,e.Row );\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ EventCounter++;\r
+ break;\r
+ case StatementType.Update:\r
+ try\r
+ {\r
+ BeginCase("RowUpdate");\r
+ Compare(drUpdate ,e.Row );\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ EventCounter++;\r
+ break;\r
+ }\r
+\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.Common;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlDataAdapter_RowUpdating : ADONetTesterClass\r
+ {\r
+ public static void Main()\r
+ {\r
+ SqlDataAdapter_RowUpdating tc = new SqlDataAdapter_RowUpdating();\r
+ Exception exp = null;\r
+ try\r
+ {\r
+ tc.BeginTest("SqlDataAdapter_RowUpdating");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ tc.EndTest(exp);\r
+ }\r
+ }\r
+\r
+\r
+ //public TestClass():base(true){}\r
+\r
+ //Activate this constructor to log Failures to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, false){}\r
+\r
+\r
+ //Activate this constructor to log All to a log file\r
+ //public TestClass(System.IO.TextWriter tw):base(tw, true){}\r
+\r
+ //BY DEFAULT LOGGING IS DONE TO THE STANDARD OUTPUT ONLY FOR FAILURES\r
+\r
+ int EventCounter = 0;\r
+ DataRow drInsert,drDelete,drUpdate;\r
+ [Test] \r
+ public void run()\r
+ {\r
+ if (ConnectedDataProvider.GetDbType() != DataBaseServer.SQLServer)\r
+ {\r
+ Log("Test \"SqlDataAdapter_RowUpdated\" skipped: [Test applies only to sql server]");\r
+ return;\r
+ }\r
+\r
+ Exception exp = null;\r
+\r
+ SqlDataAdapter sqlDa = new SqlDataAdapter();\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient); \r
+\r
+ sqlDa.SelectCommand = new SqlCommand("",con);\r
+\r
+ base.SqlDataAdapter_BuildUpdateCommands(ref sqlDa); \r
+ // --------- get data from DB -----------------\r
+\r
+ DataSet ds = base.PrepareDBData_Update((DbDataAdapter)sqlDa,true);\r
+\r
+\r
+ // add event handler\r
+ sqlDa.RowUpdating+=new SqlRowUpdatingEventHandler(sqlDa_RowUpdating);\r
+ \r
+ \r
+ \r
+ \r
+ \r
+ //insert ,delete, update\r
+ drInsert = ds.Tables[0].NewRow();\r
+ drInsert.ItemArray = new object[] {9991,"Ofer","Borshtein","Insert"};\r
+ drDelete = ds.Tables[0].Rows.Find(9992);\r
+ drUpdate = ds.Tables[0].Rows.Find(9993);\r
+ \r
+ ds.Tables[0].Rows.Add(drInsert);\r
+ drDelete.Delete();\r
+ drUpdate["Title"] = "Jack the ripper"; \r
+\r
+ //execute update to db, will raise events\r
+ sqlDa.Update(ds);\r
+\r
+ try\r
+ {\r
+ BeginCase("EventCounter ");\r
+ Compare(EventCounter ,3);\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ \r
+ sqlDa.RowUpdating-= new SqlRowUpdatingEventHandler(sqlDa_RowUpdating);\r
+ \r
+ //close connection\r
+ if ( ((IDbDataAdapter)sqlDa).SelectCommand.Connection.State != ConnectionState.Closed )\r
+ ((IDbDataAdapter)sqlDa).SelectCommand.Connection.Close();\r
+ }\r
+\r
+\r
+ private void sqlDa_RowUpdating(object sender, SqlRowUpdatingEventArgs e)\r
+ {\r
+ Exception exp = null;\r
+ switch (e.StatementType)\r
+ {\r
+ case StatementType.Insert: \r
+ try\r
+ {\r
+ BeginCase("RowInsert");\r
+ Compare(drInsert ,e.Row );\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ EventCounter++;\r
+ break;\r
+ case StatementType.Delete:\r
+ try\r
+ {\r
+ BeginCase("RowDelete");\r
+ Compare(drDelete ,e.Row );\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ EventCounter++;\r
+ break;\r
+ case StatementType.Update:\r
+ try\r
+ {\r
+ BeginCase("RowUpdate");\r
+ Compare(drUpdate ,e.Row );\r
+ }\r
+ catch(Exception ex) {exp = ex;}\r
+ finally {EndCase(exp); exp = null;}\r
+ EventCounter++;\r
+ break;\r
+ }\r
+\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Text;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlParameter_Direction : GHTBase\r
+ {\r
+ private Exception exp;\r
+ public static void Main()\r
+ {\r
+ SqlParameter_Direction tc = new SqlParameter_Direction();\r
+ tc.exp = null;\r
+ tc.TestSetup();\r
+ try\r
+ {\r
+ // Every Test must begin with BeginTest\r
+ tc.BeginTest("SqlParameter_Direction");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ tc.exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ tc.EndTest(tc.exp);\r
+ tc.TestTearDown();\r
+ }\r
+ }\r
+ \r
+ public void run()\r
+ {\r
+ TestBug4703();\r
+ }\r
+\r
+ [TestFixtureSetUp]\r
+ public void TestSetup()\r
+ {\r
+ BeginCase("Test Setup");\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ StringBuilder createTestSpBuilder = new StringBuilder();\r
+ createTestSpBuilder.Append("CREATE PROCEDURE dbo.GHSP_DateTimeOutputTest");\r
+ createTestSpBuilder.Append("(");\r
+ createTestSpBuilder.Append(" @LastRefresh datetime OUTPUT");\r
+ createTestSpBuilder.Append(")");\r
+ createTestSpBuilder.Append("AS ");\r
+ createTestSpBuilder.Append("SET @LastRefresh = GETDATE() ");\r
+ createTestSpBuilder.Append("RETURN");\r
+ SqlCommand createTestSpCmd = null;\r
+ try\r
+ {\r
+ createTestSpCmd = new SqlCommand(createTestSpBuilder.ToString(), con);\r
+ con.Open();\r
+ createTestSpCmd.ExecuteNonQuery();\r
+ Pass("Test setup completed successfuly.");\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ Fail("Test setup failed");\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ if (con != null && con.State != ConnectionState.Closed)\r
+ {\r
+ con.Close();\r
+ }\r
+ }\r
+ }\r
+\r
+ [TestFixtureTearDown()]\r
+ public void TestTearDown()\r
+ {\r
+ BeginCase("Test Teardown");\r
+ SqlConnection con = new SqlConnection(ConnectedDataProvider.ConnectionStringSQLClient);\r
+ StringBuilder createTestSpBuilder = new StringBuilder();\r
+ string dropTestSpSql = "DROP PROCEDURE dbo.GHSP_DateTimeOutputTest";\r
+ SqlCommand dropTestSpCmd = null;\r
+ try\r
+ {\r
+ dropTestSpCmd = new SqlCommand(dropTestSpSql, con);\r
+ con.Open();\r
+ dropTestSpCmd.ExecuteNonQuery();\r
+ Pass("Test teardown completed successfuly.");\r
+ }\r
+ catch (Exception ex)\r
+ {\r
+ Fail("Test teardown failed");\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ if (con != null && con.State != ConnectionState.Closed)\r
+ {\r
+ con.Close();\r
+ }\r
+ }\r
+ }\r
+ \r
+ [Test]\r
+ public void TestBug4703()\r
+ {\r
+ try\r
+ {\r
+ BeginCase("Test Bug 4703 - DateTime output parameter of stored procedure contains incorrect time ( always 12:00 AM )");\r
+ string strConnection = ConnectedDataProvider.ConnectionStringSQLClient;\r
+ SqlConnection conn = new SqlConnection(strConnection);\r
+ conn.Open();\r
+ SqlCommand command = conn.CreateCommand();\r
+ SqlParameter param = null;\r
+\r
+ command.CommandType = CommandType.StoredProcedure;\r
+ command.CommandText = "GHSP_DateTimeOutputTest";\r
+\r
+ param = command.CreateParameter();\r
+ param.ParameterName="@LastRefresh";\r
+ param.DbType = DbType.DateTime;\r
+ param.Direction = ParameterDirection.InputOutput;\r
+ DateTime testValue = DateTime.Now;\r
+ param.Value = testValue;\r
+\r
+ command.Parameters.Add( param );\r
+ Compare(param.Value, testValue);\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlParameter_ctor_SO : GHTBase\r
+ {\r
+ private Exception exp = null;\r
+\r
+ public static void Main()\r
+ {\r
+ SqlParameter_ctor_SO tc = new SqlParameter_ctor_SO();\r
+ try\r
+ {\r
+ tc.BeginTest("SqlParameter_ctor_SO");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ tc.exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Test must End with EndTest\r
+ tc.EndTest(tc.exp);\r
+ }\r
+ }\r
+\r
+ public void run()\r
+ {\r
+ CreateParamWithTypeBoolTrue();\r
+ CreateParamWithTypeBoolFalse();\r
+ }\r
+\r
+ [Test(Description="Create an SqlParameter with value of type bool (true)")]\r
+ public void CreateParamWithTypeBoolTrue()\r
+ {\r
+ exp = null;\r
+\r
+ try\r
+ {\r
+ BeginCase("Create an SqlParameter with value of type bool (true)");\r
+ SqlParameter p = new SqlParameter("name", true);\r
+ Compare(p.Value.GetType(), typeof(bool));\r
+ Compare(p.DbType, DbType.Boolean);\r
+ Compare(p.SqlDbType, SqlDbType.Bit);\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ }\r
+\r
+ [Test(Description="Create an SqlParameter with value of type bool (false)")]\r
+ public void CreateParamWithTypeBoolFalse()\r
+ {\r
+ exp = null;\r
+\r
+ try\r
+ {\r
+ BeginCase("Create an SqlParameter with value of type bool (false)");\r
+ SqlParameter p = new SqlParameter("name", false);\r
+ Compare(p.Value.GetType(), typeof(bool));\r
+ Compare(p.DbType, DbType.Boolean);\r
+ Compare(p.SqlDbType, SqlDbType.Bit);\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ }\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+using System;\r
+using System.Data;\r
+using System.Data.SqlClient;\r
+\r
+using MonoTests.System.Data.Utils;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.Data.SqlClient\r
+{\r
+ [TestFixture]\r
+ public class SqlParameter_set_DbType_D : GHTBase\r
+ {\r
+ private Exception exp;\r
+ public static void Main()\r
+ {\r
+ SqlParameter_set_DbType_D tc = new SqlParameter_set_DbType_D();\r
+ tc.exp = null;\r
+ try\r
+ {\r
+ // Every Test must begin with BeginTest\r
+ tc.BeginTest("SqlParameter_set_DbType_D");\r
+ tc.run();\r
+ }\r
+ catch(Exception ex)\r
+ {\r
+ tc.exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Test must End with EndTest\r
+ tc.EndTest(tc.exp);\r
+ }\r
+ }\r
+ \r
+ public void run()\r
+ {\r
+ TestBug4689();\r
+ }\r
+\r
+ [Test]\r
+ public void TestBug4689()\r
+ {\r
+ try\r
+ {\r
+ // Every Sub Test must begin with BeginCase\r
+ BeginCase("Test Bug 4689 - Exception when adding System.Data.DbType.Date parameter");\r
+ SqlCommand command = new SqlCommand();\r
+ SqlParameter param = command.CreateParameter();\r
+ param.ParameterName = "@EffectiveDate";\r
+ param.DbType = DbType.Date;\r
+ param.Value = DateTime.Now.Date;\r
+ command.Parameters.Add(param);\r
+ Pass("Addition of parameter didn't throw exception.");\r
+ } \r
+ catch(Exception ex)\r
+ {\r
+ exp = ex;\r
+ }\r
+ finally\r
+ {\r
+ // Every Sub Test must end with EndCase\r
+ EndCase(exp);\r
+ exp = null;\r
+ }\r
+ }\r
+\r
+ }\r
+}
\ No newline at end of file
xmltool.exe --transform nunit_transform.xslt %GH_OUTPUT_XML%\r
@echo off\r
\r
-@echo\r
-\r
:FINALLY\r
GOTO END\r
\r