2 // System.Data.Common.DbProviderFactoriesConfigurationHandlerTest.cs
5 // Sureshkumar T (tsureshkumar@novell.com)
8 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
10 // Permission is hereby granted, free of charge, to any person obtaining
11 // a copy of this software and associated documentation files (the
12 // "Software"), to deal in the Software without restriction, including
13 // without limitation the rights to use, copy, modify, merge, publish,
14 // distribute, sublicense, and/or sell copies of the Software, and to
15 // permit persons to whom the Software is furnished to do so, subject to
16 // the following conditions:
18 // The above copyright notice and this permission notice shall be
19 // included in all copies or substantial portions of the Software.
21 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
22 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
23 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
24 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
25 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
26 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
27 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 #if !MOBILE && !MONOMAC
34 using System.Globalization;
35 using System.Configuration;
38 using System.Data.Common;
40 using NUnit.Framework;
42 namespace MonoTests.System.Data.Common
45 public class DbProviderFactoriesConfigurationHandlerTest
47 const string configSection = "system.data_test";
50 public void GetConfigTest ()
52 object o = ConfigurationSettings.GetConfig (configSection);
53 DataSet ds = o as DataSet;
54 Assert.IsNotNull (ds, "#A1");
55 Assert.AreEqual ("system.data", ds.DataSetName, "#A2");
56 Assert.AreEqual (1, ds.Tables.Count, "#A3");
58 DataTable dt = ds.Tables [0];
59 Assert.AreEqual ("DbProviderFactories", dt.TableName, "#B1");
60 Assert.AreEqual (4, dt.Columns.Count, "#B2");
61 Assert.IsNotNull (dt.Columns ["Name"], "#B3");
62 Assert.IsNotNull (dt.Columns ["Description"], "#B4");
63 Assert.IsNotNull (dt.Columns ["InvariantName"], "#B5");
64 Assert.IsNotNull (dt.Columns ["AssemblyQualifiedName"], "#B6");
66 DataColumn [] pk = dt.PrimaryKey;
67 Assert.AreEqual (1, pk.Length, "#C1");
68 Assert.AreEqual ("InvariantName", pk [0].ColumnName, "#C2");
72 public void PopulateTest ()
74 object o = ConfigurationSettings.GetConfig (configSection);
75 DataSet ds = o as DataSet;
76 DataTable dt = ds.Tables [0];
77 Assert.AreEqual (2, dt.Rows.Count, "#A1");
79 DataRow r = dt.Rows.Find ("ProviderTest.InvariantName");
80 Assert.AreEqual ("ProviderTest.Name", r ["Name"].ToString (), "#B2");
81 Assert.AreEqual ("ProviderTest.Description", r ["Description"].ToString (), "#B3");
82 Assert.AreEqual ("ProviderTest.InvariantName", r ["InvariantName"].ToString (), "#B4");
83 Assert.AreEqual ("ProviderTest.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "#B5");
85 r = dt.Rows.Find ("ProviderTest4.InvariantName");
86 Assert.AreEqual ("ProviderTest4.Name", r ["Name"].ToString (), "#A2");
87 Assert.AreEqual ("ProviderTest4.Description", r ["Description"].ToString (), "#A3");
88 Assert.AreEqual ("ProviderTest4.InvariantName", r ["InvariantName"].ToString (), "#A4");
89 Assert.AreEqual ("ProviderTest4.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "#A5");
93 [Category ("NotWorking")]
94 public void PopulateTest_Machine ()
96 object o = ConfigurationSettings.GetConfig ("system.data");
97 DataSet ds = o as DataSet;
98 DataTable dt = ds.Tables ["DbProviderFactories"];
99 Assert.IsNotNull (dt, "#B1");
100 Assert.IsTrue (dt.Rows.Count > 1, "#B2");
101 DataRow r = dt.Rows.Find ("ProviderTest2.InvariantName");
102 Assert.AreEqual ("ProviderTest2.Name", r ["Name"].ToString (), "#B3");
103 Assert.AreEqual ("ProviderTest2.Description", r ["Description"].ToString (), "#B4");
104 Assert.AreEqual ("ProviderTest2.InvariantName", r ["InvariantName"].ToString (), "#B5");
105 Assert.AreEqual ("ProviderTest2.AssemblyQualifiedName", r ["AssemblyQualifiedName"].ToString (), "#B6");
109 public void PopulateFactoriesTest () // bug #80894
111 DataTable dt = DbProviderFactories.GetFactoryClasses ();