//This would be some ORM (likely dapper) to access products stored in a DB //For the purposes of this task, I have just stubbed what I would expect public List <Product> GetAllAvailableProducts() { ProductFactory prodFactory = new ProductFactory(); return(new List <Product>() { prodFactory.GenerateProduct(ProductEnum.CheapHat), prodFactory.GenerateProduct(ProductEnum.ExpensiveHat), prodFactory.GenerateProduct(ProductEnum.CheapJumper), prodFactory.GenerateProduct(ProductEnum.ExpensiveJumper), prodFactory.GenerateProduct(ProductEnum.HeadLight), prodFactory.GenerateProduct(ProductEnum.Voucher30Pounds) }); }
public void CheapHat_ExpensiveJumper_5PoundGiftVoucher() { //Given a basket with a cheap hat, an expensive jumper, and �off gift voucher Basket basket = new Basket() { Products = new List <Product>() { _prodFactory.GenerateProduct(ProductEnum.CheapHat), _prodFactory.GenerateProduct(ProductEnum.ExpensiveJumper) }, GiftVouchers = new List <GiftVoucher>() { (GiftVoucher)_vouchFactory.GenerateVoucher(VouchersEnum.Gift_5PoundOff) } }; //When the total is calculated var actual = _basketCalculator.CalculateTotal(basket); //Then the total should be �.15, and no error message displayed Assert.AreEqual(60.15m, actual.FinalTotal); Assert.AreEqual(null, actual.ErrorMessage); }