/// <summary> /// /// </summary> public Receipt CalculateReceipt(string[] items) { Receipt result = new Receipt(); //zero the result StockKeepingUnits itemSKUs = new StockKeepingUnits(); foreach (var s in items) { StockKeepingUnit tempRef = fSKUs.FindSingletonSKU(s); if (tempRef != null) { itemSKUs.Add(new StockKeepingUnit(tempRef)); } else { result.AddRemark(String.Format("\"{0}\" was not recognised and skipped", s)); } } result.AddRemark(itemSKUs.ToString()); //now that we know what we are buting, we should apply the discounts result.Subtotal = itemSKUs.Price(); DiscountResults discountResults = fDiscounts.ApplyDiscounts(itemSKUs); result.Total = result.Subtotal - discountResults.Sum(); result.AddDiscount(discountResults.ToString()); return(result); }
public void SumTest() { DiscountResults target = new DiscountResults(); // TODO: Initialize to an appropriate value target.AddRange(new DiscountResult[] { new DiscountResult("test1", 50.0, true), new DiscountResult("test2", 50.0, false), //this one should be ignored new DiscountResult("test3", 100.0, true), new DiscountResult("test4", 25.0, true), new DiscountResult("test5", 75.0, true) }); double expected = 250.00F; // TODO: Initialize to an appropriate value double actual; actual = target.Sum(); Assert.AreEqual <double>(expected, actual); }