public async Task <IPaymentResponseDto> ProcessPaymentAsync(IPaymentRequestDto paymentRequest, CancellationToken cancellationToken)
        {
            var paymentResult = await _acquiringBankProvider.ProcessPaymentAsync(paymentRequest, cancellationToken);

            var completedPaymentDto = new CompletedPaymentDto(paymentRequest, paymentResult);

            _paymentRepository.SavePayment(completedPaymentDto);
            return(paymentResult);
        }
        public void GivenTheAcquiringBankIsSetToRespond(Table table)
        {
            IPaymentResponseDto paymentResponse = table.CreateInstance <CompletedPaymentDto>();

            A.CallTo(() => _fakeAcquiringBankProvider.ProcessPaymentAsync(A <IPaymentRequestDto> ._, A <CancellationToken> ._)).Returns(paymentResponse);
        }