diff --git a/src/main/java/com/unzer/payment/BasePayment.java b/src/main/java/com/unzer/payment/BasePayment.java index 41c7cad0..8225c42f 100644 --- a/src/main/java/com/unzer/payment/BasePayment.java +++ b/src/main/java/com/unzer/payment/BasePayment.java @@ -225,6 +225,6 @@ public void setPaypageId(String paypageId) { } public enum State { - PENDING, COMPLETED, CANCELED, PARTLY, PAYMENT_REVIEW, CHARGEBACK + PENDING, COMPLETED, CANCELED, PARTLY, PAYMENT_REVIEW, CHARGEBACK, CREATE } } diff --git a/src/main/java/com/unzer/payment/communication/mapper/ApiToSdkConverter.java b/src/main/java/com/unzer/payment/communication/mapper/ApiToSdkConverter.java index 3ea59c58..02166ee8 100644 --- a/src/main/java/com/unzer/payment/communication/mapper/ApiToSdkConverter.java +++ b/src/main/java/com/unzer/payment/communication/mapper/ApiToSdkConverter.java @@ -1,7 +1,36 @@ package com.unzer.payment.communication.mapper; -import com.unzer.payment.*; -import com.unzer.payment.communication.json.*; +import com.unzer.payment.Authorization; +import com.unzer.payment.BasePayment; +import com.unzer.payment.BaseTransaction; +import com.unzer.payment.Cancel; +import com.unzer.payment.CommercialSector; +import com.unzer.payment.CompanyInfo; +import com.unzer.payment.Customer; +import com.unzer.payment.Linkpay; +import com.unzer.payment.PaylaterInstallmentPlans; +import com.unzer.payment.Payout; +import com.unzer.payment.Paypage; +import com.unzer.payment.Processing; +import com.unzer.payment.Recurring; +import com.unzer.payment.Shipment; +import com.unzer.payment.communication.json.ApiAuthorization; +import com.unzer.payment.communication.json.ApiCancel; +import com.unzer.payment.communication.json.ApiCustomer; +import com.unzer.payment.communication.json.ApiIdObject; +import com.unzer.payment.communication.json.ApiInitPayment; +import com.unzer.payment.communication.json.ApiLinkpay; +import com.unzer.payment.communication.json.ApiObject; +import com.unzer.payment.communication.json.ApiPayment; +import com.unzer.payment.communication.json.ApiPayout; +import com.unzer.payment.communication.json.ApiPaypage; +import com.unzer.payment.communication.json.ApiRecurring; +import com.unzer.payment.communication.json.ApiShipment; +import com.unzer.payment.communication.json.JsonCompanyInfo; +import com.unzer.payment.communication.json.JsonProcessing; +import com.unzer.payment.communication.json.JsonResources; +import com.unzer.payment.communication.json.JsonState; +import com.unzer.payment.communication.json.TransactionStatus; import com.unzer.payment.communication.json.paylater.ApiInstallmentPlans; import com.unzer.payment.marketplace.MarketplaceCancel; import com.unzer.payment.paymenttypes.PaymentType; @@ -480,7 +509,7 @@ private BasePayment.State getPaymentState(JsonState src) { return null; } - if (src.getId() >= 0 && src.getId() <= 5) { + if (src.getId() >= 0 && src.getId() <= BasePayment.State.values().length - 1) { return BasePayment.State.values()[src.getId()]; } diff --git a/src/test/java/com/unzer/payment/business/PaymentTest.java b/src/test/java/com/unzer/payment/business/PaymentTest.java index d575d46b..1b170b08 100644 --- a/src/test/java/com/unzer/payment/business/PaymentTest.java +++ b/src/test/java/com/unzer/payment/business/PaymentTest.java @@ -2,12 +2,14 @@ import com.unzer.payment.Authorization; +import com.unzer.payment.BasePayment; import com.unzer.payment.BaseTransaction; import com.unzer.payment.Cancel; import com.unzer.payment.Charge; import com.unzer.payment.Customer; import com.unzer.payment.Payment; import com.unzer.payment.PaymentException; +import com.unzer.payment.Paypage; import com.unzer.payment.Unzer; import com.unzer.payment.communication.HttpCommunicationException; import com.unzer.payment.paymenttypes.Card; @@ -37,6 +39,26 @@ void testFetchPaymentWithAuthorization() { assertNotNull(payment.getPaymentState()); } + @Test + void testFetchPaymentMapsCreateState() { + // given + Paypage paypageRequest = new Paypage(); + paypageRequest.setAmount(new BigDecimal("500.5")); + paypageRequest.setCurrency(Currency.getInstance("EUR")); + paypageRequest.setAction("charge"); + paypageRequest.setReturnUrl(unsafeUrl("https://www.unzer.com/")); + + Paypage paypage = getUnzer().paypage(paypageRequest); + + // when + Payment payment = getUnzer().fetchPayment(paypage.getPaymentId()); + + // then + assertNotNull(payment); + assertNotNull(payment.getPaymentState()); + assertEquals(BasePayment.State.CREATE, payment.getPaymentState()); + } + @Test void testFullChargeAfterAuthorize() { Authorization authorize = getUnzer().authorize(