Merge pull request #463 from strawd/concurrent-requests
[mono.git] / mcs / class / System.Data / Test / System.Data.Common / DbProviderFactoriesConfigurationHandlerTest.cs
index 341c7dd46ec1a37847656f8783ae61788ad0f580..fe239ea4fb92fa9d65a9e2849dfcff0e43a46430 100644 (file)
@@ -1,5 +1,5 @@
 //
-// System.Data.Common.DbProviderFactoriesConfigurationHandler.cs
+// System.Data.Common.DbProviderFactoriesConfigurationHandlerTest.cs
 //
 // Author:
 //   Sureshkumar T (tsureshkumar@novell.com)
@@ -27,7 +27,7 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-#if NET_2_0
+#if !MOBILE
 
 using System.IO;
 using System.Xml;
@@ -39,46 +39,78 @@ using System.Data.Common;
 
 using NUnit.Framework;
 
-namespace MonoTests.System.Data.Common {
-    [TestFixture]
+namespace MonoTests.System.Data.Common 
+{
+       [TestFixture]
        public class DbProviderFactoriesConfigurationHandlerTest
        {
-        const string configSection = "system.data_test";
+               const string configSection = "system.data_test";
 
-        [Test]
-        public void GetConfigTest ()
-        {
-            object o = ConfigurationSettings.GetConfig (configSection);
-            Assert.IsTrue (o is DataSet, "GetConfig should return DataSet");
-            DataSet ds = o as DataSet;
-            DataTable dt = ds.Tables [0];
-            Assert.IsNotNull (dt.Columns ["Name"], "Name column missing");
-            Assert.IsNotNull (dt.Columns ["Description"], "Description column missing");
-            Assert.IsNotNull (dt.Columns ["InvariantName"], "InvariantName column missing");
-            Assert.IsNotNull (dt.Columns ["AssemblyQualifiedName"], "AssemblyQualifiedName column missing");
-            Assert.IsNotNull (dt.Columns ["SupportedClasses"], "SupportedClasses column missing");
+               [Test]
+               public void GetConfigTest ()
+               {
+                       object o = ConfigurationSettings.GetConfig (configSection);
+                       DataSet ds = o as DataSet;
+                       Assert.IsNotNull (ds, "#A1");
+                       Assert.AreEqual ("system.data", ds.DataSetName, "#A2");
+                       Assert.AreEqual (1, ds.Tables.Count, "#A3");
 
-            DataColumn [] pk = dt.PrimaryKey;
-            Assert.AreEqual (1, pk.Length, "primary key column not set");
-            Assert.AreEqual ("InvariantName", pk [0].ColumnName, "InvariantName should be the primary key");
+                       DataTable dt = ds.Tables [0];
+                       Assert.AreEqual ("DbProviderFactories", dt.TableName, "#B1");
+                       Assert.AreEqual (4, dt.Columns.Count, "#B2");
+                       Assert.IsNotNull (dt.Columns ["Name"], "#B3");
+                       Assert.IsNotNull (dt.Columns ["Description"], "#B4");
+                       Assert.IsNotNull (dt.Columns ["InvariantName"], "#B5");
+                       Assert.IsNotNull (dt.Columns ["AssemblyQualifiedName"], "#B6");
 
-        }
+                       DataColumn [] pk = dt.PrimaryKey;
+                       Assert.AreEqual (1, pk.Length, "#C1");
+                       Assert.AreEqual ("InvariantName", pk [0].ColumnName, "#C2");
+               }
 
-        [Test]
-        public void PopulateTest ()
-        {
-            object o = ConfigurationSettings.GetConfig (configSection);
-            DataSet ds = o as DataSet;
-            DataTable dt = ds.Tables [0];
-            DataRow r = dt.Rows.Find ("ProviderTest.InvariantName");
-            Assert.AreEqual ("ProviderTest.Name", r ["Name"].ToString (), "Name column missing");
-            Assert.AreEqual ("ProviderTest.Description", r ["Description"].ToString (), "Description column missing");
-            Assert.AreEqual ("ProviderTest.InvariantName", r ["InvariantName"].ToString (), "InvariantName column missing");
-            Assert.AreEqual ("ProviderTest.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "AssemblyQualifiedName column missing");
-            Assert.AreEqual (255, (int) r ["SupportedClasses"], "SupportedClasses column missing");
+               [Test]
+               public void PopulateTest ()
+               {
+                       object o = ConfigurationSettings.GetConfig (configSection);
+                       DataSet ds = o as DataSet;
+                       DataTable dt = ds.Tables [0];
+                       Assert.AreEqual (2, dt.Rows.Count, "#A1");
 
-        }
-    }
+                       DataRow r = dt.Rows.Find ("ProviderTest.InvariantName");
+                       Assert.AreEqual ("ProviderTest.Name", r ["Name"].ToString (), "#B2");
+                       Assert.AreEqual ("ProviderTest.Description", r ["Description"].ToString (), "#B3");
+                       Assert.AreEqual ("ProviderTest.InvariantName", r ["InvariantName"].ToString (), "#B4");
+                       Assert.AreEqual ("ProviderTest.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "#B5");
+
+                       r = dt.Rows.Find ("ProviderTest4.InvariantName");
+                       Assert.AreEqual ("ProviderTest4.Name", r ["Name"].ToString (), "#A2");
+                       Assert.AreEqual ("ProviderTest4.Description", r ["Description"].ToString (), "#A3");
+                       Assert.AreEqual ("ProviderTest4.InvariantName", r ["InvariantName"].ToString (), "#A4");
+                       Assert.AreEqual ("ProviderTest4.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "#A5");
+               }
+
+               [Test]
+               [Category ("NotWorking")]
+               public void PopulateTest_Machine ()
+               {
+                       object o = ConfigurationSettings.GetConfig ("system.data");
+                       DataSet ds = o as DataSet;
+                       DataTable dt = ds.Tables ["DbProviderFactories"];
+                       Assert.IsNotNull (dt, "#B1");
+                       Assert.IsTrue (dt.Rows.Count > 1, "#B2");
+                       DataRow r = dt.Rows.Find ("ProviderTest2.InvariantName");
+                       Assert.AreEqual ("ProviderTest2.Name", r ["Name"].ToString (), "#B3");
+                       Assert.AreEqual ("ProviderTest2.Description", r ["Description"].ToString (), "#B4");
+                       Assert.AreEqual ("ProviderTest2.InvariantName", r ["InvariantName"].ToString (), "#B5");
+                       Assert.AreEqual ("ProviderTest2.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "#B6");
+               }
+
+               [Test]
+               public void PopulateFactoriesTest () // bug #80894
+               {
+                       DataTable dt = DbProviderFactories.GetFactoryClasses ();
+               }
+       }
 }
 
-#endif // NET_2_0
+#endif