public void CalculateDiscount_IfNoOfferFound_ShouldNotCalculateDiscount() { // arrange var orchestrator = new CheckoutOrchestrator(new Mock <ItemOrchestrator>().Object, new Mock <IOfferOrchestrator>().Object, new Mock <DiscountOrchestrator>().Object); var sku = "B15"; var expected = 0.0m; //act var actual = orchestrator.CalculateDiscount(sku); //assert actual.Should().Be(expected); }
public void CalculateDiscount_IfSKUEmptyOrNull_ShouldThrowArgumentNullException() { // arrange var orchestrator = new CheckoutOrchestrator(new Mock <ItemOrchestrator>().Object, new Mock <IOfferOrchestrator>().Object, new Mock <DiscountOrchestrator>().Object); //act Func <decimal> action = () => { return(orchestrator.CalculateDiscount(null)); }; //assert action.Should().Throw <ArgumentNullException>(); }
public void CalculateDiscount_IfOfferFound_ShouldCalculateDiscount() { // arrange var offerMock = new Mock <IOfferOrchestrator>(); offerMock.Setup(mock => mock.GetOffer("B15")) .Returns(new ItemOffer { OfferPrice = 0.45m, Quantity = 2, SKU = "B15" }); var orchestrator = new CheckoutOrchestrator(new Mock <ItemOrchestrator>().Object, offerMock.Object, new Mock <DiscountOrchestrator>().Object); var sku = "B15"; var expected = 0.45m; orchestrator._listCheckout = new List <Checkout>() { checkoutItems }; //act var actual = orchestrator.CalculateDiscount(sku); //assert actual.Should().Be(expected); }