예제 #1
0
        public void ItCreatesCheckoutAndGetsAllRules()
        {
            _itemPriceRuleFactory.Setup(x => x.GetAllItemPriceRules()).Returns(Mock.Of <List <IItemPriceRule> >);

            var results = _factory.CreateCheckout();

            Assert.IsNotNull(results);
        }
예제 #2
0
        public decimal CalculateTotalPrice()
        {
            decimal total = decimal.Zero;

            var itemsLeft = new List <string>(_scannedItems);

            foreach (var itemPriceRule in  _checkoutFactory.CreateCheckout()) //; _itemPriceRules)
            {
                total += itemPriceRule.CalculatePrice(itemsLeft);
            }

            if (itemsLeft.Count != 0)
            {
                throw new ApplicationException("Invalid items: " + string.Join(", ", itemsLeft));
            }

            return(total);
        }