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