[System.Data] Fix Azure SQL specific issues (ProviderTests) (#4622)
[mono.git] / mcs / class / System.Data / Test / ProviderTests / System.Data.SqlClient / SqlConnectionTest.cs
index b267e4a5f96b3fded2a13f61d61b8b335dc31caa..d894e18e0ac2cf2affbcf639c9ebc1f0f46b35d0 100644 (file)
@@ -287,15 +287,27 @@ namespace MonoTests.System.Data.Connected.SqlClient
                [Test]
                public void ChangeDatabase ()
                {
-                       conn = new SqlConnection (connectionString);
-                       conn.Open ();
-                       conn.ChangeDatabase ("master");
-                       Assert.AreEqual ("master", conn.Database);
+                       conn = new SqlConnection(connectionString);
+                       conn.Open();
+
+                       if (ConnectionManager.Instance.Sql.IsAzure)
+                       {
+                               var exc = Assert.Throws<SqlException>(() => conn.ChangeDatabase("master"));
+                               Assert.Equals(40508, exc.Number); //USE statement is not supported to switch between databases (Azure).
+                       }
+                       else
+                       {
+                               conn.ChangeDatabase("master");
+                               Assert.AreEqual("master", conn.Database);
+                       }
                }
 
                [Test]
                public void ChangeDatabase_DatabaseName_DoesNotExist ()
                {
+                       if (ConnectionManager.Instance.Sql.IsAzure)
+                               Assert.Ignore("SQL Azure doesn't support 'ChangeDatabase'");
+
                        conn = new SqlConnection (connectionString);
                        conn.Open ();
 
@@ -384,6 +396,7 @@ namespace MonoTests.System.Data.Connected.SqlClient
                }
 
                [Test]
+               [Category("NotWorking")]
                public void ClearAllPools ()
                {
                        SqlConnection conn1 = new SqlConnection (connectionString + ";Pooling=false");
@@ -667,6 +680,9 @@ namespace MonoTests.System.Data.Connected.SqlClient
                [Test]
                public void Database ()
                {
+                       if (ConnectionManager.Instance.Sql.IsAzure)
+                               Assert.Ignore("SQL Azure doesn't support 'use [db]'");
+
                        conn = new SqlConnection (connectionString);
                        string database = conn.Database;
 
@@ -829,6 +845,9 @@ namespace MonoTests.System.Data.Connected.SqlClient
                [Test]
                public void GetSchemaTest1()
                {
+                       if (ConnectionManager.Instance.Sql.IsAzure)
+                               Assert.Ignore("SQL Azure - Not supported'");
+
                        bool flag = false;
                        DataTable tab1 = conn.GetSchema("databases");
                        foreach (DataRow row in tab1.Rows)
@@ -1003,6 +1022,9 @@ namespace MonoTests.System.Data.Connected.SqlClient
                [Test]
                public void GetSchemaTest9()
                {
+                       if (ConnectionManager.Instance.Sql.IsAzure)
+                               Assert.Ignore("SQL Azure - Not supported'");
+
                        bool flag = false;
                        DataTable tab1 = conn.GetSchema("Columns");
                        foreach (DataRow row in tab1.Rows)