private static PaymentOrderCaptureRequest GetPaymentOrderCaptureRequest() { var req = new PaymentOrderCaptureRequest(new Amount(25767), new Amount(0), "Capturing payment.", "637218522761159010"); req.Transaction.OrderItems.Add(new OrderItem( "Test", "Test", OrderItemType.Other, "Capture", 1, "pcs", new Amount(25767), 0, new Amount(25767), new Amount(0))); return(req); }
public async Task WhenSendingACaptureRequest_WeDoNotCrash_AndGiveAReasonableError() { var handler = new FakeDelegatingHandler(); var client = new HttpClient(handler) { BaseAddress = GetUri() }; handler.FakeResponseList.Add(new HttpResponseMessage { StatusCode = System.Net.HttpStatusCode.OK, Content = new StringContent(PaymentOrderResponse) }); handler.FakeResponseList.Add(new HttpResponseMessage { StatusCode = System.Net.HttpStatusCode.BadRequest, Content = new StringContent(@" { ""sessionId"": ""27146bc5-269e-4b69-a25b-16308f4b481f"", ""type"": ""https://api.payex.com/psp/errordetail/forbidden"", ""title"": ""Operation not allowed"", ""status"": 403, ""instance"": ""http://api.externalintegration.payex.com/psp/paymentorders/74fa6203-e59a-43e0-0f44-08d7da0988bc/captures"", ""detail"": ""Payment check failed, description in problems node!"", ""problems"": [ { ""name"": ""Capture"", ""description"": ""Capture amount too high."" } ] } ") }); PaymentOrderCaptureRequest captureRequest = GetTestPaymentOrderCaptureRequest(); PaymentOrderRequest paymentOrderRequest = GetPaymentOrderRequest(); var sut = await new PaymentOrdersResource(client).Create(paymentOrderRequest); var result = await Assert.ThrowsAsync <HttpResponseException>(() => sut.Operations.Capture(captureRequest)); Assert.Equal(1, result.Data.Count); }
public PaymentOrderCaptureRequestDto(PaymentOrderCaptureRequest payload) { Transaction = new PaymentOrderCaptureTransactionDto(payload.Transaction); }