예제 #1
0
        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",
            });
        }
예제 #2
0
        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
     });
 }
예제 #4
0
        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
            });
        }