public void save_transaction_and_send_confirmation_when_payment_by_check(string paymentMethod, string orderId, decimal amount) { var email = new OrderConfirmationEmail(orderId, _customerId, paymentMethod); _emailGateway.NewEmailFor(orderId, _customerId, paymentMethod).Returns(email); var transaction = new PaymentTransaction(orderId, amount, paymentMethod); _paymentService.Pay(amount, _customerId, orderId, paymentMethod); _transactionRepo.ReceivedWithAnyArgs().Save(transaction); _emailGateway.Received().Send(email); }