From 72202ce3e87588a4712ea672cc4ec506f7ff7118 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Armando=20Rodr=C3=ADguez?=
<127134616+armando-rodriguez-cko@users.noreply.github.com>
Date: Fri, 25 Apr 2025 12:09:30 +0200
Subject: [PATCH] Fix decline reason
---
.../Issuing/Transactions/Responses/Messages.cs | 2 +-
test/CheckoutSdkTest/CheckoutSdkTest.csproj | 3 +++
test/CheckoutSdkTest/JsonSerializerTest.cs | 12 ++++++++++++
.../Metadata/MetadataIntegrationTest.cs | 12 +-----------
.../Resources/IssuingTransactionsDeclinedReason.json | 12 ++++++++++++
5 files changed, 29 insertions(+), 12 deletions(-)
create mode 100644 test/CheckoutSdkTest/Resources/IssuingTransactionsDeclinedReason.json
diff --git a/src/CheckoutSdk/Issuing/Transactions/Responses/Messages.cs b/src/CheckoutSdk/Issuing/Transactions/Responses/Messages.cs
index 034fc317..c26aedef 100644
--- a/src/CheckoutSdk/Issuing/Transactions/Responses/Messages.cs
+++ b/src/CheckoutSdk/Issuing/Transactions/Responses/Messages.cs
@@ -17,7 +17,7 @@ public class Messages
public IndicatorType? Indicator { get; set; }
- public string DeclinedReason { get; set; }
+ public string DeclineReason { get; set; }
public long? BillingAmount { get; set; }
diff --git a/test/CheckoutSdkTest/CheckoutSdkTest.csproj b/test/CheckoutSdkTest/CheckoutSdkTest.csproj
index a18b7313..f080ea18 100644
--- a/test/CheckoutSdkTest/CheckoutSdkTest.csproj
+++ b/test/CheckoutSdkTest/CheckoutSdkTest.csproj
@@ -41,6 +41,9 @@
PreserveNewest
+
+ PreserveNewest
+
diff --git a/test/CheckoutSdkTest/JsonSerializerTest.cs b/test/CheckoutSdkTest/JsonSerializerTest.cs
index 6100a44c..a2a1901b 100644
--- a/test/CheckoutSdkTest/JsonSerializerTest.cs
+++ b/test/CheckoutSdkTest/JsonSerializerTest.cs
@@ -6,6 +6,7 @@
using Checkout.Issuing.Controls;
using Checkout.Issuing.Controls.Requests.Create;
using Checkout.Issuing.Controls.Responses.Create;
+using Checkout.Issuing.Transactions.Responses;
using Checkout.Payments.Contexts;
using Checkout.Payments.Response;
using Checkout.Payments.Response.Source;
@@ -119,6 +120,17 @@ public void ShouldDeserializeDefaultCardCTypeResponse()
cardDetailsResponse.Type.ShouldBe(CardType.Physical);
}
+ [Fact]
+ public void ShouldDeserializeIssuingTransactionsDeclinedReasonResponse()
+ {
+ var fileContent = GetJsonFileContent("./Resources/IssuingTransactionsDeclinedReason.json");
+ Messages messages =
+ (Messages)new JsonSerializer().Deserialize(fileContent,
+ typeof(Messages));
+ messages.ShouldNotBeNull();
+ messages.DeclineReason.ShouldBe("velocity_reached");
+ }
+
[Fact]
public void ShouldDeserializeKnetResponse()
{
diff --git a/test/CheckoutSdkTest/Metadata/MetadataIntegrationTest.cs b/test/CheckoutSdkTest/Metadata/MetadataIntegrationTest.cs
index 66231ced..74b4e470 100644
--- a/test/CheckoutSdkTest/Metadata/MetadataIntegrationTest.cs
+++ b/test/CheckoutSdkTest/Metadata/MetadataIntegrationTest.cs
@@ -25,18 +25,8 @@ private async Task ShouldRequestCardMetadataForCardNumber()
Source = new CardMetadataCardSource { Number = CardNumberConstant },
Format = CardMetadataFormatType.Basic
};
- CardMetadataResponse response = await DefaultApi.MetadataClient().RequestCardMetadata(request);
- response.ShouldNotBeNull();
- response.Bin.ShouldBe(TestCardSource.Visa.Number[..11]);
- response.Scheme.ShouldNotBeNull();
- response.CardType.ShouldBeOfType();
- response.CardCategory.ShouldBeOfType();
- response.IssuerCountry.ShouldBeOfType();
- response.IssuerCountryName.ShouldNotBeNull();
- response.ProductId.ShouldNotBeNull();
- response.ProductType.ShouldNotBeNull();
- response.HttpStatusCode.ShouldBe(200);
+ await MakeCardMetadataRequest(request);
}
[Fact(Skip = "unavailable")]
diff --git a/test/CheckoutSdkTest/Resources/IssuingTransactionsDeclinedReason.json b/test/CheckoutSdkTest/Resources/IssuingTransactionsDeclinedReason.json
new file mode 100644
index 00000000..d9125194
--- /dev/null
+++ b/test/CheckoutSdkTest/Resources/IssuingTransactionsDeclinedReason.json
@@ -0,0 +1,12 @@
+{
+ "id": "msg_abatreternbygkaeqqter6gs4de",
+ "initiator": "cardholder",
+ "type": "authorization",
+ "result": "declined",
+ "is_relayed": false,
+ "indicator": "normal_authorization",
+ "decline_reason": "velocity_reached",
+ "billing_amount": 1000056,
+ "billing_currency": "GBP",
+ "created_on": "2025-04-07T11:48:57.0000000Z"
+}
\ No newline at end of file