diff --git a/CHANGES.MD b/CHANGES.MD index 5eed857c..62b5f706 100644 --- a/CHANGES.MD +++ b/CHANGES.MD @@ -1,3 +1,8 @@ +3.5.0 (2021-08-24) +================= +- V206 adds fintech fields. +- Add support for `$ach` complex field to `$payment_method` complex field + 3.4.0 (2020-05-05) ================= - Add support for `$decline_category` field to `$transaction` event diff --git a/README.md b/README.md index c98de53a..21d6fdd2 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![CircleCI](https://circleci.com/gh/SiftScience/sift-java.svg?style=svg)](https://circleci.com/gh/SiftScience/sift-java) -The official Java bindings for the latest version (v205) of the [Sift API](https://sift.com/developers/docs/java/apis-overview). +The official Java bindings for the latest version (v206) of the [Sift API](https://sift.com/developers/docs/java/apis-overview). ## Requirements Java 1.7 or later. @@ -13,13 +13,13 @@ Java 1.7 or later. com.siftscience sift-java - 3.4.0 + 3.5.0 ``` ### Gradle ``` dependencies { - compile 'com.siftscience:sift-java:3.4.0' + compile 'com.siftscience:sift-java:3.5.0' } ``` ### Other diff --git a/build.gradle b/build.gradle index 169cc895..f0b37a6b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,10 @@ - apply plugin: 'java' apply plugin: 'maven-publish' apply plugin: 'signing' apply plugin: 'java-library-distribution' group = 'com.siftscience' -version = '3.4.0' +version = '3.5.0' repositories { mavenCentral() diff --git a/src/main/java/com/siftscience/EventRequest.java b/src/main/java/com/siftscience/EventRequest.java index 0e5f5cfe..ddbc8ad3 100644 --- a/src/main/java/com/siftscience/EventRequest.java +++ b/src/main/java/com/siftscience/EventRequest.java @@ -32,7 +32,7 @@ EventResponse buildResponse(Response response, FieldSet requestFields) @Override protected HttpUrl path(HttpUrl baseUrl) { HttpUrl.Builder builder = baseUrl.newBuilder() - .addPathSegment("v205").addPathSegment("events"); + .addPathSegment("v206").addPathSegment("events"); if (isWorkflowStatus) { builder.addQueryParameter("return_workflow_status", "true"); diff --git a/src/main/java/com/siftscience/LabelRequest.java b/src/main/java/com/siftscience/LabelRequest.java index bc44e562..82572c37 100644 --- a/src/main/java/com/siftscience/LabelRequest.java +++ b/src/main/java/com/siftscience/LabelRequest.java @@ -19,7 +19,7 @@ public class LabelRequest extends SiftRequest { @Override protected HttpUrl path(HttpUrl baseUrl) { return baseUrl.newBuilder() - .addPathSegment("v205") + .addPathSegment("v206") .addPathSegment("users") .addPathSegment(((LabelFieldSet)fieldSet).getUserId()) .addPathSegment("labels") diff --git a/src/main/java/com/siftscience/ScoreRequest.java b/src/main/java/com/siftscience/ScoreRequest.java index 1c716358..1517e347 100644 --- a/src/main/java/com/siftscience/ScoreRequest.java +++ b/src/main/java/com/siftscience/ScoreRequest.java @@ -38,7 +38,7 @@ ScoreResponse buildResponse(Response response, FieldSet requestFields) @Override protected HttpUrl path(HttpUrl baseUrl) { ScoreFieldSet scoreFieldSet = (ScoreFieldSet)fieldSet; - HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v205"); + HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v206"); builder.addPathSegment("score").addPathSegment(scoreFieldSet.getUserId()) .addQueryParameter("api_key", scoreFieldSet.getApiKey()); if (scoreFieldSet.getAbuseTypes() != null && scoreFieldSet.getAbuseTypes().size() > 0) { diff --git a/src/main/java/com/siftscience/UnlabelRequest.java b/src/main/java/com/siftscience/UnlabelRequest.java index bf273ce1..42c2cfda 100644 --- a/src/main/java/com/siftscience/UnlabelRequest.java +++ b/src/main/java/com/siftscience/UnlabelRequest.java @@ -23,7 +23,7 @@ public class UnlabelRequest extends SiftRequest { protected HttpUrl path(HttpUrl baseUrl) { UnlabelFieldSet unlabelFields = (UnlabelFieldSet)fieldSet; HttpUrl.Builder builder = baseUrl.newBuilder() - .addPathSegment("v205") + .addPathSegment("v206") .addPathSegment("users") .addPathSegment(unlabelFields.getUserId()) .addPathSegment("labels"); diff --git a/src/main/java/com/siftscience/UserScoreRequest.java b/src/main/java/com/siftscience/UserScoreRequest.java index 8ef5f60d..4c754259 100644 --- a/src/main/java/com/siftscience/UserScoreRequest.java +++ b/src/main/java/com/siftscience/UserScoreRequest.java @@ -48,7 +48,7 @@ EntityScoreResponse buildResponse(Response response, FieldSet requestFields) @Override protected HttpUrl path(HttpUrl baseUrl) { UserScoreFieldSet userScoreFieldSet = (UserScoreFieldSet)fieldSet; - HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v205"); + HttpUrl.Builder builder = baseUrl.newBuilder().addPathSegment("v206"); builder.addPathSegment("users") .addPathSegment(userScoreFieldSet.getUserId()) .addPathSegment("score") diff --git a/src/main/java/com/siftscience/model/Ach.java b/src/main/java/com/siftscience/model/Ach.java new file mode 100644 index 00000000..35edcfb5 --- /dev/null +++ b/src/main/java/com/siftscience/model/Ach.java @@ -0,0 +1,48 @@ +package com.siftscience.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class Ach { + @Expose @SerializedName("$ach_type") private String achType; + @Expose @SerializedName("$routing_number") private String routingNumber; + @Expose @SerializedName("$account_number") private String accountNumber; + @Expose @SerializedName("$account_holder_name") private String accountHolderName; + + public String getAchType() { + return achType; + } + + public Ach setAchType(String achType) { + this.achType = achType; + return this; + } + + public String getRoutingNumber() { + return routingNumber; + } + + public Ach setRoutingNumber(String routingNumber) { + this.routingNumber = routingNumber; + return this; + } + + public String getAccountNumber() { + return accountNumber; + } + + public Ach setAccountNumber(String accountNumber) { + this.accountNumber = accountNumber; + return this; + } + + public String getAccountHolderName() { + return accountHolderName; + } + + public Ach setAccountHolderName(String accountHolderName) { + this.accountHolderName = accountHolderName; + return this; + } + +} diff --git a/src/main/java/com/siftscience/model/PaymentMethod.java b/src/main/java/com/siftscience/model/PaymentMethod.java index e95e87eb..17859ec3 100644 --- a/src/main/java/com/siftscience/model/PaymentMethod.java +++ b/src/main/java/com/siftscience/model/PaymentMethod.java @@ -26,6 +26,8 @@ public class PaymentMethod { @Expose @SerializedName("$stripe_address_zip_check") private String stripeAddressZipCheck; @Expose @SerializedName("$stripe_funding") private String stripeFunding; @Expose @SerializedName("$stripe_brand") private String stripeBrand; + @Expose @SerializedName("$ach") private Ach ach; + @Expose @SerializedName("$sepa") private Sepa sepa; public String getPaymentType() { return paymentType; @@ -215,4 +217,22 @@ public PaymentMethod setStripeBrand(String stripeBrand) { this.stripeBrand = stripeBrand; return this; } + + public Ach getAch() { + return ach; + } + + public PaymentMethod setAch(Ach ach) { + this.ach = ach; + return this; + } + + public Sepa getSepa() { + return sepa; + } + + public PaymentMethod setSepa(Sepa sepa) { + this.sepa = sepa; + return this; + } } diff --git a/src/main/java/com/siftscience/model/Sepa.java b/src/main/java/com/siftscience/model/Sepa.java new file mode 100644 index 00000000..5639b40e --- /dev/null +++ b/src/main/java/com/siftscience/model/Sepa.java @@ -0,0 +1,58 @@ +package com.siftscience.model; + +import com.google.gson.annotations.Expose; +import com.google.gson.annotations.SerializedName; + +public class Sepa { + + @Expose @SerializedName("$sepa_type") private String sepaType; + @Expose @SerializedName("$account_holder_name") private String accountHolderName; + @Expose @SerializedName("$shortened_iban") private String shortenedIban; + @Expose @SerializedName("$bic") private String bic; + @Expose @SerializedName("$mandate_id") private String mandateId; + + public String getSepaType() { + return sepaType; + } + + public Sepa setSepaType(String sepaType) { + this.sepaType = sepaType; + return this; + } + + public String getAccountHolderName() { + return accountHolderName; + } + + public Sepa setAccountHolderName(String accountHolderName) { + this.accountHolderName = accountHolderName; + return this; + } + + public String getShortenedIban() { + return shortenedIban; + } + + public Sepa setShortenedIban(String iban) { + this.shortenedIban = iban; + return this; + } + + public String getBic() { + return bic; + } + + public Sepa setBic(String bic) { + this.bic = bic; + return this; + } + + public String getMandateId() { + return mandateId; + } + + public Sepa setMandateId(String mandateId) { + this.mandateId = mandateId; + return this; + } +} diff --git a/src/main/java/com/siftscience/model/TransactionFieldSet.java b/src/main/java/com/siftscience/model/TransactionFieldSet.java index 9951411e..8bedcbb1 100644 --- a/src/main/java/com/siftscience/model/TransactionFieldSet.java +++ b/src/main/java/com/siftscience/model/TransactionFieldSet.java @@ -18,6 +18,13 @@ public class TransactionFieldSet extends BaseAppBrowserSiteBrandFieldSet sampleTags1() { List tags = new ArrayList<>(); tags.add("Popcorn"); @@ -222,4 +239,13 @@ static List sampleCategories() { categories.add("2 Bedrooms"); return categories; } + + static Sepa sampleSepa() { + return new Sepa() + .setSepaType("$instant_credit") + .setAccountHolderName("John Doe") + .setShortenedIban("FR76300060") + .setBic("testtest1") + .setMandateId("mandate_id"); + } } diff --git a/src/test/java/com/siftscience/TransactionEventTest.java b/src/test/java/com/siftscience/TransactionEventTest.java index 4b05234b..6ae77b33 100644 --- a/src/test/java/com/siftscience/TransactionEventTest.java +++ b/src/test/java/com/siftscience/TransactionEventTest.java @@ -128,7 +128,209 @@ public void testTransactionEvent() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); + JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + + // Verify the response. + Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); + Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); + JSONAssert.assertEquals(response.getBody().readUtf8(), + siftResponse.getBody().toJson(), true); + server.shutdown(); + } + + @Test + public void testTransactionEventWithSepaPaymentMethod() throws Exception { + String expectedRequestBody = "{\n" + + " \"$type\" : \"$transaction\",\n" + + " \"$api_key\" : \"YOUR_API_KEY\",\n" + + " \"$user_id\" : \"billy_jones_301\",\n" + + " \"$amount\" : 506790000,\n" + + " \"$currency_code\" : \"USD\",\n" + + "\n" + + " \"$user_email\" : \"bill@gmail.com\",\n" + + " \"$transaction_type\" : \"$sale\",\n" + + " \"$transaction_status\" : \"$success\",\n" + + " \"$order_id\" : \"ORDER-123124124\",\n" + + " \"$transaction_id\" : \"719637215\",\n" + + "\n" + + " \"$payment_method\" : {\n" + + " \"$sepa\" : {\n" + + " \"$sepa_type\" : \"$instant_credit\",\n" + + " \"$account_holder_name\" : \"John Doe\",\n" + + " \"$shortened_iban\" : \"FR76300060\",\n" + + " \"$bic\" : \"testtest1\",\n" + + " \"$mandate_id\" : \"mandate_id\",\n" + + " }\n" + + " },\n" + + "}"; + + // Start a new mock server and enqueue a mock response. + MockWebServer server = new MockWebServer(); + MockResponse response = new MockResponse(); + response.setResponseCode(HTTP_OK); + response.setBody("{\n" + + " \"status\" : 0,\n" + + " \"error_message\" : \"OK\",\n" + + " \"time\" : 1327604222,\n" + + " \"request\" : \"" + TestUtils.unescapeJson(expectedRequestBody) + "\"\n" + + "}"); + server.enqueue(response); + server.start(); + + // Create a new client and link it to the mock server. + SiftClient client = new SiftClient("YOUR_API_KEY", "YOUR_ACCOUNT_ID", + new OkHttpClient.Builder() + .addInterceptor(OkHttpUtils.urlRewritingInterceptor(server)) + .build()); + + // Build and execute the request against the mock server. + EventRequest request = client.buildRequest(new TransactionFieldSet() + .setUserId("billy_jones_301") + .setAmount(506790000L) + .setCurrencyCode("USD") + .setUserEmail("bill@gmail.com") + .setTransactionType("$sale") + .setTransactionStatus("$success") + .setOrderId("ORDER-123124124") + .setTransactionId("719637215") + .setPaymentMethod(TestUtils.samplePaymentMethodWithSepa())); + EventResponse siftResponse = request.send(); + + // Verify the request. + RecordedRequest request1 = server.takeRequest(); + Assert.assertEquals("POST", request1.getMethod()); + Assert.assertEquals("/v206/events", request1.getPath()); + JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + + // Verify the response. + Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); + Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); + JSONAssert.assertEquals(response.getBody().readUtf8(), + siftResponse.getBody().toJson(), true); + + server.shutdown(); + } + + @Test + public void testTransactionEventWithAch() throws Exception { + String expectedRequestBody = "{\n" + + " \"$type\" : \"$transaction\",\n" + + " \"$api_key\" : \"YOUR_API_KEY\",\n" + + " \"$user_id\" : \"billy_jones_301\",\n" + + " \"$amount\" : 506790000,\n" + + " \"$currency_code\" : \"USD\",\n" + + "\n" + + " \"$user_email\" : \"bill@gmail.com\",\n" + + " \"$transaction_type\" : \"$sale\",\n" + + " \"$transaction_status\" : \"$failure\",\n" + + " \"$order_id\" : \"ORDER-123124124\",\n" + + " \"$transaction_id\" : \"719637215\",\n" + + " \"$decline_category\" : \"$lost\",\n" + + " \"$site_country\": \"US\",\n" + + " \"$site_domain\": \"sift.com\",\n" + + " \"$brand_name\": \"sift\",\n" + + " \"$ordered_from\" : {\n" + + " \"$store_id\" : \"123\",\n" + + " \"$store_address\" : {\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$country\" : \"US\",\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6040\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " }\n" + + " },\n" + + "\n" + + " \"$billing_address\" : {\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6041\",\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$country\" : \"US\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " },\n" + + " \"$payment_method\" : {\n" + + " \"$ach\" : {\n" + + " \"$ach_type\" : \"$credit\",\n" + + " \"$routing_number\" : \"072403005\",\n" + + " \"$account_number\" : \"12345\",\n" + + " \"$account_holder_name\" : \"Jane Doe\"\n" + + " }\n" + + " },\n" + + " \"$shipping_address\" : {\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6041\",\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$country\" : \"US\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " },\n" + + " \"$session_id\" : \"gigtleqddo84l8cm15qe4il\",\n" + + "\n" + + " \"$seller_user_id\" : \"slinkys_emporium\",\n" + + "\n" + + " \"digital_wallet\" : \"apple_pay\",\n" + + " \"coupon_code\" : \"dollarMadness\",\n" + + " \"shipping_choice\" : \"FedEx Ground Courier\",\n" + + " \"is_first_time_buyer\" : false\n" + + "}"; + + // Start a new mock server and enqueue a mock response. + MockWebServer server = new MockWebServer(); + MockResponse response = new MockResponse(); + response.setResponseCode(HTTP_OK); + response.setBody("{\n" + + " \"status\" : 0,\n" + + " \"error_message\" : \"OK\",\n" + + " \"time\" : 1327604222,\n" + + " \"request\" : \"" + TestUtils.unescapeJson(expectedRequestBody) + "\"\n" + + "}"); + server.enqueue(response); + server.start(); + + // Create a new client and link it to the mock server. + SiftClient client = new SiftClient("YOUR_API_KEY", "YOUR_ACCOUNT_ID", + new OkHttpClient.Builder() + .addInterceptor(OkHttpUtils.urlRewritingInterceptor(server)) + .build()); + + // Build and execute the request against the mock server. + EventRequest request = client.buildRequest(new TransactionFieldSet() + .setUserId("billy_jones_301") + .setAmount(506790000L) + .setCurrencyCode("USD") + .setUserEmail("bill@gmail.com") + .setTransactionType("$sale") + .setTransactionStatus("$failure") + .setDeclineCategory("$lost") + .setSiteCountry("US") + .setSiteDomain("sift.com") + .setBrandName("sift") + .setOrderId("ORDER-123124124") + .setTransactionId("719637215") + .setBillingAddress(TestUtils.sampleAddress2()) + .setPaymentMethod(TestUtils.samplePaymentMethod3()) + .setShippingAddress(TestUtils.sampleAddress2()) + .setOrderedFrom(TestUtils.sampleOrderedFrom()) + .setSessionId("gigtleqddo84l8cm15qe4il") + .setSellerUserId("slinkys_emporium") + .setCustomField("digital_wallet", "apple_pay") + .setCustomField("coupon_code", "dollarMadness") + .setCustomField("shipping_choice", "FedEx Ground Courier") + .setCustomField("is_first_time_buyer", false)); + EventResponse siftResponse = request.send(); + + // Verify the request. + RecordedRequest request1 = server.takeRequest(); + Assert.assertEquals("POST", request1.getMethod()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. @@ -136,11 +338,111 @@ public void testTransactionEvent() throws Exception { Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); JSONAssert.assertEquals(response.getBody().readUtf8(), siftResponse.getBody().toJson(), true); -// EventResponseBody ff = siftResponse.getBody(); -// siftResponse.getRequestBody() -// siftResponse.getBody().getApiErrorMessage(); -// siftResponse.getApiErrorMessage(); server.shutdown(); } + + @Test + public void testTransactionEventWithSenderReceiverAddressesAnd3dsFields() throws Exception { + String expectedRequestBody = "{\n" + + " \"$type\" : \"$transaction\",\n" + + " \"$api_key\" : \"YOUR_API_KEY\",\n" + + " \"$user_id\" : \"billy_jones_301\",\n" + + " \"$amount\" : 506790000,\n" + + " \"$currency_code\" : \"USD\",\n" + + "\n" + + " \"$user_email\" : \"bill@gmail.com\",\n" + + " \"$transaction_type\" : \"$sale\",\n" + + " \"$transaction_status\" : \"$failure\",\n" + + " \"$order_id\" : \"ORDER-123124124\",\n" + + " \"$transaction_id\" : \"719637215\",\n" + + " \"$decline_category\" : \"$lost\",\n" + + " \"$status_3ds\" : \"$authentication_successful\",\n" + + " \"$triggered_3ds\" : true,\n" + + " \"$processor_3ds_requested\" : false,\n" + + " \"$merchant_initiated_transaction\" : true,\n" + + " \"$sender_address\" : {\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6041\",\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$country\" : \"US\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " },\n" + + " \"$receiver_address\" : {\n" + + " \"$name\" : \"Bill Jones\",\n" + + " \"$phone\" : \"1-415-555-6041\",\n" + + " \"$address_1\" : \"2100 Main Street\",\n" + + " \"$address_2\" : \"Apt 3B\",\n" + + " \"$city\" : \"New London\",\n" + + " \"$region\" : \"New Hampshire\",\n" + + " \"$country\" : \"US\",\n" + + " \"$zipcode\" : \"03257\"\n" + + " },\n" + + " \"$payment_method\" : {\n" + + " \"$ach\" : {\n" + + " \"$ach_type\" : \"$credit\",\n" + + " \"$routing_number\" : \"072403005\",\n" + + " \"$account_number\" : \"12345\",\n" + + " \"$account_holder_name\" : \"Jane Doe\"\n" + + " }\n" + + " },\n" + + "}"; + + // Start a new mock server and enqueue a mock response. + MockWebServer server = new MockWebServer(); + MockResponse response = new MockResponse(); + response.setResponseCode(HTTP_OK); + response.setBody("{\n" + + " \"status\" : 0,\n" + + " \"error_message\" : \"OK\",\n" + + " \"time\" : 1327604222,\n" + + " \"request\" : \"" + TestUtils.unescapeJson(expectedRequestBody) + "\"\n" + + "}"); + server.enqueue(response); + server.start(); + + // Create a new client and link it to the mock server. + SiftClient client = new SiftClient("YOUR_API_KEY", "YOUR_ACCOUNT_ID", + new OkHttpClient.Builder() + .addInterceptor(OkHttpUtils.urlRewritingInterceptor(server)) + .build()); + + // Build and execute the request against the mock server. + EventRequest request = client.buildRequest(new TransactionFieldSet() + .setUserId("billy_jones_301") + .setAmount(506790000L) + .setCurrencyCode("USD") + .setUserEmail("bill@gmail.com") + .setTransactionType("$sale") + .setTransactionStatus("$failure") + .setDeclineCategory("$lost") + .setOrderId("ORDER-123124124") + .setTransactionId("719637215") + .setStatus3Ds("$authentication_successful") + .setTriggered3Ds(true) + .setProcessor3DsRequested(false) + .setMerchantInitiatedTransaction(true) + .setSenderAddress(TestUtils.sampleAddress2()) + .setReceiverAddress(TestUtils.sampleAddress2()) + .setPaymentMethod(TestUtils.samplePaymentMethod3())); + EventResponse siftResponse = request.send(); + + // Verify the request. + RecordedRequest request1 = server.takeRequest(); + Assert.assertEquals("POST", request1.getMethod()); + Assert.assertEquals("/v206/events", request1.getPath()); + JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); + + // Verify the response. + Assert.assertEquals(HTTP_OK, siftResponse.getHttpStatusCode()); + Assert.assertEquals(0, (int) siftResponse.getBody().getStatus()); + JSONAssert.assertEquals(response.getBody().readUtf8(), + siftResponse.getBody().toJson(), true); + + server.shutdown(); + } + } diff --git a/src/test/java/com/siftscience/UnlabelTest.java b/src/test/java/com/siftscience/UnlabelTest.java index c3831ec2..661f3004 100644 --- a/src/test/java/com/siftscience/UnlabelTest.java +++ b/src/test/java/com/siftscience/UnlabelTest.java @@ -36,7 +36,7 @@ public void testUnlabel() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("DELETE", request1.getMethod()); - Assert.assertEquals("/v205/users/billy_jones_301/labels?api_key=YOUR_API_KEY" + + Assert.assertEquals("/v206/users/billy_jones_301/labels?api_key=YOUR_API_KEY" + "&abuse_type=payment_abuse", request1.getPath()); // Verify the response. @@ -70,7 +70,7 @@ public void testUnlabelAllAbuseTypes() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("DELETE", request1.getMethod()); - Assert.assertEquals("/v205/users/billy_jones_301/labels?api_key=YOUR_API_KEY", + Assert.assertEquals("/v206/users/billy_jones_301/labels?api_key=YOUR_API_KEY", request1.getPath()); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateAccountEventTest.java b/src/test/java/com/siftscience/UpdateAccountEventTest.java index 41f7ea2c..19291f9e 100644 --- a/src/test/java/com/siftscience/UpdateAccountEventTest.java +++ b/src/test/java/com/siftscience/UpdateAccountEventTest.java @@ -106,7 +106,7 @@ public void testUpdateAccount() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java b/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java index 4850abed..1cf18c57 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventWithBookingsTest.java @@ -205,7 +205,7 @@ public void testUpdateOrderEvent() throws JSONException, IOException, Interrupte // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java b/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java index 3e5299c4..c2403d84 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventWithItemsTest.java @@ -174,7 +174,7 @@ public void testUpdateOrderEvent() throws JSONException, IOException, Interrupte // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java b/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java index 5f52ded0..6ea1c167 100644 --- a/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java +++ b/src/test/java/com/siftscience/UpdateOrderEventWithSiteBrandOrderedFromFieldsTest.java @@ -127,7 +127,7 @@ public void testUpdateOrderEvent() throws JSONException, IOException, // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UpdatePasswordEventTest.java b/src/test/java/com/siftscience/UpdatePasswordEventTest.java index 71bbeff0..26cd4a7d 100644 --- a/src/test/java/com/siftscience/UpdatePasswordEventTest.java +++ b/src/test/java/com/siftscience/UpdatePasswordEventTest.java @@ -76,7 +76,7 @@ public void testUpdatePassword() throws Exception { //Verify the request RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/UserScoreTest.java b/src/test/java/com/siftscience/UserScoreTest.java index 6a7bfebb..349f457a 100644 --- a/src/test/java/com/siftscience/UserScoreTest.java +++ b/src/test/java/com/siftscience/UserScoreTest.java @@ -80,7 +80,7 @@ public void testGetUserScoreAPI() throws IOException, InterruptedException, .setRescoreUser(false); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY"); + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY"); } @Test @@ -96,7 +96,7 @@ public void testGetUserScoreAPIWithAbuseTypes() throws IOException, InterruptedE .setRescoreUser(false); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + "abuse_types=payment_abuse,promotion_abuse"); } @@ -109,7 +109,7 @@ public void testRescoreUserScoreAPI() throws IOException, InterruptedException, .setRescoreUser(true); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY"); + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY"); } @Test @@ -125,7 +125,7 @@ public void testRescoreUserScoreAPIWithAbuseTypes() throws IOException, Interrup .setRescoreUser(true); testUserScore(userScoreFieldSet, - "/v205/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + + "/v206/users/billy_jones_301/score?api_key=YOUR_API_KEY&" + "abuse_types=payment_abuse,promotion_abuse"); } diff --git a/src/test/java/com/siftscience/VerificationEventTest.java b/src/test/java/com/siftscience/VerificationEventTest.java index 5b07b9f1..9b7d949d 100644 --- a/src/test/java/com/siftscience/VerificationEventTest.java +++ b/src/test/java/com/siftscience/VerificationEventTest.java @@ -87,7 +87,7 @@ public void testVerification() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events", request1.getPath()); + Assert.assertEquals("/v206/events", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true); // Verify the response. diff --git a/src/test/java/com/siftscience/WorkflowStatusTest.java b/src/test/java/com/siftscience/WorkflowStatusTest.java index d7e0ea5e..f836fb58 100644 --- a/src/test/java/com/siftscience/WorkflowStatusTest.java +++ b/src/test/java/com/siftscience/WorkflowStatusTest.java @@ -136,7 +136,7 @@ public void testSynchronousWorkflowStatus() throws Exception { // Verify the request. RecordedRequest request1 = server.takeRequest(); Assert.assertEquals("POST", request1.getMethod()); - Assert.assertEquals("/v205/events?return_workflow_status=true&abuse_types=" + + Assert.assertEquals("/v206/events?return_workflow_status=true&abuse_types=" + "payment_abuse,promotion_abuse", request1.getPath()); JSONAssert.assertEquals(expectedRequestBody, request.getFieldSet().toJson(), true);