예제 #1
0
        public PaymentServiceMakePaymentTests()
        {
            _input = new Payment
            {
                Amount      = 120.49m,
                CardNumber  = "1234-1234-1234-1234",
                Currency    = Currency.GBP,
                CVV         = 333,
                ExpiryYear  = DateTime.Now.Year + 1,
                ExpiryMonth = DateTime.Now.Month + 1
            };

            _paymentProcessResults = new PaymentProcessResults
            {
                Success = true,
                TranscactionIdentifier = "111111111111111",
            };

            _paymentRepository      = Substitute.For <IPaymentRepository>();
            _paymentProvider        = Substitute.For <IPaymentProvider>();
            _paymentProviderFactory = Substitute.For <IPaymentProviderFactory>();

            _paymentRepository.Create(Arg.Do <Payment>(p => _persistedPayment = p));
            _paymentProvider.ProcessPayment(Arg.Any <Payment>()).Returns(_paymentProcessResults);
            _paymentProviderFactory.Create(Arg.Any <string>()).Returns(_paymentProvider);

            _target = new PaymentService(_paymentRepository, new BusinessRulesValidator(), _paymentProviderFactory);
        }
예제 #2
0
        public bool PurchaseProducts(string userToken)
        {
            var result = _paymentProvider.ProcessPayment(userToken);

            if (result)
            {
                ClearProducts(userToken);
            }
            return(result);
        }