public void GetTotalPrice_IfOfferExists_ShouldApplyDiscount() { // arrange var offerMock = new Mock <IOfferOrchestrator>(); offerMock.Setup(mock => mock.GetOffer("B15")) .Returns(new ItemOffer { OfferPrice = 0.45m, Quantity = 2, SKU = "B15" }); offerMock.Setup(mock => mock.GetOffer("A99")) .Returns(new ItemOffer { OfferPrice = 1.30m, Quantity = 3, SKU = "A99" }); var orchestrator = new CheckoutOrchestrator(new Mock <ItemOrchestrator>().Object, offerMock.Object, new Mock <DiscountOrchestrator>().Object); var expected = 4.05m; orchestrator._listCheckout = new List <Checkout>() { checkoutItems }; //act var actual = orchestrator.GetTotalPriceWithDiscount(checkoutId); //assert actual.Should().Be(expected); }
public void GetTotalPrice_IfNoOfferExists_ShouldNotApplyDiscount() { // arrange var orchestrator = new CheckoutOrchestrator(new Mock <ItemOrchestrator>().Object, new Mock <IOfferOrchestrator>().Object, new Mock <DiscountOrchestrator>().Object); var expected = checkoutItems.Items.Sum(p => p.Price); orchestrator._listCheckout = new List <Checkout>() { checkoutItems }; //act var actual = orchestrator.GetTotalPriceWithDiscount(checkoutId); //assert actual.Should().Be(expected); }