From 8fcee17e3455c99040c4386a3ffbc9c49d6e6aa3 Mon Sep 17 00:00:00 2001 From: Piotr Chowaniec Date: Tue, 1 Oct 2024 08:42:57 +0200 Subject: [PATCH] Adds fee total amount to TransactionSummary --- .../com/global/api/entities/TransactionSummary.java | 2 ++ src/main/java/com/global/api/mapping/GpApiMapping.java | 6 +++++- .../com/global/api/tests/gpapi/GpApiMappingTest.java | 10 +++++++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/global/api/entities/TransactionSummary.java b/src/main/java/com/global/api/entities/TransactionSummary.java index 783ccd2e..2082bb90 100644 --- a/src/main/java/com/global/api/entities/TransactionSummary.java +++ b/src/main/java/com/global/api/entities/TransactionSummary.java @@ -156,4 +156,6 @@ public class TransactionSummary { private String transactionTime; private Card cardDetails; private InstallmentData installmentData; + + private BigDecimal feeTotalAmount; } diff --git a/src/main/java/com/global/api/mapping/GpApiMapping.java b/src/main/java/com/global/api/mapping/GpApiMapping.java index 57b113ba..b16b20a5 100644 --- a/src/main/java/com/global/api/mapping/GpApiMapping.java +++ b/src/main/java/com/global/api/mapping/GpApiMapping.java @@ -19,7 +19,6 @@ import com.global.api.utils.EnumUtils; import com.global.api.utils.JsonDoc; import com.global.api.utils.StringUtils; -import com.google.gson.JsonElement; import lombok.var; import org.joda.time.DateTime; @@ -525,6 +524,11 @@ public static TransactionSummary mapTransactionSummary(JsonDoc doc) throws Gatew summary.setInstallmentData(setInstallmentData(installment)); } + if(doc.has("fees")) { + JsonDoc fees = doc.get("fees"); + summary.setFeeTotalAmount(fees.getDecimal("total_amount_decimal")); + } + summary.setFraudManagementResponse(doc.has("risk_assessment") ? mapFraudManagementReport(doc.get("risk_assessment")) : null); return summary; diff --git a/src/test/java/com/global/api/tests/gpapi/GpApiMappingTest.java b/src/test/java/com/global/api/tests/gpapi/GpApiMappingTest.java index bbace7df..f83e56b8 100644 --- a/src/test/java/com/global/api/tests/gpapi/GpApiMappingTest.java +++ b/src/test/java/com/global/api/tests/gpapi/GpApiMappingTest.java @@ -17,6 +17,10 @@ import com.global.api.utils.StringUtils; import lombok.var; import org.joda.time.DateTime; +import org.junit.Test; + +import java.math.BigDecimal; + import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; import static com.global.api.gateways.GpApiConnector.parseGpApiDate; @@ -33,7 +37,7 @@ public GpApiMappingTest() throws ApiException { @Test public void MapTransactionSummaryTest() throws GatewayException { // Arrange - String rawJson = "{\"id\":\"TRN_TvY1QFXxQKtaFSjNaLnDVdo3PZ7ivz\",\"time_created\":\"2020-06-05T03:08:20.896Z\",\"time_last_updated\":\"\",\"status\":\"PREAUTHORIZED\",\"type\":\"SALE\",\"merchant_id\":\"MER_c4c0df11039c48a9b63701adeaa296c3\",\"merchant_name\":\"Sandbox_merchant_2\",\"account_id\":\"TRA_6716058969854a48b33347043ff8225f\",\"account_name\":\"Transaction_Processing\",\"channel\":\"CNP\",\"amount\":\"10000\",\"currency\":\"CAD\",\"reference\":\"My-TRANS-184398775\",\"description\":\"41e7877b-da90-4c5f-befe-7f024b96311e\",\"order_reference\":\"\",\"time_created_reference\":\"\",\"batch_id\":\"\",\"initiator\":\"\",\"country\":\"\",\"language\":\"\",\"ip_address\":\"97.107.232.5\",\"site_reference\":\"\",\"payment_method\":{\"result\":\"00\",\"message\":\"SUCCESS\",\"entry_mode\":\"ECOM\",\"name\":\"NAME NOT PROVIDED\",\"card\":{\"funding\":\"CREDIT\",\"brand\":\"VISA\",\"authcode\":\"12345\",\"brand_reference\":\"TQ76bJf7qzkC30U0\",\"masked_number_first6last4\":\"411111XXXXXX1111\",\"cvv_indicator\":\"PRESENT\",\"cvv_result\":\"MATCHED\",\"avs_address_result\":\"MATCHED\",\"avs_postal_code_result\":\"MATCHED\"}},\"action_create_id\":\"ACT_TvY1QFXxQKtaFSjNaLnDVdo3PZ7ivz\",\"parent_resource_id\":\"TRN_TvY1QFXxQKtaFSjNaLnDVdo3PZ7ivz\",\"action\":{\"id\":\"ACT_kLkU0qND7wyuW0Br76ZNyAnlPTjHsb\",\"type\":\"TRANSACTION_SINGLE\",\"time_created\":\"2020-11-24T15:43:43.990Z\",\"result_code\":\"SUCCESS\",\"app_id\":\"JF2GQpeCrOivkBGsTRiqkpkdKp67Gxi0\",\"app_name\":\"test_app\"}}"; + String rawJson = "{\"id\":\"TRN_TvY1QFXxQKtaFSjNaLnDVdo3PZ7ivz\",\"time_created\":\"2020-06-05T03:08:20.896Z\",\"time_last_updated\":\"\",\"status\":\"PREAUTHORIZED\",\"type\":\"SALE\",\"merchant_id\":\"MER_c4c0df11039c48a9b63701adeaa296c3\",\"merchant_name\":\"Sandbox_merchant_2\",\"account_id\":\"TRA_6716058969854a48b33347043ff8225f\",\"account_name\":\"Transaction_Processing\",\"channel\":\"CNP\",\"amount\":\"10000\",\"currency\":\"CAD\",\"reference\":\"My-TRANS-184398775\",\"description\":\"41e7877b-da90-4c5f-befe-7f024b96311e\",\"order_reference\":\"\",\"time_created_reference\":\"\",\"batch_id\":\"\",\"initiator\":\"\",\"country\":\"\",\"language\":\"\",\"ip_address\":\"97.107.232.5\",\"site_reference\":\"\",\"payment_method\":{\"result\":\"00\",\"message\":\"SUCCESS\",\"entry_mode\":\"ECOM\",\"name\":\"NAME NOT PROVIDED\",\"card\":{\"funding\":\"CREDIT\",\"brand\":\"VISA\",\"authcode\":\"12345\",\"brand_reference\":\"TQ76bJf7qzkC30U0\",\"masked_number_first6last4\":\"411111XXXXXX1111\",\"cvv_indicator\":\"PRESENT\",\"cvv_result\":\"MATCHED\",\"avs_address_result\":\"MATCHED\",\"avs_postal_code_result\":\"MATCHED\"}},\"action_create_id\":\"ACT_TvY1QFXxQKtaFSjNaLnDVdo3PZ7ivz\",\"parent_resource_id\":\"TRN_TvY1QFXxQKtaFSjNaLnDVdo3PZ7ivz\",\"fees\":{\"total_amount_decimal\":\"123.12\"},\"action\":{\"id\":\"ACT_kLkU0qND7wyuW0Br76ZNyAnlPTjHsb\",\"type\":\"TRANSACTION_SINGLE\",\"time_created\":\"2020-11-24T15:43:43.990Z\",\"result_code\":\"SUCCESS\",\"app_id\":\"JF2GQpeCrOivkBGsTRiqkpkdKp67Gxi0\",\"app_name\":\"test_app\"}}"; JsonDoc doc = JsonDoc.parse(rawJson); @@ -69,6 +73,10 @@ public void MapTransactionSummaryTest() throws GatewayException { assertEquals(card.getString("masked_number_first6last4"), transaction.getMaskedCardNumber()); } } + if (doc.has("fees")) { + assertEquals(doc.get("fees").getDecimal("total_amount_decimal"), transaction.getFeeTotalAmount()); + assertEquals(new BigDecimal("123.12"), transaction.getFeeTotalAmount()); + } } @Test