using System; using System.Collections.Generic; using System.Linq; using System.Text; using NUnit.Framework; using System.Data; using System.Data.SqlClient; using EPS.Common.Data; namespace Data.Utilities { [TestFixture] public class SqlDbHelperTests { private IDbHelper _dbhelper; [TestFixtureSetUp] public void TextFixtureSetup() { _dbhelper = new SqlDbHelper("user id=scratch;password=scratch;database=scratch;server=(local)"); } [Test] public void CanGetConnectionString() { Assert.AreEqual("user id=scratch;password=scratch;database=scratch;server=(local)", _dbhelper.ConnectionString); } [Test] public void ExecuteNonQueryReturnsNumberOfRowsAffected() { int expected = 4; int actual = _dbhelper.ExecuteNonQuery("update customer set last_name='Carter'"); Assert.AreEqual(expected, actual); } [Test] public void ExecuteReaderReturnsReadyToGoDataReader() { int actual = 0; using (IDataReader reader = _dbhelper.ExecuteReader("select * from customer")) { while (reader.Read()) { actual++; } } Assert.AreEqual(4, actual); } [Test] public void ExecuteDataTableReturnsDataTableWithResultset() { DataTable data = _dbhelper.ExecuteDataTable("select * from customer"); Assert.IsNotNull(data); Assert.AreEqual(4, data.Rows.Count); Assert.IsTrue(data.Columns.Contains("first_name")); Assert.IsTrue(data.Columns.Contains("last_name")); Assert.IsTrue(data.Columns.Contains("birthday")); Assert.IsTrue(data.Columns.Contains("customer_id")); } [Test] public void ExecuteScalarReturnsSingleTypedValue() { DateTime actual = _dbhelper.ExecuteScalar(@" select birthday from customer where first_name = 'Chris' "); Assert.AreEqual(new DateTime(1970, 6, 18), actual); } [Test] public void ExecuteArrayReturnsTypedOneDimensionArrayResultset() { string[] actual = _dbhelper.ExecuteArray("select first_name from customer"); Assert.AreEqual(4, actual.Length); Assert.IsTrue(Array.Exists(actual, delegate(string s) { return s.Equals("Chris"); })); Assert.IsTrue(Array.Exists(actual, delegate(string s) { return s.Equals("Anja"); })); Assert.IsTrue(Array.Exists(actual, delegate(string s) { return s.Equals("Riley"); })); Assert.IsTrue(Array.Exists(actual, delegate(string s) { return s.Equals("Emmitt"); })); } } }