Пример #1
0
        public async Task GetPayment_ValidRequest_RetrievesPayment()
        {
            // Arrange
            IsValidationSuccess(true);

            var paymentId = "TestId";

            var payment = new Payment()
            {
                Id              = paymentId,
                Amount          = 100,
                CardNumber      = "1111 0000 0000 0000",
                Currency        = "EUR",
                Cvv             = "123",
                ExpirationMonth = 10,
                ExpirationYear  = 20
            };

            var command = new GetPaymentCommand()
            {
                Id = paymentId
            };

            _repositoryMock.Setup(
                x => x.Get(paymentId))
            .ReturnsAsync(payment);

            // Act
            var response = await _paymentService.Get(command);

            // Assert
            Assert.IsFalse(response.IsError);
            Assert.AreEqual(response.Result, payment);
        }
Пример #2
0
        public async Task GetPayment_NotFound_FailToFetchPayment()
        {
            // Arrange
            IsValidationSuccess(true);

            var paymentId = "TestId";

            var command = new GetPaymentCommand()
            {
                Id = paymentId
            };

            // Act
            var response = await _paymentService.Get(command);

            // Assert
            Assert.IsTrue(response.IsError);
            Assert.AreEqual(response.Error.Code, ServiceErrorCode.NotFound);
        }
Пример #3
0
        public async Task <ServiceResult <Payment> > Get(GetPaymentCommand command)
        {
            var validator        = _validator.GetValidator <GetPaymentCommand>();
            var validationResult = await validator.ValidateAsync(command);

            if (validationResult.IsValid == false)
            {
                _logger.LogWarning($"Validation Error: {validationResult.ErrorsToString()}");
                return(new ServiceResult <Payment>(ServiceErrorCode.ValidationError));
            }

            var payment = await _repository.Get(command.Id);

            if (payment == null)
            {
                _logger.LogWarning($"Payment with id {command.Id.ToString()} not found.");
                return(new ServiceResult <Payment>(ServiceErrorCode.NotFound));
            }

            return(new ServiceResult <Payment>(payment));
        }