예제 #1
0
        public void FasterPaymentsSchemeValidationInsufficientBalance()
        {
            var mockResolvePaymentValidator = new Mock <ResolvePaymentSchemeValidator>();

            mockResolvePaymentValidator.SetupAllProperties();
            mockResolvePaymentValidator.Setup(x => x.GetPaymentSchemeValidator(PaymentScheme.FasterPayments)).Returns(new FasterPaymentSchemeValidator());

            var mockAccountService = new Mock <IAccountService>();

            mockAccountService.SetupAllProperties();
            mockAccountService.Setup(x => x.HasSuffientBalance(It.IsAny <Account>(), It.IsAny <decimal>())).Returns(false);
            var account = new Account()
            {
                Balance               = 9,
                AccountNumber         = "12345",
                Status                = AccountStatus.Live,
                AllowedPaymentSchemes = AllowedPaymentSchemes.FasterPayments
            };

            paymentValidator = new PaymentValidator(mockResolvePaymentValidator.Object, mockAccountService.Object);

            var result = paymentValidator.CheckPaymentEligible(PaymentScheme.FasterPayments, account, 10);

            Assert.IsFalse(result.Success);
        }
예제 #2
0
        public void BacsSchemeValidationSuccess()
        {
            var mockResolvePaymentValidator = new Mock <ResolvePaymentSchemeValidator>();

            mockResolvePaymentValidator.SetupAllProperties();
            mockResolvePaymentValidator.Setup(x => x.GetPaymentSchemeValidator(PaymentScheme.Bacs)).Returns(new BacsPaymentSchemeValidator());

            var mockAccountService = new Mock <IAccountService>();

            mockAccountService.SetupAllProperties();

            var account = new Account()
            {
                Balance               = 10,
                AccountNumber         = "12345",
                Status                = AccountStatus.Live,
                AllowedPaymentSchemes = AllowedPaymentSchemes.Bacs
            };

            paymentValidator = new PaymentValidator(mockResolvePaymentValidator.Object, mockAccountService.Object);

            var result = paymentValidator.CheckPaymentEligible(PaymentScheme.Bacs, account, 10);

            Assert.IsTrue(result.Success);
        }
예제 #3
0
 public PaymentComponent(IBaseParameter baseParameter,
                         IPaymentValidator paymentValidator,
                         IGatewayComponent paymentGateway, IPaymentRepository paymentRepository) : base(baseParameter)
 {
     PaymentValidatorComponent = paymentValidator;
     GatewayComponent          = paymentGateway;
     PaymentRepository         = paymentRepository;
 }
예제 #4
0
 public PaymentProcessor(IBillingAdapter billingAdapter, IPaymentValidator paymentValidator,
                         IPaymentRepository repository, IEncryptor encryptor)
 {
     _billingAdapter   = billingAdapter;
     _paymentValidator = paymentValidator;
     _repository       = repository;
     _encryptor        = encryptor;
 }
 public PaymentOrchestrator(
     IPaymentValidator paymentValidator,
     IPaymentService paymentService,
     IMapper mapper)
 {
     this.paymentValidator = paymentValidator;
     this.paymentService   = paymentService;
     this.mapper           = mapper;
 }
예제 #6
0
 public PaymentServiceExternal(
     IUnitOfWork unitOfWork,
     IRepository <Payment> paymentRepository,
     IPaymentValidator paymentValidator)
 {
     _unitOfWork        = unitOfWork ?? throw new ArgumentNullException(nameof(unitOfWork));
     _paymentRepository = paymentRepository ?? throw new ArgumentNullException(nameof(paymentRepository));
     _paymentValidator  = paymentValidator ?? throw new ArgumentNullException(nameof(paymentValidator));
 }
예제 #7
0
 public PaymentService(IPaymentRepository paymentRepository,
                       IUserRepository userRepository,
                       IPaymentValidator paymentValidator,
                       IStringLocalizer <ErrorMessages> localizer)
 {
     _paymentRepository = paymentRepository;
     _userRepository    = userRepository;
     _paymentValidator  = paymentValidator;
     _localizer         = localizer;
 }
