List:Commits« Previous MessageNext Message »
From:rburnett Date:June 17 2006 3:16am
Subject:Connector/NET commit: r252 - in trunk: . TestSuite mysqlclient
View as plain text  
Added:
   trunk/mysqlclient/MySqlClientFactory.cs
Modified:
   trunk/CHANGES
   trunk/MySql.Data.2005.csproj
   trunk/TestSuite/ConnectionTests.cs
   trunk/TestSuite/MySql.Data.Tests.2005.csproj
Log:
Added MySqlClientFactory class and some minor cleanups in ConnectionTests.cs

Modified: trunk/CHANGES
===================================================================
--- trunk/CHANGES	2006-06-16 21:32:36 UTC (rev 251)
+++ trunk/CHANGES	2006-06-17 03:16:16 UTC (rev 252)
@@ -11,6 +11,7 @@
     Reworked connection string classes to be simpler and faster
     Added cache for stored procedure definitions
     Added perfmon hooks for stored procedure cache hits and misses    	
+    Implemented MySqlConnectionBuilder class
     	
 8-24-05 - Version 1.0.5
 

Modified: trunk/MySql.Data.2005.csproj
===================================================================
--- trunk/MySql.Data.2005.csproj	2006-06-16 21:32:36 UTC (rev 251)
+++ trunk/MySql.Data.2005.csproj	2006-06-17 03:16:16 UTC (rev 252)
@@ -34,7 +34,7 @@
     <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
     <ConfigurationOverrideFile>
     </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;DEBUG;WINDOWS</DefineConstants>
+    <DefineConstants>TRACE;DEBUG;WINDOWS NET20</DefineConstants>
     <DocumentationFile>doc.xml</DocumentationFile>
     <DebugSymbols>true</DebugSymbols>
     <FileAlignment>4096</FileAlignment>
@@ -54,7 +54,7 @@
     <CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
     <ConfigurationOverrideFile>
     </ConfigurationOverrideFile>
-    <DefineConstants>TRACE;WINDOWS</DefineConstants>
+    <DefineConstants>TRACE;WINDOWS NET20</DefineConstants>
     <DocumentationFile>doc.xml</DocumentationFile>
     <DebugSymbols>false</DebugSymbols>
     <FileAlignment>4096</FileAlignment>
@@ -124,9 +124,6 @@
     <Compile Include="MySqlClient\CommandBuilder.cs">
       <SubType>Component</SubType>
     </Compile>
-    <Compile Include="MySqlClient\common\DBConnectionString.cs">
-      <SubType>Code</SubType>
-    </Compile>
     <Compile Include="MySqlClient\common\NamedPipeStream.cs">
       <SubType>Code</SubType>
     </Compile>
@@ -152,9 +149,6 @@
     <Compile Include="MySqlClient\Connection.cs">
       <SubType>Component</SubType>
     </Compile>
-    <Compile Include="MySqlClient\ConnectionString.cs">
-      <SubType>Code</SubType>
-    </Compile>
     <Compile Include="MySqlClient\Crypt.cs">
       <SubType>Code</SubType>
     </Compile>
@@ -178,6 +172,8 @@
     <Compile Include="MySqlClient\Logger.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="MySqlClient\MySqlClientFactory.cs" />
+    <Compile Include="MySqlClient\MySqlConnectionStringBuilder.cs" />
     <Compile Include="MySqlClient\MysqlDefs.cs">
       <SubType>Code</SubType>
     </Compile>

Modified: trunk/TestSuite/ConnectionTests.cs
===================================================================
--- trunk/TestSuite/ConnectionTests.cs	2006-06-16 21:32:36 UTC (rev 251)
+++ trunk/TestSuite/ConnectionTests.cs	2006-06-17 03:16:16 UTC (rev 252)
@@ -44,38 +44,106 @@
 			Close();
 		}
 
