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 mysqlclient | rburnett | 17 Jun |