From a04484b0eaab923b6b70b882e4f58b221c6c2aff Mon Sep 17 00:00:00 2001 From: v-arellegue Date: Mon, 11 Mar 2024 11:09:55 -0700 Subject: [PATCH 1/3] Fixed FireInfoMessageEventOnUserErrors throwing an exception when used. --- .../Microsoft/Data/SqlClient/SqlCommand.cs | 2 +- .../Microsoft/Data/SqlClient/SqlCommand.cs | 2 +- ....Data.SqlClient.ManualTesting.Tests.csproj | 1 + ...andFireInfoMessageEventOnUserErrorsTest.cs | 35 +++++++++++++++++++ 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs diff --git a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlCommand.cs b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlCommand.cs index 39dbb917e0..d01c686d04 100644 --- a/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlCommand.cs +++ b/src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlCommand.cs @@ -6776,7 +6776,7 @@ internal SqlBatchCommand GetCurrentBatchCommand() } else { - return _rpcArrayOf1[0].batchCommand; + return _rpcArrayOf1?[0].batchCommand; } } diff --git a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlCommand.cs b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlCommand.cs index 0ac6ed775e..94cd927c1d 100644 --- a/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlCommand.cs +++ b/src/Microsoft.Data.SqlClient/netfx/src/Microsoft/Data/SqlClient/SqlCommand.cs @@ -7487,7 +7487,7 @@ internal SqlBatchCommand GetCurrentBatchCommand() } else { - return _rpcArrayOf1[0].batchCommand; + return _rpcArrayOf1?[0].batchCommand; } } diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj index b2c942dd95..601960dd38 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj @@ -191,6 +191,7 @@ + diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs new file mode 100644 index 0000000000..94f629c3ad --- /dev/null +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs @@ -0,0 +1,35 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Xunit; + +namespace Microsoft.Data.SqlClient.ManualTesting.Tests +{ + public class SqlCommandFireInfoMessageEventOnUserErrorsTest + { + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public void FireInfoMessageEventOnUserErrorsShouldSucceed() + { + using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString)) + { + string command = "print"; + string commandParam = "OK"; + + connection.FireInfoMessageEventOnUserErrors = true; + + connection.InfoMessage += (sender, args) => + { + Assert.Equal(commandParam, args.Message); + }; + + connection.Open(); + + using SqlCommand cmd = connection.CreateCommand(); + cmd.CommandType = System.Data.CommandType.Text; + cmd.CommandText = $"{command} '{commandParam}'"; + cmd.ExecuteNonQuery(); + } + } + } +} From 03869f0b2c726aa7dd2838d283b010cc72600581 Mon Sep 17 00:00:00 2001 From: v-arellegue Date: Tue, 12 Mar 2024 07:38:40 -0700 Subject: [PATCH 2/3] Moved FireInfoMessageEventOnUserErrorsShouldSucceed test into ConnectivityTests class. --- ....Data.SqlClient.ManualTesting.Tests.csproj | 1 - .../SQL/ConnectivityTests/ConnectivityTest.cs | 25 +++++++++++++ ...andFireInfoMessageEventOnUserErrorsTest.cs | 35 ------------------- 3 files changed, 25 insertions(+), 36 deletions(-) delete mode 100644 src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj index 601960dd38..b2c942dd95 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/Microsoft.Data.SqlClient.ManualTesting.Tests.csproj @@ -191,7 +191,6 @@ - diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs index 60260fe79f..8a9d3b1715 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs @@ -474,5 +474,30 @@ public static void SqlPasswordConnectionTest() using SqlConnection sqlConnection = new(b.ConnectionString); sqlConnection.Open(); } + + [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] + public static void ConnectionFireInfoMessageEventOnUserErrorsShouldSucceed() + { + using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString)) + { + string command = "print"; + string commandParam = "OK"; + + connection.FireInfoMessageEventOnUserErrors = true; + + connection.InfoMessage += (sender, args) => + { + Assert.Equal(commandParam, args.Message); + }; + + connection.Open(); + + using SqlCommand cmd = connection.CreateCommand(); + cmd.CommandType = System.Data.CommandType.Text; + cmd.CommandText = $"{command} '{commandParam}'"; + cmd.ExecuteNonQuery(); + } + } + } } diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs deleted file mode 100644 index 94f629c3ad..0000000000 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/SqlCommand/SqlCommandFireInfoMessageEventOnUserErrorsTest.cs +++ /dev/null @@ -1,35 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using Xunit; - -namespace Microsoft.Data.SqlClient.ManualTesting.Tests -{ - public class SqlCommandFireInfoMessageEventOnUserErrorsTest - { - [ConditionalFact(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup), nameof(DataTestUtility.IsNotAzureSynapse))] - public void FireInfoMessageEventOnUserErrorsShouldSucceed() - { - using (var connection = new SqlConnection(DataTestUtility.TCPConnectionString)) - { - string command = "print"; - string commandParam = "OK"; - - connection.FireInfoMessageEventOnUserErrors = true; - - connection.InfoMessage += (sender, args) => - { - Assert.Equal(commandParam, args.Message); - }; - - connection.Open(); - - using SqlCommand cmd = connection.CreateCommand(); - cmd.CommandType = System.Data.CommandType.Text; - cmd.CommandText = $"{command} '{commandParam}'"; - cmd.ExecuteNonQuery(); - } - } - } -} From 2ddd21cb90016ab8ba88d0a0ccd79c657a9a069b Mon Sep 17 00:00:00 2001 From: v-arellegue Date: Tue, 12 Mar 2024 08:00:00 -0700 Subject: [PATCH 3/3] Removed blank line. --- .../tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs index 8a9d3b1715..bf26f84018 100644 --- a/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs +++ b/src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/ConnectivityTests/ConnectivityTest.cs @@ -498,6 +498,5 @@ public static void ConnectionFireInfoMessageEventOnUserErrorsShouldSucceed() cmd.ExecuteNonQuery(); } } - } }