public async Task ReturnPaymentDetails()
        {
            var id = 21;
            var databasePaymentDetails = new PaymentDetails();
            var expectedPaymentDetails = new Contract.PaymentDetails();

            _repository.Setup(r => r.GetPayment(id)).ReturnsAsync(databasePaymentDetails);
            _mapper.Setup(m => m.Map <Contract.PaymentDetails>(databasePaymentDetails)).Returns(expectedPaymentDetails);

            var result = await _paymentProcessor.GetPayment(id);

            result.Should().Be(expectedPaymentDetails);
        }
        public void Setup()
        {
            _apiClient  = new Mock <IPaymentApiClient>();
            _repository = new Mock <IPaymentRepository>();
            _cardNumberMaskingService = new Mock <ICardNumberMaskingService>();
            _mapper = new Mock <IMapper>();

            _paymentProcessor = new PaymentProcessor(_apiClient.Object, _repository.Object, _mapper.Object, _cardNumberMaskingService.Object, new Mock <ILogger <PaymentProcessor> >().Object);

            _newPayment = new Contract.Payment();

            _paymentResult = new PaymentResult();
            _apiClient.Setup(c => c.SendPayment(_newPayment)).ReturnsAsync(_paymentResult);

            _mappedPayment = new PaymentDetails();
            _mapper.Setup(m => m.Map <PaymentDetails>(_newPayment)).Returns(_mappedPayment);

            _maskedCardNumber = "1234********1234";
            _cardNumberMaskingService.Setup(s => s.MaskCardNumber(_newPayment.CardNumber)).Returns(_maskedCardNumber);
        }