Imported Upstream version 5.2.0.175

Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-06-07 13:16:24 +00:00
parent 4bdbaf4a88
commit 966bba02bb
8776 changed files with 346420 additions and 149650 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,114 @@
// DbDataReaderTest.cs - NUnit Test Cases for testing the
// DbDataReader family of classes
//
// Authors:
// Gert Driesen (drieseng@users.sourceforge.net)
//
// Copyright (c) 2008 Gert Driesen
//
// 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.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Globalization;
using NUnit.Framework;
namespace MonoTests.System.Data.Connected
{
[TestFixture]
[Category ("sqlserver")]
public class DbDataReaderTest
{
DbConnection conn;
DbCommand cmd;
DbDataReader rdr;
[SetUp]
public void SetUp ()
{
conn = ConnectionManager.Instance.Sql.Connection;
cmd = conn.CreateCommand ();
}
[TearDown]
public void TearDown ()
{
cmd?.Dispose ();
rdr?.Dispose ();
ConnectionManager.Instance.Close ();
}
[Test]
public void GetProviderSpecificValues_Reader_Closed ()
{
cmd.CommandText = "SELECT * FROM employee";
rdr = cmd.ExecuteReader ();
rdr.Close ();
try {
rdr.GetProviderSpecificValues (null);
Assert.Fail ("#1");
} catch (InvalidOperationException ex) {
// Invalid attempt to call MetaData
// when reader is closed
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#2");
Assert.IsNull (ex.InnerException, "#3");
Assert.IsNotNull (ex.Message, "#4");
}
}
[Test]
public void GetProviderSpecificValues_Reader_NoData ()
{
cmd.CommandText = "SELECT * FROM employee where id = 6666";
rdr = cmd.ExecuteReader ();
try {
rdr.GetProviderSpecificValues (null);
Assert.Fail ("#A1");
} catch (InvalidOperationException ex) {
// Invalid attempt to read when no data
// is present
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
Assert.IsNull (ex.InnerException, "#A3");
Assert.IsNotNull (ex.Message, "#A4");
}
Assert.IsFalse (rdr.Read (), "B");
try {
rdr.GetProviderSpecificValues (null);
Assert.Fail ("#C1");
} catch (InvalidOperationException ex) {
// Invalid attempt to read when no data
// is present
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNull (ex.InnerException, "#C3");
Assert.IsNotNull (ex.Message, "#C4");
}
}
}
}

View File

