Browse Source

04-06-16 Sureshkumar T <[email protected]>
* Added standalone NUnit test cases for MySql db related tests.
* Created sub-directory for System.Data.Odbc
* New Files :
MySqlTestBed.cs - Base class for all MySql db based tests.
contains instructions to run these tests.
MySqlTestBed.dll.config - configurable parameters to this test suite.
System.Data.Odbc/OdbcDataReaderTest.cs
System.Data.Odbc/OdbcDataAdapterTest.cs

svn path=/trunk/mcs/; revision=29666

Sureshkumar T 21 years ago
parent
commit
78c2dbbc00

+ 10 - 0
mcs/class/System.Data/Test/ChangeLog

@@ -1,3 +1,13 @@
+2004-06-16  Sureshkumar T <[email protected]>
+	* Added standalone NUnit test cases for MySql db related tests.
+	* Created sub-directory for System.Data.Odbc
+	* New Files :
+		MySqlTestBed.cs 	- Base class for all MySql db based tests. 
+					  contains instructions to run these tests.
+		MySqlTestBed.dll.config - configurable parameters to this test suite.
+		System.Data.Odbc/OdbcDataReaderTest.cs
+		System.Data.Odbc/OdbcDataAdapterTest.cs
+
 2003-05-26  Ben Maurer <[email protected]>
 	* data_linux_test.args: Updated for new test in System.Data
 

+ 138 - 0
mcs/class/System.Data/Test/MySqlTestBed.cs

@@ -0,0 +1,138 @@
+//
+// MySqlTestBed.cs : This is base class which manages the connections to 
+//                    mysql database. This serves as a base class for all
+//		      mysql database dependant tests.
+//
+// To run :
+//  * create a test database in mysql server.
+//  * create an DNS entry.
+//  * update the MySqlTestBed.config with the DNS names and
+//    username, password for connection in the configuration key
+//    MySql-DSN
+//  * compile using following command
+//      mcs /r:System.Data.dll,NUnit.Framework.dll /t:library /debug
+//      /out:MySqlTestBed.dll MySqlTestBed.cs System.Data.Odbc/*.cs
+//  * To run the tests
+//      mono /usr/local/bin/nunit-console.exe MySqlTestBed.dll
+//
+// Author:
+//      Sureshkumar T ([email protected])
+//
+// Copyright (c) 2004 Novell Inc., and the individuals listed
+// on the ChangeLog entries.
+// 
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Data;
+using System.Data.Odbc;
+using System.Collections.Specialized;
+
+namespace MonoTests.System.Data 
+{
+        public class MySqlOdbcBaseClient  
+        {
+                #region protected members
+                protected string connectionString = null;
+                protected OdbcConnection conn = null;
+                protected bool isConnAlive = false;
+                #endregion
+
+                public MySqlOdbcBaseClient ()
+                {
+                        //Connection String with DSN.
+                        NameValueCollection appSettings = System.Configuration.ConfigurationSettings.AppSettings ;
+                        connectionString = appSettings ["MySql-DSN"];
+                        conn = new OdbcConnection (connectionString);
+                }
+
+                protected void OpenConnection () 
+                {
+                        conn.ConnectionString = connectionString;
+                        conn.Open ();
+                        // run tests only if the connection is open,
+                        // otherwise make it fail, to setup with correct
+                        // database settings
+                        if (conn != null && conn.State != ConnectionState.Closed) 
+                                isConnAlive = true;
+                }
+
+                protected void CloseConnection () 
+                {
+                        if (conn != null && conn.State != ConnectionState.Closed) {
+                                conn.Close ();
+                                isConnAlive = false;
+                        }
+                }
+
+                protected void CreateTestSetup ()
+                {
+                        if (!isConnAlive)
+                                return ;
+                        // Create test database & tables
+                        // mysql odbc does not supports batch sql statements
+                        string createQuery = "DROP TABLE IF EXISTS test;" ;
+                        ExecuteQuery (createQuery);
+                        createQuery = "CREATE TABLE test (" + 
+                                          "pk_tint TINYINT NOT NULL PRIMARY KEY," + 
+                                          "col_char CHAR(20)," + 
+                                          "col_int INT," + 
+                                          "col_blob TINYBLOB" + 
+                                          ");";  
+                        ExecuteQuery (createQuery);
+                        createQuery = "INSERT INTO test VALUES (1, 'mono test" +
+                                      "#1', 255, 127123645917568585638457243856234985 );" ; 
+                        ExecuteQuery (createQuery);
+                        createQuery = "INSERT INTO test VALUES (2, 'mono test" +
+                                      "#2', 256, NULL );" ; 
+                        ExecuteQuery (createQuery);
+                        createQuery = "INSERT INTO test VALUES (3, 'mono test" +
+                                      "#3', 257 , 127123645917568585638457243856234985);" ; 
+                        ExecuteQuery (createQuery);
+                        createQuery = "INSERT INTO test VALUES (4, 'mono test" +
+                                      "#4', 258 , 127123645917568585638457243856234985);" ; 
+                        ExecuteQuery (createQuery);
+                        createQuery = "INSERT INTO test VALUES (5, 'mono test" +
+                                      "#5', 259, 127123645917568585638457243856234985 );" ;
+                        ExecuteQuery (createQuery);
+                }
+
+                private void ExecuteQuery (string query) 
+                {
+                        OdbcCommand cmd = new OdbcCommand ();
+                        cmd.Connection = conn;
+                        cmd.CommandText = query;
+                        try {
+                                int recordsAff = cmd.ExecuteNonQuery ();
+                        } catch (Exception e) {
+                        }
+                }
+
+                protected void CleanTestSetup ()
+                {
+                        if (!isConnAlive)
+                                return;
+                        // delete test database 
+                        string dropQuery = "DROP table IF EXISTS test";
+                        //ExecuteQuery(dropQuery);
+                }
+        }
+}

+ 6 - 0
mcs/class/System.Data/Test/MySqlTestBed.dll.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+	<appSettings>
+		<add key="MySql-DSN" value="DSN=MySql-Mono-Test;UID=mono_tester;PWD=mono_tester;" />
+	</appSettings>
+</configuration>