From e88cafe9bd33f072720dcbf594df19d59d25a24c Mon Sep 17 00:00:00 2001 From: Bradley Grainger Date: Thu, 15 Sep 2016 20:59:12 -0700 Subject: [PATCH] Add ConnectionTimeout property. --- .../MySqlClient/MySqlConnectionStringBuilder.cs | 11 +++++++++++ .../MySqlConnectionStringBuilderTests.cs | 4 +++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/MySqlConnector/MySqlClient/MySqlConnectionStringBuilder.cs b/src/MySqlConnector/MySqlClient/MySqlConnectionStringBuilder.cs index cd5486802..00a3d75cf 100644 --- a/src/MySqlConnector/MySqlClient/MySqlConnectionStringBuilder.cs +++ b/src/MySqlConnector/MySqlClient/MySqlConnectionStringBuilder.cs @@ -94,6 +94,12 @@ public bool ConnectionReset set { MySqlConnectionStringOption.ConnectionReset.SetValue(this, value); } } + public uint ConnectionTimeout + { + get { return MySqlConnectionStringOption.ConnectionTimeout.GetValue(this); } + set { MySqlConnectionStringOption.ConnectionTimeout.SetValue(this, value); } + } + public uint MinimumPoolSize { get { return MySqlConnectionStringOption.MinimumPoolSize.GetValue(this); } @@ -169,6 +175,7 @@ internal abstract class MySqlConnectionStringOption public static readonly MySqlConnectionStringOption UseCompression; public static readonly MySqlConnectionStringOption Pooling; public static readonly MySqlConnectionStringOption ConnectionReset; + public static readonly MySqlConnectionStringOption ConnectionTimeout; public static readonly MySqlConnectionStringOption MinimumPoolSize; public static readonly MySqlConnectionStringOption MaximumPoolSize; public static readonly MySqlConnectionStringOption UseAffectedRows; @@ -259,6 +266,10 @@ static MySqlConnectionStringOption() keys: new[] { "Connection Reset", "ConnectionReset" }, defaultValue: true)); + AddOption(ConnectionTimeout = new MySqlConnectionStringOption( + keys: new[] { "Connection Timeout", "ConnectionTimeout", "Connect Timeout" }, + defaultValue: 15u)); + AddOption(MinimumPoolSize = new MySqlConnectionStringOption( keys: new[] { "Minimum Pool Size", "Min Pool Size", "MinimumPoolSize", "minpoolsize" }, defaultValue: 0)); diff --git a/tests/MySqlConnector.Tests/MySqlConnectionStringBuilderTests.cs b/tests/MySqlConnector.Tests/MySqlConnectionStringBuilderTests.cs index b86390c03..84381090f 100644 --- a/tests/MySqlConnector.Tests/MySqlConnectionStringBuilderTests.cs +++ b/tests/MySqlConnector.Tests/MySqlConnectionStringBuilderTests.cs @@ -17,6 +17,7 @@ public void Defaults() #else Assert.Equal(true, csb.ConnectionReset); #endif + Assert.Equal(15u, csb.ConnectionTimeout); #if BASELINE Assert.False(csb.UseAffectedRows); #else @@ -39,10 +40,11 @@ public void Defaults() [Fact] public void ParseConnectionString() { - var csb = new MySqlConnectionStringBuilder { ConnectionString = "Data Source=db-server;Port=1234;Uid=username;pwd=Pass1234;Initial Catalog=schema_name;Allow User Variables=true;Character Set=latin1;Convert Zero Datetime=true;Pooling=no;OldGuids=true;Compress=true;ConnectionReset=false;minpoolsize=5;maxpoolsize=15;persistsecurityinfo=yes;useaffectedrows=false" }; + var csb = new MySqlConnectionStringBuilder { ConnectionString = "Data Source=db-server;Port=1234;Uid=username;pwd=Pass1234;Initial Catalog=schema_name;Allow User Variables=true;Character Set=latin1;Convert Zero Datetime=true;Pooling=no;OldGuids=true;Compress=true;ConnectionReset=false;minpoolsize=5;maxpoolsize=15;persistsecurityinfo=yes;useaffectedrows=false;connect timeout=30" }; Assert.Equal(true, csb.AllowUserVariables); Assert.Equal("latin1", csb.CharacterSet); Assert.Equal(false, csb.ConnectionReset); + Assert.Equal(30u, csb.ConnectionTimeout); Assert.Equal(true, csb.ConvertZeroDateTime); Assert.Equal("schema_name", csb.Database); Assert.Equal(15u, csb.MaximumPoolSize);