private IList <BroAmount> GetTotal() { var amounts = TotalCalculator.Calculate(repository.GetTotal(), repository.GetPendingTransactions()); var bros = repository.GetBros(); return(amounts.OrderBy(x => bros.First(b => b.Id == x.Bro).Name).ToArray()); }
public void CalculateCallsAllDiscounts() { var firstDiscountMock = new Mock <IDiscount>(); var secondDiscountMock = new Mock <IDiscount>(); var priceProviderMock = new Mock <IPriceProvider>(); priceProviderMock .Setup(x => x.GetPrice(It.IsAny <string>())) .Returns(0m); var totalCalculator = new TotalCalculator( new List <IDiscount> { firstDiscountMock.Object, secondDiscountMock.Object }, priceProviderMock.Object); var basketItems = new List <BasketItem> { new BasketItem("test_product") }; totalCalculator.Calculate(basketItems); firstDiscountMock.Verify(x => x.GetDiscount(basketItems), Times.Once); secondDiscountMock.Verify(x => x.GetDiscount(basketItems), Times.Once); }
public void CalculateReturnsTotalWithSumOfDiscounts() { var priceProviderMock = new Mock <IPriceProvider>(); priceProviderMock .Setup(x => x.GetPrice(It.IsAny <string>())) .Returns(100m); var basketItems = new List <BasketItem> { new BasketItem("test_product") }; var firstDiscountMock = new Mock <IDiscount>(); var secondDiscountMock = new Mock <IDiscount>(); firstDiscountMock .Setup(x => x.GetDiscount(basketItems)) .Returns(10m); secondDiscountMock .Setup(x => x.GetDiscount(basketItems)) .Returns(2m); var totalCalculator = new TotalCalculator( new List <IDiscount> { firstDiscountMock.Object, secondDiscountMock.Object }, priceProviderMock.Object); var total = totalCalculator.Calculate(basketItems); Assert.AreEqual(88m, total); }
public ActionResult GetTotal() { using (var db = DbFactory.Open()) { List <Transaction> transactions; List <Bro> bros; Dictionary <Bro, Dictionary <Currency, decimal> > total; using (new PerfCounter("total-transactions")) transactions = db.Query <Transaction>().ToList(); using (new PerfCounter("total-bros")) bros = db.Query <Bro>().ToList(); using (new PerfCounter("total-calcall")) total = TotalCalculator.Calculate(transactions, bros); var result = total.Keys.Select(bro => new BroTotalRest(bro, total[bro])).ToList(); return(Json(result, JsonRequestBehavior.AllowGet)); } }