예제 #8
0
        public void PaymentServiceExternal_Ctor_should_not_accept_a_not_initialized_parameter(
            IUnitOfWork unitOfWork,
            IRepository <Payment> paymentRepository,
            IPaymentValidator paymentValidator)
        {
            // Act
            Action ctor = () => new PaymentServiceExternal(unitOfWork, paymentRepository, paymentValidator);

            // Assert
            ctor.Should().Throw <ArgumentNullException>();
        }
예제 #9
0
 public PaymentsController(
     IPaymentValidator paymentValidator,
     IStorePaymentCommand cardStorageCommand,
     IPaymentTransactionQuery transactionQuery,
     IPaymentService paymentService)
 {
     this.paymentValidator    = paymentValidator;
     this.storePaymentCommand = cardStorageCommand;
     this.transactionQuery    = transactionQuery;
     this.paymentService      = paymentService;
 }
 public PaymentService(IBankPaymentClient bankPaymentClient, IPaymentStore paymentStore,
                       IPaymentValidator paymentValidator,
                       ILogger <PaymentService> logger)
 {
     _logger           = logger ?? throw new ArgumentNullException(nameof(logger));
     _paymentValidator = paymentValidator ??
                         throw new ArgumentNullException(nameof(paymentValidator));
     _bankPaymentClient =
         bankPaymentClient ?? throw new ArgumentNullException(nameof(bankPaymentClient));
     _paymentStore = paymentStore ?? throw new ArgumentNullException(nameof(paymentStore));
 }
    public void OrderedSuccessfully()
    {
        // Arrange.
        IPaymentValidator paymentValidatorMock = GetValidatorMock();
        IServerConnector  connectorMock        = GetConnectorMock();
        var pizzaOrderer = new PizzaOrderer(paymentValidatorMock, connectorMock);

        // Act.
        pizzaOrderer.MakeOrder(PIZZA_NAME);

        // Assert.
        connectorMock.Received(1).SendRequestForPizza(Arg.Any <string>());
    }
예제 #12
0
        public PaymentService(
            IPaymentRepository paymentRepository,
            IPaymentValidator paymentValidator,
            IPaymentFactory paymentFactory)
        {
            paymentRepository.CheckArgumentIsNull(nameof(paymentRepository));
            _paymentRepository = paymentRepository;

            paymentValidator.CheckArgumentIsNull(nameof(paymentValidator));
            _paymentValidator = paymentValidator;

            paymentFactory.CheckArgumentIsNull(nameof(paymentFactory));
            _paymentFactory = paymentFactory;
        }
예제 #13
0
 public PaymentsController(
     ApplicationContext context,
     ILogger <PaymentsController> log,
     IConverter pdfConverter,
     Converter barcodeConverter,
     EmailService emailService,
     IHttpClientFactory clientFactory,
     IPaymentValidator validator
     )
 {
     _db              = context;
     _log             = log;
     EmailService     = emailService;
     PdfConverter     = pdfConverter;
     BarcodeConverter = barcodeConverter;
     HttpClient       = clientFactory.CreateClient();
     Validator        = validator;
 }
예제 #14
0
 public ProcessPaymentService(IPaymentValidator validator, IMerchantRepository merchantRepository)
 {
     _paymentValidator   = validator;
     _merchantRepository = merchantRepository;
 }
예제 #15
0
 public PizzaOrderer(IPaymentValidator paymentValidator, IServerConnector serverConnector)
 {
     this.paymentValidator = paymentValidator;
     this.serverConnector  = serverConnector;
 }
예제 #16
0
 public PaymentGatewayController(IPaymentGatewayService paymentGatewayService, IPaymentValidator paymentValidator, ILogger logger)
 {
     _paymentGatewayService = paymentGatewayService;
     _paymentValidator      = paymentValidator;
     _logger = logger;
 }
예제 #17
0
 public PaymentService(IPaymentValidator paymentValidator)
 {
     _paymentValidator = paymentValidator;
 }