@@ -0,0 +1,210 @@
// IDbCommandTest.cs - NUnit Test Cases for testing the
// IDbCommand implemented classes.
//
// Authors:
// Sureshkumar T (tsureshkumar@novell.com)
//
// 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;
using System.Data;
using System.Data.Common;
using NUnit.Framework;
namespace MonoTests.System.Data.Connected
{
[TestFixture]
[Category ("odbc"), Category ("sqlserver")]
public class CommandTest
{
IDbConnection conn;
IDbCommand cmd;
[SetUp]
public void SetUp ()
{
conn = ConnectionManager.Instance.Sql.Connection;
cmd = conn.CreateCommand ();
}
[TearDown]
public void TearDown ()
{
if (cmd != null)
cmd.Dispose ();
ConnectionManager.Instance.Close ();
}
[Test]
public void ExecuteNonQuery_CommandText_Empty ()
{
try {
cmd.ExecuteNonQuery ();
Assert.Fail ("#A1");
} catch (InvalidOperationException ex) {
// ExecuteNonQuery: CommandText property
// has not been initialized
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
Assert.IsNull (ex.InnerException, "#A3");
Assert.IsNotNull (ex.Message, "#A4");
Assert.IsTrue (ex.Message.StartsWith ("ExecuteNonQuery"), "#A5:" + ex.Message);
}
cmd.CommandText = string.Empty;
try {
cmd.ExecuteNonQuery ();
Assert.Fail ("#B1");
} catch (InvalidOperationException ex) {
// ExecuteNonQuery: CommandText property
// has not been initialized
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
Assert.IsNull (ex.InnerException, "#B3");
Assert.IsNotNull (ex.Message, "#B4");
Assert.IsTrue (ex.Message.StartsWith ("ExecuteNonQuery"), "#B5:" + ex.Message);
}
cmd.CommandText = null;
try {
cmd.ExecuteNonQuery ();
Assert.Fail ("#C1");
} catch (InvalidOperationException ex) {
// ExecuteNonQuery: CommandText property
// has not been initialized
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNull (ex.InnerException, "#C3");
Assert.IsNotNull (ex.Message, "#C4");
Assert.IsTrue (ex.Message.StartsWith ("ExecuteNonQuery"), "#C5:" + ex.Message);
}
}
[Test]
public void ExecuteReader_CommandText_Empty ()
{
try {
cmd.ExecuteReader ();
Assert.Fail ("#A1");
} catch (InvalidOperationException ex) {
// ExecuteReader: CommandText property
// has not been initialized
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#A2");
Assert.IsNull (ex.InnerException, "#A3");
Assert.IsNotNull (ex.Message, "#A4");
Assert.IsTrue (ex.Message.StartsWith ("ExecuteReader"), "#A5:" + ex.Message);
}
cmd.CommandText = string.Empty;
try {
cmd.ExecuteReader ();
Assert.Fail ("#B1");
} catch (InvalidOperationException ex) {
// ExecuteReader: CommandText property
// has not been initialized
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#B2");
Assert.IsNull (ex.InnerException, "#B3");
Assert.IsNotNull (ex.Message, "#B4");
Assert.IsTrue (ex.Message.StartsWith ("ExecuteReader"), "#B5:" + ex.Message);
}
cmd.CommandText = null;
try {
cmd.ExecuteReader ();
Assert.Fail ("#C1");
} catch (InvalidOperationException ex) {
// ExecuteReader: CommandText property
// has not been initialized
Assert.AreEqual (typeof (InvalidOperationException), ex.GetType (), "#C2");
Assert.IsNull (ex.InnerException, "#C3");
Assert.IsNotNull (ex.Message, "#C4");
Assert.IsTrue (ex.Message.StartsWith ("ExecuteReader"), "#C5:" + ex.Message);
}
}
[Test] // bug #462947
public void ExecuteReader_Connection_Reuse ()
{
cmd.CommandText = "SELECT type_blob FROM binary_family where id = 1";
CommandBehavior behavior = CommandBehavior.SequentialAccess |
CommandBehavior.SingleResult;
using (IDataReader reader = cmd.ExecuteReader (behavior)) {
Assert.IsTrue (reader.Read (), "#A1");
long totalsize = reader.GetBytes (0, 0, null, 0, 0);
byte [] val = new byte [totalsize];
long ret = reader.GetBytes (0, 0, val, 0, val.Length);
Assert.AreEqual (5, ret, "#A2");
Assert.AreEqual (new byte [] { 0x32, 0x56, 0x00, 0x44, 0x22 }, val, "#A3");
}
ConnectionManager.Instance.Sql.CloseConnection ();
conn = ConnectionManager.Instance.Sql.Connection;
using (IDataReader reader = cmd.ExecuteReader (behavior)) {
Assert.IsTrue (reader.Read (), "#B1");
long totalsize = reader.GetBytes (0, 0, null, 0, 0);
byte [] val = new byte [totalsize];
long ret = reader.GetBytes (0, 0, val, 0, val.Length);
Assert.AreEqual (5, ret, "#B2");
Assert.AreEqual (new byte [] { 0x32, 0x56, 0x00, 0x44, 0x22 }, val, "#B3");
}
using (IDataReader reader = cmd.ExecuteReader (behavior)) {
Assert.IsTrue (reader.Read (), "#C");
}
ConnectionManager.Instance.Sql.CloseConnection ();
conn = ConnectionManager.Instance.Sql.Connection;
using (IDataReader reader = cmd.ExecuteReader (behavior)) {
Assert.IsTrue (reader.Read (), "#D");
}
using (IDataReader reader = cmd.ExecuteReader (behavior)) {
Assert.IsTrue (reader.Read (), "#E");
}
}
[Test]
public void ExecuteScalar ()
{
cmd.CommandText = "select count(*) from employee where id < 3";
Assert.AreEqual (2, (int) Convert.ChangeType (cmd.ExecuteScalar (),
typeof (int)),
"#1");
cmd.Dispose ();
cmd = conn.CreateCommand ();
cmd.CommandText = "select id from employee where id = 666";
Assert.IsNull (cmd.ExecuteScalar (), "#2");
}
}
}