+        [Test]
+        public void ConnectionStringBuilder()
+        {
+            MySqlConnectionStringBuilder sb = null;
+            try
+            {
+                sb = new MySqlConnectionStringBuilder();
+                sb.ConnectionString = "server=localhost;uid=reggie;pwd=pass;port=1111;" +
+                    "connection timeout=23; pooling=true; min pool size=33; " +
+                    "max pool size=66";
+            }
+            catch (ArgumentException ex)
+            {
+                Assert.Fail(ex.Message);
+            }
+            Assert.AreEqual("localhost", sb.Server);
+            Assert.AreEqual("reggie", sb.UserID);
+            Assert.AreEqual("pass", sb.Password);
+            Assert.AreEqual(1111, sb.Port);
+            Assert.AreEqual(23, sb.ConnectionTimeout);
+            Assert.IsTrue(sb.Pooling);
+            Assert.AreEqual(33, sb.MinimumPoolSize);
+            Assert.AreEqual(66, sb.MaximumPoolSize);
+            string s = sb.ConnectionString;
+
+            try
+            {
+                sb.ConnectionString = "server=localhost;badkey=badvalue";
+                Assert.Fail("This should not work");
+            }
+            catch (ArgumentException)
+            {
+            }
+            catch (Exception)
+            {
+                Assert.Fail("Wrong exception type");
+            }
+
+            sb.Clear();
+            Assert.AreEqual(15, sb.ConnectionTimeout);
+            Assert.AreEqual(true, sb.Pooling);
+            Assert.AreEqual(3306, sb.Port);
+            Assert.AreEqual("localhost", sb.Server);
+            Assert.AreEqual(false, sb.PersistSecurityInfo);
+            Assert.AreEqual(0, sb.ConnectionLifeTime);
+            Assert.AreEqual(true, sb.ConnectionReset);
+            Assert.AreEqual(0, sb.MinimumPoolSize);
+            Assert.AreEqual(100, sb.MaximumPoolSize);
+            Assert.AreEqual("", sb.UserID);
+            Assert.AreEqual("", sb.Password);
+            Assert.AreEqual(false, sb.UseUsageAdvisor);
+            Assert.AreEqual("", sb.CharacterSet);
+            Assert.AreEqual(false, sb.UseCompression);
+            Assert.AreEqual("MYSQL", sb.PipeName);
+            Assert.IsFalse(sb.Logging);
+            Assert.IsFalse(sb.UseOldSyntax);
+            Assert.IsTrue(sb.AllowBatch);
+            Assert.IsFalse(sb.ConvertZeroDateTime);
+            Assert.AreEqual("MYSQL", sb.SharedMemoryName);
+            Assert.AreEqual("", sb.Database);
+            Assert.AreEqual(MySqlDriverType.Native, sb.DriverType);
+            Assert.AreEqual(MySqlConnectionProtocol.Sockets, sb.ConnectionProtocol);
+            Assert.IsFalse(sb.AllowZeroDateTime);
+            Assert.IsFalse(sb.UsePerformanceMonitor);
+            Assert.AreEqual(25, sb.ProcedureCacheSize);
+            Assert.IsFalse(sb.CacheServerConfig);
+        }
+
 		[Test]
 		public void TestConnectionStrings()
 		{
 			MySqlConnection c = new MySqlConnection();
 
 			// public properties
-			Assert.AreEqual( 15, c.ConnectionTimeout, "ConnectionTimeout" );
-			Assert.AreEqual( "", c.Database, "Database" );
-			Assert.AreEqual( String.Empty, c.DataSource, "DataSource" );
-			Assert.AreEqual( false, c.UseCompression, "Use Compression" );
-			Assert.AreEqual( System.Data.ConnectionState.Closed, c.State, "State" );
+			Assert.AreEqual(15, c.ConnectionTimeout, "ConnectionTimeout");
+			Assert.AreEqual("", c.Database, "Database");
+			Assert.AreEqual(String.Empty, c.DataSource, "DataSource");
+			Assert.AreEqual(false, c.UseCompression, "Use Compression");
+			Assert.AreEqual(System.Data.ConnectionState.Closed, c.State, "State");
 
 			c = new MySqlConnection("connection timeout=25; user id=myuser; " +
 				"password=mypass; database=Test;server=myserver; use compression=true; " +
 				"pooling=false;min pool size=5; max pool size=101");
 			// public properties
-			Assert.AreEqual( 25, c.ConnectionTimeout, "ConnectionTimeout" );
-			Assert.AreEqual( "Test", c.Database, "Database" );
-			Assert.AreEqual( "myserver", c.DataSource, "DataSource" );
-			Assert.AreEqual( true, c.UseCompression, "Use Compression" );
-			Assert.AreEqual( System.Data.ConnectionState.Closed, c.State, "State" );
+			Assert.AreEqual(25, c.ConnectionTimeout, "ConnectionTimeout");
+			Assert.AreEqual("Test", c.Database, "Database");
+			Assert.AreEqual("myserver", c.DataSource, "DataSource");
+			Assert.AreEqual(true, c.UseCompression, "Use Compression");
+			Assert.AreEqual(System.Data.ConnectionState.Closed, c.State, "State");
 
 			c.ConnectionString = "connection timeout=15; user id=newuser; " +
 				"password=newpass; port=3308; database=mydb; data source=myserver2; " + 
 				"use compression=true; pooling=true; min pool size=3; max pool size=76";
 
 			// public properties
-			Assert.AreEqual( 15, c.ConnectionTimeout, "ConnectionTimeout" );
-			Assert.AreEqual( "mydb", c.Database, "Database" );
-			Assert.AreEqual( "myserver2", c.DataSource, "DataSource" );
-			Assert.AreEqual( true, c.UseCompression, "Use Compression" );
-			Assert.AreEqual( System.Data.ConnectionState.Closed, c.State, "State" );
+			Assert.AreEqual(15, c.ConnectionTimeout, "ConnectionTimeout");
+			Assert.AreEqual("mydb", c.Database, "Database");
+			Assert.AreEqual("myserver2", c.DataSource, "DataSource");
+			Assert.AreEqual(true, c.UseCompression, "Use Compression");
+			Assert.AreEqual(System.Data.ConnectionState.Closed, c.State, "State");
 		}
 
 		[Test]

