Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Port connection pool tests from devdiv #1155

Merged
merged 17 commits into from
Sep 20, 2021
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ public static void ExecuteTest()
{
using (SqlConnection connection = new SqlConnection(DataTestUtility.TCPConnectionString))
{
SqlCommand command = new SqlCommand(GenerateCommandText(), connection);

using SqlCommand command = new SqlCommand(GenerateCommandText(), connection);
connection.Open();

IAsyncResult result = command.BeginExecuteNonQuery();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ public static void MaxPoolWaitForConnectionTest(string connectionString)
string newConnectionString = (new SqlConnectionStringBuilder(connectionString) { MaxPoolSize = 1 }).ConnectionString;
SqlConnection.ClearAllPools();

SqlConnection connection1 = new SqlConnection(newConnectionString);
using SqlConnection connection1 = new SqlConnection(newConnectionString);
connection1.Open();

InternalConnectionWrapper internalConnection = new InternalConnectionWrapper(connection1);
Expand Down Expand Up @@ -306,8 +306,8 @@ public static void CleanupTest(string connectionString)
{
SqlConnection.ClearAllPools();

SqlConnection conn1 = new SqlConnection(connectionString);
SqlConnection conn2 = new SqlConnection(connectionString);
using SqlConnection conn1 = new SqlConnection(connectionString);
using SqlConnection conn2 = new SqlConnection(connectionString);
conn1.Open();
conn2.Open();
ConnectionPoolWrapper connectionPool = new ConnectionPoolWrapper(conn1);
Expand All @@ -327,7 +327,7 @@ public static void CleanupTest(string connectionString)
connectionPool.Cleanup();
Assert.Equal(0, connectionPool.ConnectionCount);

SqlConnection conn3 = new SqlConnection(connectionString);
using SqlConnection conn3 = new SqlConnection(connectionString);
conn3.Open();
InternalConnectionWrapper internalConnection3 = new InternalConnectionWrapper(conn3);

Expand Down Expand Up @@ -393,8 +393,8 @@ public static void TransactionPoolTest(string connectionString)

using (TransactionScope transScope = new TransactionScope())
{
SqlConnection connection1 = new SqlConnection(connectionString);
SqlConnection connection2 = new SqlConnection(connectionString);
using SqlConnection connection1 = new SqlConnection(connectionString);
using SqlConnection connection2 = new SqlConnection(connectionString);
connection1.Open();
connection2.Open();
connectionPool = new ConnectionPoolWrapper(connection1);
Expand All @@ -409,22 +409,22 @@ public static void TransactionPoolTest(string connectionString)

// Attempt to re-use root connection
connection1.Close();
SqlConnection connection3 = new SqlConnection(connectionString);
using SqlConnection connection3 = new SqlConnection(connectionString);
connection3.Open();

Assert.True(connectionPool.ContainsConnection(connection3), "New connection in wrong pool");
Assert.True(internalConnection1.IsInternalConnectionOf(connection3), "Root connection was not re-used");

// Attempt to re-use non-root connection
connection2.Close();
SqlConnection connection4 = new SqlConnection(connectionString);
using SqlConnection connection4 = new SqlConnection(connectionString);
connection4.Open();
Assert.True(internalConnection2.IsInternalConnectionOf(connection4), "Connection did not re-use expected internal connection");
Assert.True(connectionPool.ContainsConnection(connection4), "New connection is in the wrong pool");
connection4.Close();

// Use a different connection string
SqlConnection connection5 = new SqlConnection(connectionString + ";App=SqlConnectionPoolUnitTest;");
using SqlConnection connection5 = new SqlConnection(connectionString + ";App=SqlConnectionPoolUnitTest;");
connection5.Open();
Assert.False(internalConnection2.IsInternalConnectionOf(connection5), "Connection with different connection string re-used internal connection");
Assert.False(connectionPool.ContainsConnection(connection5), "Connection with different connection string is in same pool");
Expand All @@ -449,8 +449,8 @@ public static void TransactionCleanupTest(string connectionString)

using (TransactionScope transScope = new TransactionScope())
{
SqlConnection connection1 = new SqlConnection(connectionString);
SqlConnection connection2 = new SqlConnection(connectionString);
using SqlConnection connection1 = new SqlConnection(connectionString);
using SqlConnection connection2 = new SqlConnection(connectionString);
connection1.Open();
connection2.Open();
InternalConnectionWrapper internalConnection1 = new InternalConnectionWrapper(connection1);
Expand Down Expand Up @@ -515,8 +515,7 @@ private static void MaxPoolWaitForConnectionTask(string connectionString, Intern

private static SqlConnection ReplacementConnectionObeys0TimeoutTask(string connectionString)
{
SqlConnection connection = null;
connection = new SqlConnection(connectionString);
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
return connection;
}
Expand Down