public async Task GetPayment_WhenPaymentResultIsNull_ShouldNotMaskCreditCardNumber()
        {
            //Arrange
            _paymentServiceMock
            .Setup(x => x.GetPaymentAsync(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .ReturnsAsync(default(PaymentRecord?));

            var sut = new GetMaskedPaymentService(_paymentServiceMock.Object, _paymentResponseMaskerMock.Object);

            //Act
            await sut.GetPaymentAsync(Guid.NewGuid(), Guid.NewGuid());

            //Assert
            _paymentResponseMaskerMock.Verify(x => x.MaskPaymentRecord(It.IsAny <PaymentRecord>()), Times.Never);
        }
        public async Task GetPayment_WhenPaymentResultIsNotNull_ShouldMaskCreditCardNumber()
        {
            //Arrange
            var innerPaymentResult = new PaymentRecord()
            {
                CardNumber = "4539252527166077"
            };

            _paymentServiceMock
            .Setup(x => x.GetPaymentAsync(It.IsAny <Guid>(), It.IsAny <Guid>()))
            .ReturnsAsync(innerPaymentResult);

            var sut = new GetMaskedPaymentService(_paymentServiceMock.Object, _paymentResponseMaskerMock.Object);

            //Act
            await sut.GetPaymentAsync(Guid.NewGuid(), Guid.NewGuid());

            //Assert
            _paymentResponseMaskerMock.Verify(x => x.MaskPaymentRecord(innerPaymentResult), Times.Once);
        }