Пример #1
0
 public void Setup()
 {
     _paymentStrategyFactory = A.Fake <IPaymentStrategyFactory>();
     _orderService           = A.Fake <IOrderService>();
     _paymentStrategy        = A.Fake <IPaymentStrategy>();
     A.CallTo(() => _paymentStrategyFactory.Create(A <string> ._)).Returns(_paymentStrategy);
     _paymentController = new PaymentController(_paymentStrategyFactory, _orderService);
 }
Пример #2
0
        public async Task <IActionResult> CheckoutAsync(string payment)
        {
            if (string.IsNullOrEmpty(payment))
            {
                return(BadRequest());
            }

            var userId = User?.GetId();
            var order  = await _orderService.GetNewOrderByUserIdAsync(userId);

            var strategy = _paymentStrategyFactory.Create(payment);

            return(strategy.Pay(order));
        }