diff --git a/riskified-sdk/pom.xml b/riskified-sdk/pom.xml
index b6c1900..d5cc48b 100644
--- a/riskified-sdk/pom.xml
+++ b/riskified-sdk/pom.xml
@@ -4,7 +4,7 @@
4.0.0
com.riskified
riskified-sdk
- 5.0.1-rc.3
+ 5.0.1-rc.4
Riskified SDK
Riskified rest api SDK for java
https://www.riskified.com
diff --git a/riskified-sdk/src/main/java/com/riskified/adapters/AuthenticationResultAdapterFactory.java b/riskified-sdk/src/main/java/com/riskified/adapters/AuthenticationResultAdapterFactory.java
index f900274..ce1b5af 100644
--- a/riskified-sdk/src/main/java/com/riskified/adapters/AuthenticationResultAdapterFactory.java
+++ b/riskified-sdk/src/main/java/com/riskified/adapters/AuthenticationResultAdapterFactory.java
@@ -52,32 +52,28 @@ public TypeAdapter create(Gson gson, TypeToken type) {
*/
private static class AuthenticationResultTypeAdapter extends TypeAdapter {
private final TypeAdapter delegateAdapter;
- private final Map propertyMap = new HashMap<>();
+ private final Map keyConversionMap = new HashMap<>();
AuthenticationResultTypeAdapter(Gson gson, TypeAdapterFactory skipPast) {
// Get delegate adapter to avoid infinite recursion
this.delegateAdapter = gson.getDelegateAdapter(skipPast,
TypeToken.get(AuthenticationResult.class));
- this.populateMap();
+ this.populateKeyConversionMap();
}
- private void populateMap() {
- this.propertyMap.put("tranStatus", "trans_status");
- this.propertyMap.put("tran_status", "trans_status");
+ private void populateKeyConversionMap() {
+ this.keyConversionMap.put("tranStatus", "transStatus");
+ this.keyConversionMap.put("tran_status", "transStatus");
- this.propertyMap.put("tranStatusReason", "trans_status_reason");
- this.propertyMap.put("tran_status_reason", "trans_status_reason");
+ this.keyConversionMap.put("tranStatusReason", "transStatusReason");
+ this.keyConversionMap.put("tran_status_reason", "transStatusReason");
- this.propertyMap.put("threeDChallenge", "three_d_challenge");
+ this.keyConversionMap.put("three_d_challenge", "threeDChallenge");
- this.propertyMap.put("tra_exemption", "TRA_exemption");
- this.propertyMap.put("traExemption", "TRA_exemption");
-
- this.propertyMap.put("liabilityShift", "liability_shift");
-
- this.propertyMap.put("createdAt", "created_at");
+ this.keyConversionMap.put("tra_exemption", "TRA_exemption");
+ this.keyConversionMap.put("traExemption", "TRA_exemption");
}
@Override
@@ -105,8 +101,8 @@ public AuthenticationResult read(JsonReader in) throws IOException {
String key = entry.getKey();
JsonElement value = entry.getValue();
- if (this.propertyMap.containsKey(key)) {
- transformed.add(this.propertyMap.get(key), value);
+ if (this.keyConversionMap.containsKey(key)) {
+ transformed.add(this.keyConversionMap.get(key), value);
} else {
transformed.add(key, value);
}
diff --git a/riskified-sdk/src/test/java/com/riskified/adapters/AuthenticationResultAdapterTest.java b/riskified-sdk/src/test/java/com/riskified/adapters/AuthenticationResultAdapterTest.java
index 697509a..73b2a24 100644
--- a/riskified-sdk/src/test/java/com/riskified/adapters/AuthenticationResultAdapterTest.java
+++ b/riskified-sdk/src/test/java/com/riskified/adapters/AuthenticationResultAdapterTest.java
@@ -22,16 +22,15 @@ public class AuthenticationResultAdapterTest {
@Before
public void setUp() {
gson = new GsonBuilder()
- .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create();
}
@Test
public void testLegacyFormatAllOldFields() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"eci\":\"05\"," +
- "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"tran_status\":\"Y\"," +
- "\"tran_status_reason\":\"01\",\"liability_shift\":true," +
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"eci\":\"05\"," +
+ "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"tranStatus\":\"Y\"," +
+ "\"tranStatusReason\":\"01\",\"liabilityShift\":true," +
"\"three_d_challenge\":false,\"tra_exemption\":true}}";
CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
@@ -52,10 +51,10 @@ public void testLegacyFormatAllOldFields() {
@Test
public void testCurrentFormatAllNewFields() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"eci\":\"05\"," +
- "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"trans_status\":\"Y\"," +
- "\"trans_status_reason\":\"01\",\"liability_shift\":true," +
- "\"three_d_challenge\":false,\"TRA_exemption\":true}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"eci\":\"05\"," +
+ "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"transStatus\":\"Y\"," +
+ "\"transStatusReason\":\"01\",\"liabilityShift\":true," +
+ "\"threeDChallenge\":false,\"TRA_exemption\":true}}";
CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
@@ -75,9 +74,9 @@ public void testCurrentFormatAllNewFields() {
@Test
public void testMixedFormat() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"eci\":\"05\"," +
- "\"tran_status\":\"N\",\"trans_status_reason\":\"02\"," +
- "\"liability_shift\":false,\"three_d_challenge\":true,\"tra_exemption\":false}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"eci\":\"05\"," +
+ "\"tranStatus\":\"N\",\"transStatusReason\":\"02\"," +
+ "\"liabilityShift\":false,\"three_d_challenge\":true,\"tra_exemption\":false}}";
CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
@@ -96,7 +95,7 @@ public void testMixedFormat() {
@Test
public void testNullAuthenticationResult() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":null}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":null}";
CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
@@ -118,58 +117,26 @@ public void testMissingAuthenticationResult() {
@Test
public void testEnumValues() {
String json1 = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"tran_status\":\"A\"}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"tranStatus\":\"A\"}}";
CreditCardPaymentDetails details1 = gson.fromJson(json1, CreditCardPaymentDetails.class);
assertEquals("TransStatus should be A", TransStatus.A, details1.getAuthenticationResults().getTransStatus());
String json2 = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"trans_status\":\"U\"}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"transStatus\":\"U\"}}";
CreditCardPaymentDetails details2 = gson.fromJson(json2, CreditCardPaymentDetails.class);
assertEquals("TransStatus should be U", TransStatus.U, details2.getAuthenticationResults().getTransStatus());
String json3 = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"tran_status_reason\":\"03\"}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"tranStatusReason\":\"03\"}}";
CreditCardPaymentDetails details3 = gson.fromJson(json3, CreditCardPaymentDetails.class);
assertEquals("TransStatusReason should be Zero_Three", TransStatusReason.Zero_Three,
details3.getAuthenticationResults().getTransStatusReason());
}
- @Test
- public void testRoundTripSerialization() {
- AuthenticationResult result = new AuthenticationResult("05");
- result.setCavv("AAABCZIhcQAAAABZlyFxAAAAAAA=");
- result.setTransStatus(TransStatus.Y);
- result.setTransStatusReason(TransStatusReason.Zero_One);
- result.setLiabilityShift(true);
- result.set3DChallenge(false);
- result.setTRAExemption(true);
-
- CreditCardPaymentDetails details = new CreditCardPaymentDetails("123456", "Y", "M", "****1234", "Visa");
- details.setAuthenticationResult(result);
-
- String json = gson.toJson(details);
-
- assertTrue("Serialized JSON should contain trans_status", json.contains("\"trans_status\""));
- assertTrue("Serialized JSON should contain trans_status_reason", json.contains("\"trans_status_reason\""));
- assertTrue("Serialized JSON should contain TRA_exemption", json.contains("\"TRA_exemption\""));
- assertFalse("Serialized JSON should NOT contain tran_status", json.contains("\"tran_status\""));
- assertFalse("Serialized JSON should NOT contain tran_status_reason", json.contains("\"tran_status_reason\""));
- assertFalse("Serialized JSON should NOT contain tra_exemption", json.contains("\"tra_exemption\""));
-
- CreditCardPaymentDetails deserialized = gson.fromJson(json, CreditCardPaymentDetails.class);
-
- assertNotNull("Deserialized details should not be null", deserialized);
- assertNotNull("Deserialized authentication result should not be null", deserialized.getAuthenticationResults());
- AuthenticationResult deserializedResult = deserialized.getAuthenticationResults();
- assertEquals("ECI should match after round-trip", "05", deserializedResult.getEci());
- assertEquals("TransStatus should match after round-trip", TransStatus.Y, deserializedResult.getTransStatus());
- assertEquals("TransStatusReason should match after round-trip", TransStatusReason.Zero_One, deserializedResult.getTransStatusReason());
- }
-
@Test(expected = JsonParseException.class)
public void testInvalidTypeString() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":\"invalid\"}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":\"invalid\"}";
gson.fromJson(json, CreditCardPaymentDetails.class);
}
@@ -177,7 +144,7 @@ public void testInvalidTypeString() {
@Test(expected = JsonParseException.class)
public void testInvalidTypeArray() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":[{\"eci\":\"05\"}]}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":[{\"eci\":\"05\"}]}";
gson.fromJson(json, CreditCardPaymentDetails.class);
}
@@ -185,7 +152,7 @@ public void testInvalidTypeArray() {
@Test(expected = JsonParseException.class)
public void testInvalidTypeNumber() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":12345}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":12345}";
gson.fromJson(json, CreditCardPaymentDetails.class);
}
@@ -193,7 +160,7 @@ public void testInvalidTypeNumber() {
@Test
public void testEmptyObject() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{}}";
CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
@@ -205,9 +172,9 @@ public void testEmptyObject() {
@Test
public void testAllFieldsPresent() {
String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"eci\":\"05\"," +
- "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"tran_status\":\"Y\"," +
- "\"tran_status_reason\":\"01\",\"liability_shift\":true," +
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{\"eci\":\"05\"," +
+ "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"tranStatus\":\"Y\"," +
+ "\"tranStatusReason\":\"01\",\"liabilityShift\":true," +
"\"three_d_challenge\":false,\"tra_exemption\":true}}";
CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
@@ -229,8 +196,8 @@ public void testAllFieldsPresent() {
public void testBooleanFieldTypes() {
// Test with true values
String json1 = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{" +
- "\"liability_shift\":true,\"three_d_challenge\":true,\"tra_exemption\":true}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{" +
+ "\"liabilityShift\":true,\"three_d_challenge\":true,\"tra_exemption\":true}}";
CreditCardPaymentDetails details1 = gson.fromJson(json1, CreditCardPaymentDetails.class);
AuthenticationResult result1 = details1.getAuthenticationResults();
@@ -240,8 +207,8 @@ public void testBooleanFieldTypes() {
// Test with false values
String json2 = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{" +
- "\"liability_shift\":false,\"three_d_challenge\":false,\"tra_exemption\":false}}";
+ "\"credit_card_company\":\"Visa\",\"authenticationResult\":{" +
+ "\"liabilityShift\":false,\"three_d_challenge\":false,\"tra_exemption\":false}}";
CreditCardPaymentDetails details2 = gson.fromJson(json2, CreditCardPaymentDetails.class);
AuthenticationResult result2 = details2.getAuthenticationResults();
@@ -254,8 +221,8 @@ public void testBooleanFieldTypes() {
public void testPaypalPaymentDetails() {
String json = "{\"payer_email\":\"test@example.com\",\"payer_status\":\"verified\"," +
"\"payer_address_status\":\"confirmed\",\"protection_eligibility\":\"eligible\"," +
- "\"authentication_result\":{\"eci\":\"07\",\"tran_status\":\"Y\"," +
- "\"tran_status_reason\":\"01\",\"liability_shift\":true," +
+ "\"authenticationResult\":{\"eci\":\"07\",\"tranStatus\":\"Y\"," +
+ "\"tranStatusReason\":\"01\",\"liabilityShift\":true," +
"\"three_d_challenge\":false,\"tra_exemption\":true}}";
PaypalPaymentDetails details = gson.fromJson(json, PaypalPaymentDetails.class);
@@ -271,27 +238,4 @@ public void testPaypalPaymentDetails() {
assertFalse("3D challenge should be false", result.get3DChallenge());
assertTrue("TRA exemption should be true", result.getTRAExemption());
}
-
- @Test
- public void testLegacyFormatCamelCase() {
- String json = "{\"credit_card_bin\":\"123456\",\"credit_card_number\":\"****1234\"," +
- "\"credit_card_company\":\"Visa\",\"authentication_result\":{\"eci\":\"05\"," +
- "\"cavv\":\"AAABCZIhcQAAAABZlyFxAAAAAAA=\",\"tranStatus\":\"Y\"," +
- "\"tranStatusReason\":\"01\",\"liability_shift\":true," +
- "\"threeDChallenge\":false,\"traExemption\":true}}";
-
- CreditCardPaymentDetails details = gson.fromJson(json, CreditCardPaymentDetails.class);
-
- assertNotNull("Payment details should not be null", details);
- assertNotNull("Authentication result should not be null", details.getAuthenticationResults());
-
- AuthenticationResult result = details.getAuthenticationResults();
- assertEquals("ECI should match", "05", result.getEci());
- assertEquals("CAVV should match", "AAABCZIhcQAAAABZlyFxAAAAAAA=", result.getCavv());
- assertEquals("TransStatus should be Y", TransStatus.Y, result.getTransStatus());
- assertEquals("TransStatusReason should be Zero_One", TransStatusReason.Zero_One, result.getTransStatusReason());
- assertTrue("Liability shift should be true", result.getLiabilityShift());
- assertFalse("3D challenge should be false", result.get3DChallenge());
- assertTrue("TRA exemption should be true", result.getTRAExemption());
- }
}