public void ShoppingBasket_CheckCalculateTotalPrice_WitMultipleDiscounts() { // Arrange var multlpleDiscounts = new Mock <IDiscount>(); multlpleDiscounts.Setup(mock => mock.DiscountsApplicable(It.IsAny <IEnumerable <ProductQuantity> >())) .Returns(DiscountHelper.CreateMultipleAppliedDiscounts()); var shoppingBasket = new ShoppingBasket(new List <IDiscount> { multlpleDiscounts.Object }); shoppingBasket.AddProducts(ProductQuantityHelper.CreateProducts()); // Act var discountsTotal = shoppingBasket.GetBasketDiscounts().Sum(item => item.Amount); var result = shoppingBasket.SubTotal - discountsTotal; // Assert Assert.AreEqual(result, 2.80m); }