public void AddItemsToCheckout_IfCheckoutExists_ShouldAddItemsToExistingCheckout() { // arrange Mock <IItemOrchestrator> mockItem = new Mock <IItemOrchestrator>(); mockItem.Setup(mock => mock.GetItem(It.IsAny <string>())).Returns(new Item { SKU = "A99", Price = 0.50m }); var orchestrator = new CheckoutOrchestrator(mockItem.Object, new Mock <IOfferOrchestrator>().Object, new Mock <DiscountOrchestrator>().Object); orchestrator._listCheckout = new List <Checkout> { new Checkout { Id = checkoutId, Items = new List <Item> { new Item { Price = 0.50m, SKU = "A99" } } } }; //act var itemAdded = orchestrator.ScanItem("A99", checkoutId); //assert itemAdded.Should().BeTrue(); }
public void AddItemsToCheckout_IfSkuNullOrEmpty_ShouldThrowArgumentNullException() { // arrange var orchestrator = new CheckoutOrchestrator(new Mock <ItemOrchestrator>().Object, new Mock <IOfferOrchestrator>().Object, new Mock <DiscountOrchestrator>().Object); //act Func <bool> action = () => { return(orchestrator.ScanItem(null, checkoutId)); }; //assert action.Should().Throw <ArgumentNullException>(); }
public void AddItemsToCheckout_IfCheckoutNotFoundAddItem_ShouldCreateNewCheckout() { // arrange Mock <IItemOrchestrator> mockItem = new Mock <IItemOrchestrator>(); mockItem.Setup(mock => mock.GetItem(It.IsAny <string>())).Returns(new Item { SKU = "A99", Price = 0.50m }); var orchestrator = new CheckoutOrchestrator(mockItem.Object, new Mock <IOfferOrchestrator>().Object, new Mock <DiscountOrchestrator>().Object); //act var itemAdded = orchestrator.ScanItem("A99", Guid.NewGuid()); //assert itemAdded.Should().BeTrue(); }