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); }
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); }
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)); }