Cheatography
https://cheatography.com
Example for RhinoMocks Mocking Framework
Example Code
public interface ISalesTaxService
{
Dictionary<string, decimal> GetSalesTaxByPostalCode(string country);
}
public class SalesTaxLogic
{
private readonly Dictionary<string, decimal> _salesTaxByPostalCode;
public SalesTaxLogic(ISalesTaxService salesTaxService, string country)
{
_salesTaxByPostalCode = salesTaxService.GetSalesTaxByPostalCode(country);
}
public decimal CalcSalesTax(string postalCode, decimal orderTotal)
{
return Math.Round(_salesTaxByPostalCode[postalCode] * orderTotal, 2, MidpointRounding.AwayFromZero);
}
}
[TestClass]
public class InvoiceLogicTests
{
[TestMethod]
public void When_Calculating_Sales_Tax_It_Should_Not_Be_Zero()
{
//Arrange
ISalesTaxService salesTaxServiceMock = MockRepository.GenerateMock<ISalesTaxService>();
Dictionary<string, decimal> salesTaxRates = new Dictionary<string, decimal>();
salesTaxRates.Add("43229", .0675M);
salesTaxServiceMock.Stub(o => o.GetSalesTaxByPostalCode(null)).IgnoreArguments().Return(salesTaxRates).Repeat.Any();
SalesTaxLogic salesTaxLogic = new SalesTaxLogic(salesTaxServiceMock, "USA");
//Act
decimal orderSalesTax = salesTaxLogic.CalcSalesTax("43229", 19.95M);
//Assert
Console.WriteLine(orderSalesTax);
Assert.AreNotEqual(0, orderSalesTax);
salesTaxServiceMock.AssertWasCalled(o => o.GetSalesTaxByPostalCode("USA"));
}
}
|
|
Created By
www.kellermansoftware.com
Metadata
Comments
No comments yet. Add yours below!
Add a Comment
Related Cheat Sheets
More Cheat Sheets by GregFinzer