[System.Data] Update tests for mobile profiles
authorMarek Safar <marek.safar@gmail.com>
Fri, 24 Mar 2017 13:15:14 +0000 (14:15 +0100)
committerMarek Safar <marek.safar@gmail.com>
Fri, 24 Mar 2017 13:15:41 +0000 (14:15 +0100)
mcs/class/System.Data/Test/ProviderTests/Common/ConnectionManager.cs
mcs/class/System.Data/Test/ProviderTests/Common/EngineConfig.cs
mcs/class/System.Data/testing_aot_full_System.Data_test.dll.exclude.sources [deleted file]
mcs/class/System.Data/testing_aot_hybrid_System.Data_test.dll.exclude.sources [deleted file]

index 1cf459e1ba89eb33080f1d7de23f93ce536907b7..29028c7859c2441670d2bddd00cf06e23ae2b04f 100644 (file)
@@ -30,7 +30,6 @@
 
 using System;
 using System.Collections.Generic;
-using System.Configuration;
 using System.Data;
 using System.Data.Common;
 #if !NO_ODBC
@@ -54,23 +53,72 @@ namespace MonoTests.System.Data.Connected
 
                private ConnectionManager ()
                {
-                       //Environment.SetEnvironmentVariable(OdbcEnvVar, @"mysql-odbc|Driver={MySQL ODBC 5.3 Unicode Driver};server=127.0.0.1;uid=sa;pwd=qwerty123;");
-                       //Environment.SetEnvironmentVariable(SqlEnvVar, @"sqlserver-tds|server=127.0.0.1;database=master;user id=sa;password=qwerty123");
+                       //Environment.SetEnvironmentVariable(OdbcEnvVar, @"Driver={MySQL ODBC 5.3 Unicode Driver};server=127.0.0.1;uid=sa;pwd=qwerty123;";
+                       //Environment.SetEnvironmentVariable(SqlEnvVar, @"server=127.0.0.1;database=master;user id=sa;password=qwerty123";
 
                        // Generate a random db name
                        DatabaseName = "monotest" + Guid.NewGuid().ToString().Substring(0, 7);
 
-                       sql = ConnectionHolder<SqlConnection>.FromEnvVar(SqlEnvVar);
+                       sql = CreateSqlConfig (SqlEnvVar);
                        if (sql != null)
                                CreateMssqlDatabase();
                        
 #if !NO_ODBC
-                       odbc = ConnectionHolder<OdbcConnection>.FromEnvVar(OdbcEnvVar);
+                       odbc = CreateOdbcConfig (OdbcEnvVar);
                        if (odbc != null)
                                CreateMysqlDatabase();
 #endif
                }
 
+               static ConnectionHolder<SqlConnection> CreateSqlConfig (string envVarName)
+               {
+                       string connectionString = Environment.GetEnvironmentVariable (envVarName);
+                       if (string.IsNullOrEmpty (connectionString))
+                               return null;
+
+                       SqlConnection connection;
+#if MOBILE
+                       connection = new SqlConnection ();
+#else
+                       DbProviderFactory factory = DbProviderFactories.GetFactory ("System.Data.SqlClient");
+                       connection = (SqlConnection)factory.CreateConnection ();
+#endif
+
+                       var engine = new EngineConfig {
+                               Type = EngineType.SQLServer,
+                               ClientVersion = 9,
+                               QuoteCharacter = "&quot;",
+                               SupportsMicroseconds = true,
+                               SupportsUniqueIdentifier = true,
+                               SupportsTimestamp = true,
+                       };
+
+                       return new ConnectionHolder<SqlConnection> (engine, connection, connectionString);
+               }
+
+#if !NO_ODBC
+               static ConnectionHolder<OdbcConnection> CreateOdbcConfig (string envVarName)
+               {
+                       string connectionString = Environment.GetEnvironmentVariable (envVarName);
+                       if (string.IsNullOrEmpty (connectionString))
+                               return null;
+
+                       DbProviderFactory factory = DbProviderFactories.GetFactory ("System.Data.Odbc");
+                       var connection = (OdbcConnection)factory.CreateConnection ();
+
+                       var engine = new EngineConfig {
+                               Type = EngineType.MySQL,
+                               QuoteCharacter = "`",
+                               RemovesTrailingSpaces = true,
+                               EmptyBinaryAsNull = true,
+                               SupportsDate = true,
+                               SupportsTime = true
+                       };
+
+                       return new ConnectionHolder<OdbcConnection> (engine, connection, connectionString);
+               }
+#endif
+
                private void CreateMssqlDatabase()
                {
                        DBHelper.ExecuteNonQuery(sql.Connection, $"CREATE DATABASE [{DatabaseName}]");
@@ -193,46 +241,11 @@ namespace MonoTests.System.Data.Connected
 
                public string ConnectionString { get; set; }
 
-               public ConnectionHolder(EngineConfig engineConfig, DbProviderFactory dbProviderFactory, string connectionString)
+               public ConnectionHolder(EngineConfig engineConfig, TConnection connection, string connectionString)
                {
                        EngineConfig = engineConfig;
-                       connection = (TConnection)dbProviderFactory.CreateConnection();
+                       this.connection = connection;
                        ConnectionString = connectionString;
                }
-
-               public static ConnectionHolder<TConnection> FromEnvVar(string envVarName)
-               {
-#if NO_CONFIGURATION
-                       throw new NotImplementedException ();
-#else
-                       string variable = Environment.GetEnvironmentVariable(envVarName) ?? string.Empty;
-                       var envParts = variable.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
-                       if (envParts.Length == 0 || string.IsNullOrEmpty(envParts[0]))
-                               return null;
-
-                       string connectionName = envParts[0];
-                       string connectionString = variable.Remove(0, envParts[0].Length + 1);
-
-                       ConnectionConfig[] connections = null;
-                       try
-                       {
-                               connections = (ConnectionConfig[]) ConfigurationManager.GetSection("providerTests");
-                       }
-                       catch
-                       {
-                               return null;
-                       }
-
-                       foreach (ConnectionConfig connConfig in connections)
-                       {
-                               if (connConfig.Name != connectionName)
-                                       continue;
-
-                               DbProviderFactory factory = DbProviderFactories.GetFactory(connConfig.Factory);
-                               return new ConnectionHolder<TConnection>(connConfig.Engine, factory, connectionString);
-                       }
-                       throw new InvalidOperationException($"Connection {connectionName} not found");
-#endif
-               }
        }
 }
