public async Task SubmitFuturePayment_GivenCorrectPaymentInfo_ShouldReturnSuccess()
        {
            // Arrange
            var client = await _factory.GetAuthenticatedClientAsync(TestMerchantID, TestApiKey);

            var generatedPaymentOrderID = await GeneratePayment(client);

            var submitCommand = new SubmitFuturePaymentCommand()
            {
                CardName    = "Test CardName",
                CvvCode     = "545",
                CardNumber  = "5555555555554444",
                ExpiryMonth = 12,
                ExpiryYear  = 2024,
                PaymentID   = generatedPaymentOrderID
            };

            // Act
            var submittedResponse = await client.PostAsync($"/api/submit-future-payment", Utils.GetRequestContent(submitCommand));

            var payment = await Utils.GetResponseContent <SubmitFuturePaymentResultWm>(submittedResponse);

            // Assert
            payment.OrderID.Should().NotBeNullOrEmpty();
            payment.ResponseCode.Should().Be(PaymentProcessEnum.RequestFuturePayment.Id);
            submittedResponse.StatusCode.Should().Be(HttpStatusCode.OK);
        }
        public async Task SubmitPayment_GivenInvalidCardNumber_ShouldThrownValidationException(string cardNumber)
        {
            // Arrange
            var client = await _factory.GetAuthenticatedClientAsync(TestMerchantID, TestApiKey);

            var generatedPaymentOrderID = await GeneratePayment(client);

            var submitCommand = new SubmitFuturePaymentCommand()
            {
                CardName    = "Test CardName",
                CvvCode     = "545",
                CardNumber  = cardNumber,
                ExpiryMonth = 12,
                ExpiryYear  = 2024,
                PaymentID   = generatedPaymentOrderID
            };

            // Act
            var submittedResponse = await client.PostAsync($"/api/submit-future-payment", Utils.GetRequestContent(submitCommand));

            // Assert
            submittedResponse.StatusCode.Should().Be(HttpStatusCode.BadRequest);
        }
Esempio n. 3
0
        public async Task <IActionResult> SubmitFuturePayment([FromBody] SubmitFuturePaymentCommand model)
        {
            var result = await _mediator.Send(model);

            return(Ok(result));
        }