diff --git a/CHANGELOG.md b/CHANGELOG.md index f34803ac..4a021fdf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ Changelog ========= +[1.0.0-beta09](https://github.com/hyperwallet/hyperwallet-android-sdk/releases/tag/1.0.0-beta09) +------------------- +* Enhancement for Paper Check Transfer method + [1.0.0-beta08](https://github.com/hyperwallet/hyperwallet-android-sdk/releases/tag/1.0.0-beta08) ------------------- * Added Paper Check as a Transfer method diff --git a/README.md b/README.md index a93e9078..1d8d54f3 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ We also provide an out-of-the-box [Hyperwallet Android UI SDK](https://github.c To install Hyperwallet Core SDK, you just need to add the dependency into your build.gradle file in Android Studio (or Gradle). For example: ```bash -api 'com.hyperwallet.android:core-sdk:1.0.0-beta08' +api 'com.hyperwallet.android:core-sdk:1.0.0-beta09' ``` ### Proguard @@ -183,7 +183,6 @@ final VenmoAccount venmoAccount = new VenmoAccount .build(); Hyperwallet.getDefault().updateVenmoAccount(venmoAccount, mListener); -// Code to handle successful response or error // onSuccess: response (VenmoAccount in this case) will contain information about the user’s Venmo account // onFailure: error (ErrorType) will contain Errors containing information about what caused the failure of Venmo account updating ``` @@ -191,7 +190,6 @@ Hyperwallet.getDefault().updateVenmoAccount(venmoAccount, mListener); ### Deactivate Venmo Account ```java Hyperwallet.getDefault().deactivateVenmoAccount("trm-fake-token", "deactivate Venmo account", mListener); -// Code to handle successful response or error // onSuccess: response (StatusTransition in this case) will contain information about the status transition // onFailure: error (ErrorType) will contain Errors containing information about what caused the failure of Venmo account deactivation ``` @@ -225,13 +223,13 @@ Hyperwallet.getDefault().getPaperCheck("trm-fake-token", listener); ### Update Paper Check ```java -final PaperCheck paperCheck = new PaperCheck - .Builder() - .token("trm-fake-token") - .build(); + final PaperCheck paperCheck = new PaperCheck + .Builder() + .token("trm-fake-token") + .shippingMethod("EXPEDITED") + .build(); Hyperwallet.getDefault().updatePaperCheck(paperCheck, listener); -// Code to handle successful response or error // onSuccess: response (PaperCheck in this case) will contain information about the user’s PaperCheck // onFailure: error (ErrorType) will contain Errors containing information about what caused the failure of PaperCheck updating ``` @@ -239,7 +237,6 @@ Hyperwallet.getDefault().updatePaperCheck(paperCheck, listener); ### Deactivate Paper Check ```java Hyperwallet.getDefault().deactivatePaperCheck("trm-fake-token", "deactivate Paper Check", listener); -// Code to handle successful response or error // onSuccess: response (StatusTransition in this case) will contain information about the status transition // onFailure: error (ErrorType) will contain Errors containing information about what caused the failure of Paper Check deactivation ``` diff --git a/build.gradle b/build.gradle index 46980bae..2b7bd7e6 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ allprojects { mavenLocal() } - project.version = "1.0.0-beta08" + project.version = "1.0.0-beta09" } task clean(type: Delete) { diff --git a/core/src/main/java/com/hyperwallet/android/model/transfermethod/PaperCheck.java b/core/src/main/java/com/hyperwallet/android/model/transfermethod/PaperCheck.java index 7d529c81..eb3682bf 100644 --- a/core/src/main/java/com/hyperwallet/android/model/transfermethod/PaperCheck.java +++ b/core/src/main/java/com/hyperwallet/android/model/transfermethod/PaperCheck.java @@ -89,6 +89,39 @@ public PaperCheck.Builder transferMethodCurrency(@NonNull String transferMethodC return this; } + public PaperCheck.Builder shippingMethod(@NonNull final String shippingMethod) { + mFields.put(TransferMethodFields.SHIPPING_METHOD, shippingMethod); + return this; + } + + public PaperCheck.Builder addressLine1(@NonNull final String addressLine1) { + mFields.put(TransferMethodFields.ADDRESS_LINE_1, addressLine1); + return this; + } + + public PaperCheck.Builder addressLine2(@NonNull final String addressLine2) { + mFields.put(TransferMethodFields.ADDRESS_LINE_2, addressLine2); + return this; + } + + public PaperCheck.Builder city(@NonNull final String city) { + mFields.put(TransferMethodFields.CITY, city); + return this; + } + public PaperCheck.Builder postalCode(@NonNull final String postalCode) { + mFields.put(TransferMethodFields.POSTAL_CODE, postalCode); + return this; + } + + public PaperCheck.Builder stateProvince(@NonNull final String stateProvince) { + mFields.put(TransferMethodFields.STATE_PROVINCE, stateProvince); + return this; + } + public PaperCheck.Builder country(@NonNull final String country) { + mFields.put(TransferMethodFields.COUNTRY, country); + return this; + } + public PaperCheck build() { return new PaperCheck(mFields); } diff --git a/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java b/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java index 803f9289..b2f5bea8 100644 --- a/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java +++ b/core/src/test/java/com/hyperwallet/android/RestTransactionBuilderTest.java @@ -67,7 +67,7 @@ public void testBuild_withRequiredParametersOnly() throws JSONException { assertThat(headers.get("Content-Type"), is("application/json")); assertThat(headers.get("User-Agent"), is("HyperwalletSDK/Android/" + BuildConfig.VERSION_NAME + "; App: HyperwalletSDK; Android: " + Build.VERSION.RELEASE)); - assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta08")); + assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta09")); assertThat(headers.get("X-Sdk-Type"), is("android")); assertThat(headers.get("X-Sdk-ContextId"), is(notNullValue())); assertThat(headers.get("X-Sdk-ContextId"), is(contextId)); @@ -104,7 +104,7 @@ public void testBuild_withJsonModelOptionalParameter() throws JSONException { assertThat(headers.get("Content-Type"), is("application/json")); assertThat(headers.get("User-Agent"), is("HyperwalletSDK/Android/" + BuildConfig.VERSION_NAME + "; App: HyperwalletSDK; Android: " + Build.VERSION.RELEASE)); - assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta08")); + assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta09")); assertThat(headers.get("X-Sdk-Type"), is("android")); assertThat(headers.get("X-Sdk-ContextId"), is(notNullValue())); assertThat(headers.get("X-Sdk-ContextId"), is(contextId)); @@ -140,7 +140,7 @@ public void testBuild_withQueryModelOptionalParameter() throws JSONException { assertThat(headers.get("Content-Type"), is("application/json")); assertThat(headers.get("User-Agent"), is("HyperwalletSDK/Android/" + BuildConfig.VERSION_NAME + "; App: HyperwalletSDK; Android: " + Build.VERSION.RELEASE)); - assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta08")); + assertThat(headers.get("X-Sdk-Version"), is("1.0.0-beta09")); assertThat(headers.get("X-Sdk-Type"), is("android")); assertThat(headers.get("X-Sdk-ContextId"), is(notNullValue())); assertThat(headers.get("X-Sdk-ContextId"), is(contextId)); diff --git a/core/src/test/java/com/hyperwallet/android/transfermethod/UpdatePaperCheckTest.java b/core/src/test/java/com/hyperwallet/android/transfermethod/UpdatePaperCheckTest.java index f6a5908c..a4a3a483 100644 --- a/core/src/test/java/com/hyperwallet/android/transfermethod/UpdatePaperCheckTest.java +++ b/core/src/test/java/com/hyperwallet/android/transfermethod/UpdatePaperCheckTest.java @@ -27,8 +27,14 @@ import okhttp3.mockwebserver.RecordedRequest; +import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.ADDRESS_LINE_1; +import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.ADDRESS_LINE_2; +import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.CITY; +import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.COUNTRY; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.CREATED_ON; +import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.POSTAL_CODE; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.SHIPPING_METHOD; +import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.STATE_PROVINCE; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.STATUS; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.TOKEN; import static com.hyperwallet.android.model.transfermethod.TransferMethod.TransferMethodFields.TRANSFER_METHOD_COUNTRY; @@ -70,9 +76,23 @@ public void testUpdatePaperCheck_withSuccess() throws InterruptedException { final PaperCheck paperCheck = new PaperCheck .Builder() .token("trm-fake-token") + .shippingMethod("EXPEDITED") + .city("Victoria") + .postalCode("12345") + .addressLine1("123 Other Street") + .addressLine2("1234 AddressLineTwo St") + .stateProvince("CA") + .country("US") .build(); assertThat(paperCheck.getField(TOKEN), is("trm-fake-token")); + assertThat(paperCheck.getField(SHIPPING_METHOD), is("EXPEDITED")); + assertThat(paperCheck.getField(CITY), is("Victoria")); + assertThat(paperCheck.getField(POSTAL_CODE), is("12345")); + assertThat(paperCheck.getField(ADDRESS_LINE_1),is("123 Other Street")); + assertThat(paperCheck.getField(ADDRESS_LINE_2),is("1234 AddressLineTwo St")); + assertThat(paperCheck.getField(STATE_PROVINCE),is("CA")); + assertThat(paperCheck.getField(COUNTRY),is("US")); Hyperwallet.getDefault().updatePaperCheck(paperCheck, mListener); mAwait.await(50, TimeUnit.MILLISECONDS); @@ -95,6 +115,12 @@ public void testUpdatePaperCheck_withSuccess() throws InterruptedException { assertThat(paperCheckResponse.getField(TRANSFER_METHOD_COUNTRY), is("US")); assertThat(paperCheckResponse.getField(CREATED_ON), is("2020-11-29T15:13:55")); assertThat(paperCheckResponse.getField(SHIPPING_METHOD), is("EXPEDITED")); + assertThat(paperCheckResponse.getField(CITY), is("Victoria")); + assertThat(paperCheckResponse.getField(POSTAL_CODE), is("12345")); + assertThat(paperCheckResponse.getField(ADDRESS_LINE_1),is("123 Other Street")); + assertThat(paperCheckResponse.getField(ADDRESS_LINE_2),is("1234 AddressLineTwo St")); + assertThat(paperCheckResponse.getField(STATE_PROVINCE),is("CA")); + assertThat(paperCheckResponse.getField(COUNTRY),is("US")); } @Test @@ -107,6 +133,7 @@ public void testUpdatePaperCheck_withValidationError() throws InterruptedExcepti final PaperCheck paperCheck = new PaperCheck .Builder() .token("trm-fake-token") + .postalCode("1234") .build(); assertThat(paperCheck.getField(TOKEN), @@ -134,7 +161,7 @@ public void testUpdatePaperCheck_withValidationError() throws InterruptedExcepti Error error1 = errors.getErrors().get(0); assertThat(error1.getCode(), is("CONSTRAINT_VIOLATIONS")); - assertThat(error1.getFieldName(), is("phoneNumber")); - assertThat(error1.getMessage(), is("The number you provided is not valid!")); + assertThat(error1.getFieldName(), is("postalCode")); + assertThat(error1.getMessage(), is("Invalid Postal Code")); } } diff --git a/core/src/test/resources/errors/paper_check_update_error_response.json b/core/src/test/resources/errors/paper_check_update_error_response.json index 7a75d000..f492c670 100644 --- a/core/src/test/resources/errors/paper_check_update_error_response.json +++ b/core/src/test/resources/errors/paper_check_update_error_response.json @@ -1,9 +1,10 @@ { "errors": [ { - "message": "The number you provided is not valid!", - "fieldName": "phoneNumber", + "message": "Invalid Postal Code", + "fieldName": "postalCode", "code": "CONSTRAINT_VIOLATIONS" } + ] } \ No newline at end of file