index 7376505c3bb8d1e8577ee18bc18b01088c20c837..6b426124ba142c9fe84a9fe703f4d776636cdeb9 100644 (file)
@@ -47,7 +47,7 @@ namespace MonoTests.System.Data.Connected
                private EngineType type;
                private int clientVersion;
 
-               private EngineConfig ()
+               public EngineConfig ()
                {
                }
 
@@ -60,42 +60,52 @@ namespace MonoTests.System.Data.Connected
                /// </summary>
                public string QuoteCharacter {
                        get { return quoteCharacter; }
+                       set { quoteCharacter = value; }
                }
 
                public EngineType Type {
                        get { return type; }
+                       set { type = value; }
                }
 
                public bool RemovesTrailingSpaces {
                        get { return removesTrailingSpaces; }
+                       set { removesTrailingSpaces = value; }
                }
 
                public bool EmptyBinaryAsNull {
                        get { return emptyBinaryAsNull; }
+                       set { emptyBinaryAsNull = value; }
                }
 
                public bool SupportsMicroseconds {
                        get { return supportsMicroseconds; }
+                       set { supportsMicroseconds = value; }
                }
 
                public bool SupportsUniqueIdentifier {
                        get { return supportsUniqueIdentifier; }
+                       set { supportsUniqueIdentifier = value; }
                }
 
                public bool SupportsDate {
                        get { return supportsDate; }
+                       set { supportsDate = value; }
                }
 
                public bool SupportsTime {
                        get { return supportsTime; }
+                       set { supportsTime = value; }
                }
 
                public bool SupportsTimestamp {
                        get { return supportsTimestamp; }
+                       set { supportsTimestamp = value; }
                }
 
                public int ClientVersion {
                       get { return clientVersion; }
+                      set { clientVersion = value; }
                }
 
                public static EngineConfig FromXml (XmlNode config)
diff --git a/mcs/class/System.Data/testing_aot_full_System.Data_test.dll.exclude.sources b/mcs/class/System.Data/testing_aot_full_System.Data_test.dll.exclude.sources
deleted file mode 100644 (file)
index 0022a9e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-System.Data.Odbc/OdbcCommandBuilderTest.cs
-System.Data.Odbc/OdbcCommandTest.cs
-System.Data.Odbc/OdbcConnectionStringBuilderTest.cs
-System.Data.Odbc/OdbcConnectionTest.cs
-System.Data.Odbc/OdbcDataAdapterTest.cs
-System.Data.Odbc/OdbcDataReaderTest.cs
-System.Data.Odbc/OdbcMetaDataCollectionNamesTest.cs
-System.Data.Odbc/OdbcParameterCollectionTest.cs
-System.Data.Odbc/OdbcParameterTest.cs
-System.Data.Odbc/OdbcPermissionAttributeTest.cs
-System.Data.Odbc/OdbcPermissionTest.cs
-System.Data.OleDb/OleDbCommandTest.cs
-System.Data.OleDb/OleDbConnectionTest.cs
-System.Data.OleDb/OleDbDataAdapterTest.cs
-System.Data.OleDb/OleDbMetaDataCollectionNamesTest.cs
-System.Data.OleDb/OleDbParameterCollectionTest.cs
-System.Data.OleDb/OleDbPermissionAttributeTest.cs
-System.Data.OleDb/OleDbPermissionTest.cs
diff --git a/mcs/class/System.Data/testing_aot_hybrid_System.Data_test.dll.exclude.sources b/mcs/class/System.Data/testing_aot_hybrid_System.Data_test.dll.exclude.sources
deleted file mode 100644 (file)
index 0022a9e..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-System.Data.Odbc/OdbcCommandBuilderTest.cs
-System.Data.Odbc/OdbcCommandTest.cs
-System.Data.Odbc/OdbcConnectionStringBuilderTest.cs
-System.Data.Odbc/OdbcConnectionTest.cs
-System.Data.Odbc/OdbcDataAdapterTest.cs
-System.Data.Odbc/OdbcDataReaderTest.cs
-System.Data.Odbc/OdbcMetaDataCollectionNamesTest.cs
-System.Data.Odbc/OdbcParameterCollectionTest.cs
-System.Data.Odbc/OdbcParameterTest.cs
-System.Data.Odbc/OdbcPermissionAttributeTest.cs
-System.Data.Odbc/OdbcPermissionTest.cs
-System.Data.OleDb/OleDbCommandTest.cs
-System.Data.OleDb/OleDbConnectionTest.cs
-System.Data.OleDb/OleDbDataAdapterTest.cs
-System.Data.OleDb/OleDbMetaDataCollectionNamesTest.cs
-System.Data.OleDb/OleDbParameterCollectionTest.cs
-System.Data.OleDb/OleDbPermissionAttributeTest.cs
-System.Data.OleDb/OleDbPermissionTest.cs