/// <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 PriceTest() { StockKeepingUnits target = new StockKeepingUnits(); // TODO: Initialize to an appropriate value target.Add(new StockKeepingUnit("Wheel", 88.50)); target.Add(new StockKeepingUnit("Tyre", 50.00)); target.Add(new StockKeepingUnit("Tyrehorn", 11.50)); double expected = 150.00F; // TODO: Initialize to an appropriate value double actual; actual = target.Price(); Assert.AreEqual(expected, actual); }