예제 #1
0
        //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)
            });
        }
예제 #2
0
        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);
        }