Merge pull request #4540 from kumpera/android-changes-part1
[mono.git] / mcs / class / System.Data / Test / ProviderTests / System.Data.Odbc / OdbcDataAdapterTest.cs
index ab7901c0bd17ac70e970a6af86737f0da37aa5ee..02c7c9a4ca3cbd3bbfc0c57f8b88894815236641 100644 (file)
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
+#if !NO_ODBC
+
 using System;
 using System.Data;
 using System.Data.Odbc;
 
 using NUnit.Framework;
 
-namespace MonoTests.System.Data.Odbc
+namespace MonoTests.System.Data.Connected.Odbc
 {
-
-        [TestFixture]
-        [Category ("odbc")]
-        public class OdbcDataAdapterTest
+       [TestFixture]
+       [Category ("odbc")]
+       public class OdbcDataAdapterTest
        {
-         
                [Test]
-               public void FillTest () 
+               public void FillTest ()
                {
-                       IDbConnection conn = ConnectionManager.Singleton.Connection;
-                       try {
-                               ConnectionManager.Singleton.OpenConnection ();
+                       OdbcConnection conn = ConnectionManager.Instance.Odbc.Connection;
+                       try
+                       {
                                // For this Test, you must create sample table
                                // called person-age, with a non-zero number of rows
                                // and non-zero number of columns
@@ -72,8 +72,51 @@ namespace MonoTests.System.Data.Odbc
                                                                 "#4 column values must not be of size 0");
                                }
                        } finally {
-                               ConnectionManager.Singleton.CloseConnection ();
+                               ConnectionManager.Instance.Odbc.CloseConnection ();
+                       }
+               }
+
+               [Test]
+               [Ignore]
+               public void InsertUtf8Test ()
+               {
+                       OdbcConnection conn = ConnectionManager.Instance.Odbc.Connection;
+                       try
+                       {
+                               DoExecuteNonQuery ((OdbcConnection) conn,
+                                                  "CREATE TABLE odbc_ins_utf8_test(ival int not null, sval varchar(20))");
+                               Assert.AreEqual (DoExecuteNonQuery ((OdbcConnection) conn,
+                                                                   "INSERT INTO odbc_ins_utf8_test(ival, sval) VALUES (1, 'English')"),
+                                                1);
+                               Assert.AreEqual (DoExecuteNonQuery ((OdbcConnection) conn,
+                                                                   "INSERT INTO odbc_ins_utf8_test(ival, sval) VALUES (2, 'Français')"),
+                                                1);
+                               Assert.AreEqual (DoExecuteNonQuery ((OdbcConnection) conn,
+                                                                   "INSERT INTO odbc_ins_utf8_test(ival, sval) VALUES (3, 'Español')"),
+                                                1);
+                               Assert.AreEqual (DoExecuteScalar   ((OdbcConnection) conn,
+                                                                   "SELECT COUNT(*) FROM odbc_ins_utf8_test WHERE sval " +
+                                                                   "IN('English', 'Français', 'Español')"),
+                                                3);
+                       } finally {
+                               DoExecuteNonQuery ((OdbcConnection) conn, "DROP TABLE odbc_ins_utf8_test");
+                               ConnectionManager.Instance.Odbc.CloseConnection ();
                        }
                }
+
+               private int DoExecuteNonQuery (OdbcConnection conn, string sql)
+               {
+                       OdbcCommand cmd = new OdbcCommand (sql, conn);
+                       return cmd.ExecuteNonQuery ();
+               }
+
+               private int DoExecuteScalar (OdbcConnection conn, string sql)
+               {
+                       OdbcCommand cmd = new OdbcCommand (sql, conn);
+                       object value = cmd.ExecuteScalar ();
+                       return (int) Convert.ChangeType (value, typeof (int));
+               }
        }
 }
+
+#endif
\ No newline at end of file