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