public async Task GivenValidationErrorsInPayment_WhenProcessPaymentIsCalled_BadRequestIsReturnedWithVAlidationErrors() { var request = new ProcessPaymentRequest(); var requestPaymentCommand = new RequestPaymentCommand(); var requestPaymentCommandResult = new Result { Errors = new List <string> { "Error1" } }; var getPaymentByMerchantTransactionIdQueryResponse = new GetPaymentByMerchantTransactionIdQueryResponse() { IsSuccessfull = true }; _mapper.Map <RequestPaymentCommand>(request).Returns(requestPaymentCommand); _mediator.Send(requestPaymentCommand).Returns(requestPaymentCommandResult); _mediator.Send(Arg.Any <GetPaymentByMerchantTransactionIdQuery>()) .Returns(new Result <GetPaymentByMerchantTransactionIdQueryResponse>() { Value = getPaymentByMerchantTransactionIdQueryResponse }); var response = await _controller.ProcessPayment(request); var ProcessPaymentResponse = ((BadRequestObjectResult)response).Value as ProcessPaymentResponse; ProcessPaymentResponse.Should().BeEquivalentTo(new ProcessPaymentResponse { ResultCode = "ValidationError", ResultDescription = "Error1", }); }
public async Task GivenPaymentFail_WhenProcessPaymentIsCalled_ThenBadRequestIsReturnedWithError() { var request = new ProcessPaymentRequest(); var requestPaymentCommand = new RequestPaymentCommand(); var requestPaymentCommandResult = new Result(); var resultCode = "Error"; var resultDescription = "Error desciription"; var transactionId = Guid.NewGuid(); var getPaymentByMerchantTransactionIdQueryResponse = new GetPaymentByMerchantTransactionIdQueryResponse() { IsSuccessfull = false, ResultCode = resultCode, ResultDescription = resultDescription, TransactionId = transactionId }; _mapper.Map <RequestPaymentCommand>(request).Returns(requestPaymentCommand); _mediator.Send(requestPaymentCommand).Returns(requestPaymentCommandResult); _mediator.Send(Arg.Any <GetPaymentByMerchantTransactionIdQuery>()) .Returns(new Result <GetPaymentByMerchantTransactionIdQueryResponse>() { Value = getPaymentByMerchantTransactionIdQueryResponse }); var response = await _controller.ProcessPayment(request); var ProcessPaymentResponse = ((BadRequestObjectResult)response).Value as ProcessPaymentResponse; ProcessPaymentResponse.Should().BeEquivalentTo(new ProcessPaymentResponse { ResultCode = resultCode, ResultDescription = resultDescription, TransactionId = transactionId }); }
private static ProcessPaymentResponse BuildProcessPaymentResponse(GetPaymentByMerchantTransactionIdQueryResponse payment) { return(new ProcessPaymentResponse { ResultCode = payment.ResultCode, ResultDescription = payment.ResultDescription, TransactionId = payment.TransactionId }); }
public async Task GivenValidPayment_WhenProcessPaymentIsCalled_ThenSuccessResponseIsReturned() { var merchantTransactionId = "merchant trans"; var request = new ProcessPaymentRequest { MerchantTransactionId = merchantTransactionId }; var requestPaymentCommand = new RequestPaymentCommand(); var requestPaymentCommandResult = new Result(); var resultCode = "OK"; var resultDescription = "desciription"; var transactionId = Guid.NewGuid(); var getPaymentByMerchantTransactionIdQueryResponse = new GetPaymentByMerchantTransactionIdQueryResponse() { IsSuccessfull = true, ResultCode = resultCode, ResultDescription = resultDescription, TransactionId = transactionId }; _mapper.Map <RequestPaymentCommand>(request).Returns(requestPaymentCommand); _mediator.Send(requestPaymentCommand).Returns(requestPaymentCommandResult); _mediator.Send(Arg.Is <GetPaymentByMerchantTransactionIdQuery>(t => t.MerchantTransactionId.Equals(merchantTransactionId) && t.ApiKey.Equals(_apiKey))) .Returns(new Result <GetPaymentByMerchantTransactionIdQueryResponse>() { Value = getPaymentByMerchantTransactionIdQueryResponse }); var response = await _controller.ProcessPayment(request); var ProcessPaymentResponse = ((CreatedResult)response).Value as ProcessPaymentResponse; ProcessPaymentResponse.Should().BeEquivalentTo(new ProcessPaymentResponse { ResultCode = resultCode, ResultDescription = resultDescription, TransactionId = transactionId }); }