Revision: 9747
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at November 19, 2008 21:32 by rengber
Initial Code
public class TransactionStore
{
public virtual IDataReader GetReader(SqlCommand cmd)
{
return cmd.ExecuteReader();
}
public decimal GetAvailableBalance(int custNumb)
{
decimal retVal = 0.00M;
using (SqlConnection sqlConnection = new SqlConnection(_dbConnection))
{
sqlConnection.Open();
using (SqlCommand sqlCommand = sqlConnection.CreateCommand())
{
sqlCommand.CommandType = CommandType.StoredProcedure;
sqlCommand.CommandText = "dbo.GetCustomerBalance";
sqlCommand.Parameters.AddWithValue("CustomerID", custNumb);
using (IDataReader dr = GetReader(sqlCommand))
{
if (dr != null)
{
dr.Read();
retVal = Convert.ToDecimal(dr["AvailableBalance"]);
}
}
}
}
return retVal;
}
}
[TestFixture]
public class IMTTests : TransactionStore
{
Mockery mocks = new Mockery();
IDataReader idr = null;
public override IDataReader GetReader(SqlCommand cmd)
{
Expect.AtLeastOnce.On(idr).Method("Read").Will(Return.Value(true));
Expect.AtLeastOnce.On(idr).Method("Dispose");
return idr;
}
[Test]
public void TestAvailableBalance()
{
idr = (IDataReader)mocks.NewMock(typeof(IDataReader));
Expect.AtLeastOnce.On(idr).Get["AvailableBalance"].Will(Return.Value(42.00M));
Decimal amount = this.GetAvailableBalance(12345);
Assert.AreEqual(42.00M, amount);
}
}
Initial URL
Initial Description
Shows how to mock the Object["CollectionItemName"] syntax.
Initial Title
Using NMock to Create an IDataReader for Testing Data Access Methods
Initial Tags
Initial Language
C#