94b2861243
Former-commit-id: 5f9c6ae75f295e057a7d2971f3a6df4656fa8850
1175 lines
40 KiB
C#
1175 lines
40 KiB
C#
//
|
|
// SqlConnectionTest.cs - NUnit Test Cases for testing the
|
|
// SqlConnection class
|
|
// Author:
|
|
// Gert Driesen (drieseng@users.sourceforge.net)
|
|
//
|
|
// Copyright (c) 2004 Novell Inc., and the individuals listed
|
|
// on the ChangeLog entries.
|
|
//
|
|
// Permission is hereby granted, free of charge, to any person obtaining
|
|
// a copy of this software and associated documentation files (the
|
|
// "Software"), to deal in the Software without restriction, including
|
|
// without limitation the rights to use, copy, modify, merge, publish,
|
|
// distribute, sublicense, and/or sell copies of the Software, and to
|
|
// permit persons to whom the Software is furnished to do so, subject to
|
|
// the following conditions:
|
|
//
|
|
// The above copyright notice and this permission notice shall be
|
|
// included in all copies or substantial portions of the Software.
|
|
//
|
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
|
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
|
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
|
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
//
|
|
|
|
using System;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
|
|
using NUnit.Framework;
|
|
|
|
namespace MonoTests.System.Data.SqlClient
|
|
{
|
|
[TestFixture]
|
|
public class SqlConnectionTest
|
|
{
|
|
[Test] // SqlConnection ()
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Constructor1 ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
Assert.AreEqual (string.Empty, cn.ConnectionString, "#1");
|
|
Assert.AreEqual (15, cn.ConnectionTimeout, "#2");
|
|
Assert.IsNull (cn.Container, "#3");
|
|
Assert.AreEqual (string.Empty, cn.Database, "#4");
|
|
Assert.AreEqual (string.Empty, cn.DataSource, "#5");
|
|
Assert.IsFalse (cn.FireInfoMessageEventOnUserErrors, "#6");
|
|
Assert.AreEqual (8000, cn.PacketSize, "#7");
|
|
Assert.IsNull (cn.Site, "#8");
|
|
Assert.AreEqual (ConnectionState.Closed, cn.State, "#9");
|
|
Assert.IsFalse (cn.StatisticsEnabled, "#10");
|
|
Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#11");
|
|
}
|
|
|
|
[Test] // SqlConnection (string)
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Constructor2 ()
|
|
{
|
|
string connectionString = "server=SQLSRV; database=Mono;";
|
|
|
|
SqlConnection cn = new SqlConnection (connectionString);
|
|
Assert.AreEqual (connectionString, cn.ConnectionString, "#A1");
|
|
Assert.AreEqual (15, cn.ConnectionTimeout, "#A2");
|
|
Assert.IsNull (cn.Container, "#A3");
|
|
Assert.AreEqual ("Mono", cn.Database, "#A4");
|
|
Assert.AreEqual ("SQLSRV", cn.DataSource, "#A5");
|
|
Assert.IsFalse (cn.FireInfoMessageEventOnUserErrors, "#A6");
|
|
Assert.AreEqual (8000, cn.PacketSize, "#A7");
|
|
Assert.IsNull (cn.Site, "#A8");
|
|
Assert.AreEqual (ConnectionState.Closed, cn.State, "#A9");
|
|
Assert.IsFalse (cn.StatisticsEnabled, "#A10");
|
|
Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#A11");
|
|
|
|
cn = new SqlConnection ((string) null);
|
|
Assert.AreEqual (string.Empty, cn.ConnectionString, "#B1");
|
|
Assert.AreEqual (15, cn.ConnectionTimeout, "#B2");
|
|
Assert.IsNull (cn.Container, "#B3");
|
|
Assert.AreEqual (string.Empty, cn.Database, "#B4");
|
|
Assert.AreEqual (string.Empty, cn.DataSource, "#B5");
|
|
Assert.IsFalse (cn.FireInfoMessageEventOnUserErrors, "#B6");
|
|
Assert.AreEqual (8000, cn.PacketSize, "#B7");
|
|
Assert.IsNull (cn.Site, "#B8");
|
|
Assert.AreEqual (ConnectionState.Closed, cn.State, "#B9");
|
|
Assert.IsFalse (cn.StatisticsEnabled, "#B10");
|
|
Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#B11");
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Constructor2_ConnectionString_Invalid ()
|
|
{
|
|
try {
|
|
new SqlConnection ("InvalidConnectionString");
|
|
Assert.Fail ("#A1");
|
|
} catch (ArgumentException ex) {
|
|
// Format of the initialization string does
|
|
// not conform to specification starting at
|
|
// index 0
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
Assert.IsNull (ex.ParamName, "#A5");
|
|
}
|
|
|
|
// invalid keyword
|
|
try {
|
|
new SqlConnection ("invalidKeyword=10");
|
|
Assert.Fail ("#B1");
|
|
} catch (ArgumentException ex) {
|
|
// Keyword not supported: 'invalidkeyword'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'invalidkeyword'") != -1, "#B5");
|
|
Assert.IsNull (ex.ParamName, "#B6");
|
|
}
|
|
|
|
// invalid packet size (< minimum)
|
|
try {
|
|
new SqlConnection ("Packet Size=511");
|
|
Assert.Fail ("#C1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid 'Packet Size'. The value must be an
|
|
// integer >= 512 and <= 32768
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
|
|
Assert.IsNull (ex.InnerException, "#C3");
|
|
Assert.IsNotNull (ex.Message, "#C4");
|
|
Assert.IsNull (ex.ParamName, "#C5");
|
|
}
|
|
|
|
// invalid packet size (> maximum)
|
|
try {
|
|
new SqlConnection ("Packet Size=32769");
|
|
Assert.Fail ("#D1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid 'Packet Size'. The value must be an
|
|
// integer >= 512 and <= 32768
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
|
|
Assert.IsNull (ex.InnerException, "#D3");
|
|
Assert.IsNotNull (ex.Message, "#D4");
|
|
Assert.IsNull (ex.ParamName, "#D5");
|
|
}
|
|
|
|
// negative connect timeout
|
|
try {
|
|
new SqlConnection ("Connect Timeout=-1");
|
|
Assert.Fail ("#E1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'connect timeout'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
|
|
Assert.IsNull (ex.InnerException, "#E3");
|
|
Assert.IsNotNull (ex.Message, "#E4");
|
|
Assert.IsNull (ex.ParamName, "#E5");
|
|
}
|
|
|
|
// negative max pool size
|
|
try {
|
|
new SqlConnection ("Max Pool Size=-1");
|
|
Assert.Fail ("#F1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'max pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#F2");
|
|
Assert.IsNull (ex.InnerException, "#F3");
|
|
Assert.IsNotNull (ex.Message, "#F4");
|
|
Assert.IsNull (ex.ParamName, "#F5");
|
|
}
|
|
|
|
// negative min pool size
|
|
try {
|
|
new SqlConnection ("Min Pool Size=-1");
|
|
Assert.Fail ("#G1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'min pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#G2");
|
|
Assert.IsNull (ex.InnerException, "#G3");
|
|
Assert.IsNotNull (ex.Message, "#G4");
|
|
Assert.IsNull (ex.ParamName, "#G5");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void BeginTransaction_Connection_Closed ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
try {
|
|
cn.BeginTransaction ();
|
|
Assert.Fail ("#A1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
}
|
|
|
|
try {
|
|
cn.BeginTransaction ((IsolationLevel) 666);
|
|
Assert.Fail ("#B1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
}
|
|
|
|
try {
|
|
cn.BeginTransaction (IsolationLevel.Serializable);
|
|
Assert.Fail ("#C1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
|
|
Assert.IsNull (ex.InnerException, "#C3");
|
|
Assert.IsNotNull (ex.Message, "#C4");
|
|
}
|
|
|
|
try {
|
|
cn.BeginTransaction ("trans");
|
|
Assert.Fail ("#D1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
|
|
Assert.IsNull (ex.InnerException, "#D3");
|
|
Assert.IsNotNull (ex.Message, "#D4");
|
|
}
|
|
|
|
try {
|
|
cn.BeginTransaction ((IsolationLevel) 666, "trans");
|
|
Assert.Fail ("#E1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
|
|
Assert.IsNull (ex.InnerException, "#E3");
|
|
Assert.IsNotNull (ex.Message, "#E4");
|
|
}
|
|
|
|
try {
|
|
cn.BeginTransaction (IsolationLevel.Serializable, "trans");
|
|
Assert.Fail ("#F1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
|
|
Assert.IsNull (ex.InnerException, "#F3");
|
|
Assert.IsNotNull (ex.Message, "#F4");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ChangeDatabase_Connection_Closed ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "server=SQLSRV";
|
|
|
|
try {
|
|
cn.ChangeDatabase ("database");
|
|
Assert.Fail ("#1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ChangePassword_ConnectionString_Empty ()
|
|
{
|
|
try {
|
|
SqlConnection.ChangePassword (string.Empty, "mono");
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentNullException ex) {
|
|
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsNotNull (ex.ParamName, "#5");
|
|
Assert.IsTrue (ex.ParamName.IndexOf ("'connectionString'") != -1, "#6");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ChangePassword_ConnectionString_Null ()
|
|
{
|
|
try {
|
|
SqlConnection.ChangePassword ((string) null, "mono");
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentNullException ex) {
|
|
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsNotNull (ex.ParamName, "#5");
|
|
Assert.IsTrue (ex.ParamName.IndexOf ("'connectionString'") != -1, "#6");
|
|
}
|
|
}
|
|
|
|
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ChangePassword_NewPassword_Empty ()
|
|
{
|
|
try {
|
|
SqlConnection.ChangePassword ("server=SQLSRV", string.Empty);
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentNullException ex) {
|
|
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsNotNull (ex.ParamName, "#5");
|
|
Assert.IsTrue (ex.ParamName.IndexOf ("'newPassword'") != -1, "#6");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ChangePassword_NewPassword_ExceedMaxLength ()
|
|
{
|
|
try {
|
|
SqlConnection.ChangePassword ("server=SQLSRV",
|
|
new string ('d', 129));
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentException ex) {
|
|
// The length of argument 'newPassword' exceeds
|
|
// it's limit of '128'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'newPassword'") != -1, "#5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("128") != -1, "#6");
|
|
Assert.IsNull (ex.ParamName, "#7");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ChangePassword_NewPassword_Null ()
|
|
{
|
|
try {
|
|
SqlConnection.ChangePassword ("server=SQLSRV", (string) null);
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentNullException ex) {
|
|
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsNotNull (ex.ParamName, "#5");
|
|
Assert.IsTrue (ex.ParamName.IndexOf ("'newPassword'") != -1, "#6");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ClearPool_Connection_Null ()
|
|
{
|
|
try {
|
|
SqlConnection.ClearPool ((SqlConnection) null);
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentNullException ex) {
|
|
Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.AreEqual ("connection", ex.ParamName, "#5");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "server=SQLSRV";
|
|
Assert.AreEqual ("server=SQLSRV", cn.ConnectionString, "#1");
|
|
cn.ConnectionString = null;
|
|
Assert.AreEqual (string.Empty, cn.ConnectionString, "#2");
|
|
cn.ConnectionString = "server=SQLSRV";
|
|
Assert.AreEqual ("server=SQLSRV", cn.ConnectionString, "#3");
|
|
cn.ConnectionString = string.Empty;
|
|
Assert.AreEqual (string.Empty, cn.ConnectionString, "#4");
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_Value_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
try {
|
|
cn.ConnectionString = "InvalidConnectionString";
|
|
Assert.Fail ("#A1");
|
|
} catch (ArgumentException ex) {
|
|
// Format of the initialization string does
|
|
// not conform to specification starting at
|
|
// index 0
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
Assert.IsNull (ex.ParamName, "#A5");
|
|
}
|
|
|
|
// invalid keyword
|
|
try {
|
|
cn.ConnectionString = "invalidKeyword=10";
|
|
Assert.Fail ("#B1");
|
|
} catch (ArgumentException ex) {
|
|
// Keyword not supported: 'invalidkeyword'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'invalidkeyword'") != -1, "#B5");
|
|
Assert.IsNull (ex.ParamName, "#B6");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void CreateCommand ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
SqlCommand cmd = cn.CreateCommand ();
|
|
Assert.IsNotNull (cmd, "#1");
|
|
Assert.AreEqual (string.Empty, cmd.CommandText, "#2");
|
|
Assert.AreEqual (30, cmd.CommandTimeout, "#3");
|
|
Assert.AreEqual (CommandType.Text, cmd.CommandType, "#4");
|
|
Assert.AreSame (cn, cmd.Connection, "#5");
|
|
Assert.IsNull (cmd.Container, "#6");
|
|
Assert.IsTrue (cmd.DesignTimeVisible, "#7");
|
|
Assert.IsNull (cmd.Notification, "#8");
|
|
Assert.IsTrue (cmd.NotificationAutoEnlist, "#9");
|
|
Assert.IsNotNull (cmd.Parameters, "#10");
|
|
Assert.AreEqual (0, cmd.Parameters.Count, "#11");
|
|
Assert.IsNull (cmd.Site, "#12");
|
|
Assert.IsNull (cmd.Transaction, "#13");
|
|
Assert.AreEqual (UpdateRowSource.Both, cmd.UpdatedRowSource, "#14");
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Dispose ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ("Server=SQLSRV;Database=master;Timeout=25;Packet Size=512;Workstation ID=DUMMY");
|
|
cn.Dispose ();
|
|
|
|
Assert.AreEqual (string.Empty, cn.ConnectionString, "#1");
|
|
Assert.AreEqual (15, cn.ConnectionTimeout, "#2");
|
|
Assert.AreEqual (string.Empty, cn.Database, "#3");
|
|
Assert.AreEqual (string.Empty, cn.DataSource, "#4");
|
|
Assert.AreEqual (8000, cn.PacketSize, "#5");
|
|
Assert.IsTrue (string.Compare (Environment.MachineName, cn.WorkstationId, true) == 0, "#6");
|
|
Assert.AreEqual (ConnectionState.Closed, cn.State, "#7");
|
|
cn.Dispose ();
|
|
|
|
cn = new SqlConnection ();
|
|
cn.Dispose ();
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void GetSchema_Connection_Closed ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
try {
|
|
cn.GetSchema ();
|
|
Assert.Fail ("#A1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
}
|
|
|
|
try {
|
|
cn.GetSchema ("Tables");
|
|
Assert.Fail ("#B1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
}
|
|
|
|
try {
|
|
cn.GetSchema ((string) null);
|
|
Assert.Fail ("#C1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
|
|
Assert.IsNull (ex.InnerException, "#C3");
|
|
Assert.IsNotNull (ex.Message, "#C4");
|
|
}
|
|
|
|
try {
|
|
cn.GetSchema ("Tables", new string [] { "master" });
|
|
Assert.Fail ("#D1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#D2");
|
|
Assert.IsNull (ex.InnerException, "#D3");
|
|
Assert.IsNotNull (ex.Message, "#D4");
|
|
}
|
|
|
|
try {
|
|
cn.GetSchema ((string) null, new string [] { "master" });
|
|
Assert.Fail ("#E1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#E2");
|
|
Assert.IsNull (ex.InnerException, "#E3");
|
|
Assert.IsNotNull (ex.Message, "#E4");
|
|
}
|
|
|
|
try {
|
|
cn.GetSchema ("Tables", (string []) null);
|
|
Assert.Fail ("#F1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#F2");
|
|
Assert.IsNull (ex.InnerException, "#F3");
|
|
Assert.IsNotNull (ex.Message, "#F4");
|
|
}
|
|
|
|
try {
|
|
cn.GetSchema ((string) null, (string []) null);
|
|
Assert.Fail ("#G1");
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#G2");
|
|
Assert.IsNull (ex.InnerException, "#G3");
|
|
Assert.IsNotNull (ex.Message, "#G4");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_AsynchronousProcessing ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Asynchronous Processing=False";
|
|
cn.ConnectionString = "Async=True";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_ConnectTimeout ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Connection Timeout=45";
|
|
Assert.AreEqual (45, cn.ConnectionTimeout, "#1");
|
|
cn.ConnectionString = "Connect Timeout=40";
|
|
Assert.AreEqual (40, cn.ConnectionTimeout, "#2");
|
|
cn.ConnectionString = "Timeout=";
|
|
Assert.AreEqual (15, cn.ConnectionTimeout, "#3");
|
|
cn.ConnectionString = "Timeout=2147483647";
|
|
Assert.AreEqual (int.MaxValue, cn.ConnectionTimeout, "#4");
|
|
cn.ConnectionString = "Timeout=0";
|
|
Assert.AreEqual (0, cn.ConnectionTimeout, "#5");
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_ConnectTimeout_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
// negative number
|
|
try {
|
|
cn.ConnectionString = "Connection timeout=-1";
|
|
Assert.Fail ("#A1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'connect timeout'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'connect timeout'") != -1, "#A5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#A6");
|
|
}
|
|
|
|
// invalid number
|
|
try {
|
|
cn.ConnectionString = "connect Timeout=BB";
|
|
Assert.Fail ("#B1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'connect timeout'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
Assert.IsNotNull (ex.InnerException, "#B3");
|
|
Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#B4");
|
|
Assert.IsNotNull (ex.Message, "#B5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'connect timeout'") != -1, "#B6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#B7");
|
|
|
|
// Input string was not in a correct format
|
|
FormatException fe = (FormatException) ex.InnerException;
|
|
Assert.IsNull (fe.InnerException, "#B8");
|
|
Assert.IsNotNull (fe.Message, "#B9");
|
|
}
|
|
|
|
// overflow
|
|
try {
|
|
cn.ConnectionString = "timeout=2147483648";
|
|
Assert.Fail ("#C1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'connect timeout'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
|
|
Assert.IsNotNull (ex.InnerException, "#C3");
|
|
Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
|
|
Assert.IsNotNull (ex.Message, "#C5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'connect timeout'") != -1, "#C6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#C7");
|
|
|
|
// Value was either too large or too small for an Int32
|
|
OverflowException oe = (OverflowException) ex.InnerException;
|
|
Assert.IsNull (oe.InnerException, "#C8");
|
|
Assert.IsNotNull (oe.Message, "#C9");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_Database_Synonyms ()
|
|
{
|
|
SqlConnection cn = null;
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "Initial Catalog=db";
|
|
Assert.AreEqual ("db", cn.Database);
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "Database=db";
|
|
Assert.AreEqual ("db", cn.Database);
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_DataSource_Synonyms ()
|
|
{
|
|
SqlConnection cn = null;
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "Data Source=server";
|
|
Assert.AreEqual ("server", cn.DataSource);
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "addr=server";
|
|
Assert.AreEqual ("server", cn.DataSource);
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "address=server";
|
|
Assert.AreEqual ("server", cn.DataSource);
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "network address=server";
|
|
Assert.AreEqual ("server", cn.DataSource);
|
|
|
|
cn = new SqlConnection ();
|
|
cn.ConnectionString = "server=server";
|
|
Assert.AreEqual ("server", cn.DataSource);
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_MaxPoolSize ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Max Pool Size=2147483647";
|
|
cn.ConnectionString = "Max Pool Size=1";
|
|
cn.ConnectionString = "Max Pool Size=500";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_MaxPoolSize_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
// negative number
|
|
try {
|
|
cn.ConnectionString = "Max Pool Size=-1";
|
|
Assert.Fail ("#A1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'max pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#A5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#A6");
|
|
}
|
|
|
|
// invalid number
|
|
try {
|
|
cn.ConnectionString = "max Pool size=BB";
|
|
Assert.Fail ("#B1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'max pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
Assert.IsNotNull (ex.InnerException, "#B3");
|
|
Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#B4");
|
|
Assert.IsNotNull (ex.Message, "#B5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#B6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#B7");
|
|
|
|
// Input string was not in a correct format
|
|
FormatException fe = (FormatException) ex.InnerException;
|
|
Assert.IsNull (fe.InnerException, "#B8");
|
|
Assert.IsNotNull (fe.Message, "#B9");
|
|
}
|
|
|
|
// overflow
|
|
try {
|
|
cn.ConnectionString = "max pool size=2147483648";
|
|
Assert.Fail ("#C1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'max pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
|
|
Assert.IsNotNull (ex.InnerException, "#C3");
|
|
Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
|
|
Assert.IsNotNull (ex.Message, "#C5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#C6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#C7");
|
|
|
|
// Value was either too large or too small for an Int32
|
|
OverflowException oe = (OverflowException) ex.InnerException;
|
|
Assert.IsNull (oe.InnerException, "#C8");
|
|
Assert.IsNotNull (oe.Message, "#C9");
|
|
}
|
|
|
|
// less than minimum (1)
|
|
try {
|
|
cn.ConnectionString = "Min Pool Size=0;Max Pool Size=0";
|
|
Assert.Fail ("#D1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'max pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2");
|
|
Assert.IsNull (ex.InnerException, "#D3");
|
|
Assert.IsNotNull (ex.Message, "#D4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'max pool size'") != -1, "#D5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#D6");
|
|
}
|
|
|
|
// less than min pool size
|
|
try {
|
|
cn.ConnectionString = "Min Pool Size=5;Max Pool Size=4";
|
|
Assert.Fail ("#E1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid min or max pool size values, min
|
|
// pool size cannot be greater than the max
|
|
// pool size
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#E2");
|
|
Assert.IsNull (ex.InnerException, "#E3");
|
|
Assert.IsNotNull (ex.Message, "#E4");
|
|
Assert.IsNull (ex.ParamName, "#E5");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_MinPoolSize ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "min Pool size=0";
|
|
cn.ConnectionString = "Min Pool size=100";
|
|
cn.ConnectionString = "Min Pool Size=2147483647;Max Pool Size=2147483647";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_MinPoolSize_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
// negative number
|
|
try {
|
|
cn.ConnectionString = "Min Pool Size=-1";
|
|
Assert.Fail ("#A1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'min pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'min pool size'") != -1, "#A5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#A6");
|
|
}
|
|
|
|
// invalid number
|
|
try {
|
|
cn.ConnectionString = "min Pool size=BB";
|
|
Assert.Fail ("#B1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'min pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
Assert.IsNotNull (ex.InnerException, "#B3");
|
|
Assert.AreEqual (typeof (FormatException), ex.InnerException.GetType (), "#B4");
|
|
Assert.IsNotNull (ex.Message, "#B5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'min pool size'") != -1, "#B6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#B7");
|
|
|
|
// Input string was not in a correct format
|
|
FormatException fe = (FormatException) ex.InnerException;
|
|
Assert.IsNull (fe.InnerException, "#B8");
|
|
Assert.IsNotNull (fe.Message, "#B9");
|
|
}
|
|
|
|
// overflow
|
|
try {
|
|
cn.ConnectionString = "min pool size=2147483648";
|
|
Assert.Fail ("#C1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'min pool size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
|
|
Assert.IsNotNull (ex.InnerException, "#C3");
|
|
Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
|
|
Assert.IsNotNull (ex.Message, "#C5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'min pool size'") != -1, "#C6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#C7");
|
|
|
|
// Value was either too large or too small for an Int32
|
|
OverflowException oe = (OverflowException) ex.InnerException;
|
|
Assert.IsNull (oe.InnerException, "#C8");
|
|
Assert.IsNotNull (oe.Message, "#C9");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_MultipleActiveResultSets ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "MultipleActiveResultSets=true";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_MultipleActiveResultSets_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
try {
|
|
cn.ConnectionString = "MultipleActiveResultSets=1";
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'multipleactiveresultsets'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'multipleactiveresultsets'") != -1, "#5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#6");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_NetworkLibrary_Synonyms ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Net=DBMSSOCN";
|
|
cn.ConnectionString = "Network=DBMSSOCN";
|
|
cn.ConnectionString = "Network library=DBMSSOCN";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_PacketSize ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Packet Size=1024";
|
|
Assert.AreEqual (1024, cn.PacketSize, "#1");
|
|
cn.ConnectionString = "packet SizE=533";
|
|
Assert.AreEqual (533, cn.PacketSize, "#2");
|
|
cn.ConnectionString = "packet SizE=512";
|
|
Assert.AreEqual (512, cn.PacketSize, "#3");
|
|
cn.ConnectionString = "packet SizE=32768";
|
|
Assert.AreEqual (32768, cn.PacketSize, "#4");
|
|
cn.ConnectionString = "packet Size=";
|
|
Assert.AreEqual (8000, cn.PacketSize, "#5");
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_PacketSize_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
|
|
// invalid packet size (< minimum)
|
|
try {
|
|
cn.ConnectionString = "Packet Size=511";
|
|
Assert.Fail ("#A1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid 'Packet Size'. The value must be an
|
|
// integer >= 512 and <= 32768
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'Packet Size'") != -1, "#A5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#A6");
|
|
}
|
|
|
|
// invalid packet size (> maximum)
|
|
try {
|
|
cn.ConnectionString = "packet SIze=32769";
|
|
Assert.Fail ("#B1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid 'Packet Size'. The value must be an
|
|
// integer >= 512 and <= 32768
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'Packet Size'") != -1, "#B5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#B6");
|
|
}
|
|
|
|
// overflow
|
|
try {
|
|
cn.ConnectionString = "packet SIze=2147483648";
|
|
Assert.Fail ("#C1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'packet size'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
|
|
Assert.IsNotNull (ex.InnerException, "#C3");
|
|
Assert.AreEqual (typeof (OverflowException), ex.InnerException.GetType (), "#C4");
|
|
Assert.IsNotNull (ex.Message, "#C5");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'packet size'") != -1, "#C6:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#C7");
|
|
|
|
// Value was either too large or too small for an Int32
|
|
OverflowException oe = (OverflowException) ex.InnerException;
|
|
Assert.IsNull (oe.InnerException, "#C8");
|
|
Assert.IsNotNull (oe.Message, "#C9");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_Password_Synonyms ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Password=scrambled";
|
|
cn.ConnectionString = "Pwd=scrambled";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_PersistSecurityInfo_Synonyms ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Persist Security Info=true";
|
|
cn.ConnectionString = "PersistSecurityInfo=true";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_UserID_Synonyms ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "User Id=test";
|
|
cn.ConnectionString = "User=test";
|
|
cn.ConnectionString = "Uid=test";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_UserInstance ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "User Instance=true";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_UserInstance_Invalid ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
try {
|
|
cn.ConnectionString = "User Instance=1";
|
|
Assert.Fail ("#1");
|
|
} catch (ArgumentException ex) {
|
|
// Invalid value for key 'user instance'
|
|
Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
Assert.IsTrue (ex.Message.IndexOf ("'user instance'") != -1, "#5:" + ex.Message);
|
|
Assert.IsNull (ex.ParamName, "#6");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ConnectionString_OtherKeywords ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = "Application Name=test";
|
|
cn.ConnectionString = "App=test";
|
|
cn.ConnectionString = "Connection Reset=true";
|
|
cn.ConnectionString = "Current Language=test";
|
|
cn.ConnectionString = "Language=test";
|
|
cn.ConnectionString = "Encrypt=false";
|
|
//cn.ConnectionString = "Encrypt=true";
|
|
//cn.ConnectionString = "Enlist=false";
|
|
cn.ConnectionString = "Enlist=true";
|
|
cn.ConnectionString = "Integrated Security=true";
|
|
cn.ConnectionString = "Trusted_connection=true";
|
|
cn.ConnectionString = "Max Pool Size=10";
|
|
cn.ConnectionString = "Min Pool Size=10";
|
|
cn.ConnectionString = "Pooling=true";
|
|
cn.ConnectionString = "attachdbfilename=dunno";
|
|
cn.ConnectionString = "extended properties=dunno";
|
|
cn.ConnectionString = "initial file name=dunno";
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Open_ConnectionString_Empty ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = string.Empty;
|
|
|
|
try {
|
|
cn.Open ();
|
|
Assert.Fail ("#1");
|
|
} catch (InvalidOperationException ex) {
|
|
// The ConnectionString property has not been
|
|
// initialized
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Open_ConnectionString_Null ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = null;
|
|
|
|
try {
|
|
cn.Open ();
|
|
Assert.Fail ("#1");
|
|
} catch (InvalidOperationException ex) {
|
|
// The ConnectionString property has not been
|
|
// initialized
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void Open_ConnectionString_Whitespace ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
cn.ConnectionString = " ";
|
|
|
|
try {
|
|
cn.Open ();
|
|
Assert.Fail ("#1");
|
|
} catch (InvalidOperationException ex) {
|
|
// The ConnectionString property has not been
|
|
// initialized
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
|
|
Assert.IsNull (ex.InnerException, "#3");
|
|
Assert.IsNotNull (ex.Message, "#4");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
#if FEATURE_NO_BSD_SOCKETS
|
|
[ExpectedException (typeof (PlatformNotSupportedException))]
|
|
#endif
|
|
public void ServerVersion_Connection_Closed ()
|
|
{
|
|
SqlConnection cn = new SqlConnection ();
|
|
try {
|
|
Assert.Fail ("#A1:" + cn.ServerVersion);
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
|
|
Assert.IsNull (ex.InnerException, "#A3");
|
|
Assert.IsNotNull (ex.Message, "#A4");
|
|
}
|
|
|
|
cn = new SqlConnection ("server=SQLSRV; database=Mono;");
|
|
try {
|
|
Assert.Fail ("#B1:" + cn.ServerVersion);
|
|
} catch (InvalidOperationException ex) {
|
|
// Invalid operation. The connection is closed
|
|
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
|
|
Assert.IsNull (ex.InnerException, "#B3");
|
|
Assert.IsNotNull (ex.Message, "#B4");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|