You've already forked linux-packaging-mono
Imported Upstream version 5.2.0.175
Former-commit-id: bb0468d0f257ff100aa895eb5fe583fb5dfbf900
This commit is contained in:
parent
4bdbaf4a88
commit
966bba02bb
File diff suppressed because it is too large
Load Diff
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user