Modified: trunk/TestSuite/MySql.Data.Tests.2005.csproj
===================================================================
--- trunk/TestSuite/MySql.Data.Tests.2005.csproj	2006-06-16 21:32:36 UTC (rev 251)
+++ trunk/TestSuite/MySql.Data.Tests.2005.csproj	2006-06-17 03:16:16 UTC (rev 252)
@@ -71,7 +71,7 @@
     <WarningLevel>4</WarningLevel>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="MySQL.Data, Version=1.0.5.22172, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="MySQL.Data, Version=5.0.0.19317, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\bin\net-2.0\Debug\MySQL.Data.dll</HintPath>
     </Reference>

Added: trunk/mysqlclient/MySqlClientFactory.cs
===================================================================
--- trunk/mysqlclient/MySqlClientFactory.cs	2006-06-16 21:32:36 UTC (rev 251)
+++ trunk/mysqlclient/MySqlClientFactory.cs	2006-06-17 03:16:16 UTC (rev 252)
@@ -0,0 +1,62 @@
+// Copyright (C) 2004-2006 MySQL AB
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2 as published by
+// the Free Software Foundation
+//
+// There are special exceptions to the terms and conditions of the GPL 
+// as it is applied to this software. View the full text of the 
+// exception in file EXCEPTIONS in the directory of this software 
+// distribution.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+
+using System;
+using System.Data.Common;
+
+namespace MySql.Data.MySqlClient
+{
+    /// <summary>
+    /// DBProviderFactory implementation for MysqlClient.
+    /// </summary>
+    public class MySqlClientFactory : DbProviderFactory
+    {
+
+        public override DbCommandBuilder CreateCommandBuilder()
+        {
+            return new MySqlCommandBuilder();
+        }
+
+        public override DbCommand CreateCommand()
+        {
+            return new MySqlCommand();
+        }
+
+        public override DbConnection CreateConnection()
+        {
+            return new MySqlConnection();
+        }
+
+        public override DbDataAdapter CreateDataAdapter()
+        {
+            return new MySqlDataAdapter();
+        }
+
+        public override DbParameter CreateParameter()
+        {
+            return new MySqlParameter();
+        }
+
+        public override DbConnectionStringBuilder CreateConnectionStringBuilder()
+        {
+            return new MySqlConnectionStringBuilder();
+        }
+    }
+}

Thread
Connector/NET commit: r252 - in trunk: . TestSuite mysqlclientrburnett17 Jun