public void TestCalculateMultipleSavings() { const string rulesFile = "price-rules-many.txt"; const string cartFile = "shoppingcart-ApplesBananasOranges.txt"; const bool compound = true; var cp = new CartProcessor(rulesFile, cartFile, compound); var rules = ruleMapper.ReadRules(rulesFile); Assert.AreEqual(3, rules.Keys.Count); var cart = cartMapper.ReadShoppingList(cartFile); Assert.AreEqual(3, cart.Keys.Count); var savings = cp.CalculateAmountSaved(cart["apple"], rules["apple"], compound); Assert.AreEqual(10, savings); savings += cp.CalculateAmountSaved(cart["banana"], rules["banana"], compound); Assert.AreEqual(10.6m, savings); savings += cp.CalculateAmountSaved(cart["orange"], rules["orange"], compound); Assert.AreEqual(10.85m, savings); }
public void TestSavingsNonCompoundRules() { const string rulesFile = "rules-compound.txt"; const string cartFile = "shoppingcart-ApplesBananasOranges.txt"; const bool compound = false; var cp = new CartProcessor(rulesFile, cartFile, false); var rules = ruleMapper.ReadRules(rulesFile); Assert.AreEqual(3, rules.Keys.Count); var cart = cartMapper.ReadShoppingList(cartFile); Assert.AreEqual(3, cart.Keys.Count); var savings = cp.CalculateAmountSaved(cart["apple"], rules["apple"], compound); Assert.AreEqual(10m, savings); savings += cp.CalculateAmountSaved(cart["banana"], rules["banana"], compound); Assert.AreEqual(13m, savings); savings += cp.CalculateAmountSaved(cart["orange"], rules["orange"], compound); Assert.AreEqual(13.25m, savings); }
public void TestCalculateSavings() { const string rulesFile = "price-rules-apple.txt"; const string cartFile = "shoppingcart-5apples.txt"; const decimal expected = 0m; const bool compound = true; var cp = new CartProcessor(rulesFile, cartFile, compound); var cart = cartMapper.ReadShoppingList(cartFile); var rules = ruleMapper.ReadRules(rulesFile); var savings = cp.CalculateAmountSaved(cart["apple"], rules["apple"], compound); Assert.AreEqual(expected, savings); }