public void SendCheckoutMessageOnSuccessfulCheckout() { Mock.Arrange(() => (_inventoryService.RemainingInventory(_testItemSku))).Returns(1).OccursOnce(); Mock.Arrange(() => _paymentProvider.ChargeCard(_testPrice, _testEmailAddress)).DoNothing().MustBeCalled(); Mock.Arrange(() => _sendEmailService.SendCheckoutMessage(_testEmailAddress, _cart)).MustBeCalled(); AddTestItemAndCheckoutWithTestEmailAddress(); Mock.Assert(_sendEmailService); }
public void Checkout(string email) { // check inventory foreach (string sku in _items) { int remainingItems = _inventoryService.RemainingInventory(sku); if (remainingItems <= 0) { throw new ApplicationException("Insufficient inventory"); } } _paymentProvider.ChargeCard(1.23m, email); _sendEmailService.SendCheckoutMessage(email, this); }