From 90ff5070725027053af20b5b237416bedd7ee5fc Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Mon, 10 Jun 2019 15:45:51 +0300 Subject: [PATCH 1/3] HW-53463, HW-53464. Updated createTransferMethod(Wire Account) and tests --- .../TransferMethodRepositoryImpl.java | 5 +- .../TransferMethodRepositoryImplTest.java | 79 ++++++++++++++++++- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java index 7d6b77063..7095378ce 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java @@ -21,6 +21,7 @@ import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.BANK_ACCOUNT; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.BANK_CARD; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.PAYPAL_ACCOUNT; +import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT; import android.os.Handler; @@ -52,6 +53,7 @@ public void createTransferMethod(@NonNull final HyperwalletTransferMethod transf LoadTransferMethodCallback callback) { switch (transferMethod.getField(TYPE)) { case BANK_ACCOUNT: + case WIRE_ACCOUNT: createBankAccount(transferMethod, callback); break; case BANK_CARD: @@ -90,7 +92,8 @@ public void deactivateTransferMethod(@NonNull final HyperwalletTransferMethod tr @NonNull final DeactivateTransferMethodCallback callback) { switch (transferMethod.getField(TYPE)) { case BANK_ACCOUNT: - deactivateBankAccount(transferMethod, callback); + case WIRE_ACCOUNT: + deactivateBankAccount(transferMethod, callback); break; case BANK_CARD: deactivateBankCardAccount(transferMethod, callback); diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java b/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java index 6135c42b2..1b60895c9 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java @@ -33,7 +33,7 @@ import com.hyperwallet.android.model.transfermethod.HyperwalletBankAccount; import com.hyperwallet.android.model.transfermethod.HyperwalletBankCard; import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod; -import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethodPagination; +import com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethodQueryParam; import com.hyperwallet.android.model.transfermethod.PayPalAccount; import org.junit.Before; @@ -423,7 +423,7 @@ public Object answer(InvocationOnMock invocation) { listener.onSuccess(pageList); return listener; } - }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodPagination) any(), + }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodQueryParam) any(), ArgumentMatchers.>>any()); // test @@ -448,7 +448,7 @@ public Object answer(InvocationOnMock invocation) { listener.onSuccess(null); return listener; } - }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodPagination) any(), + }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodQueryParam)any(), ArgumentMatchers.>>any()); // test @@ -475,7 +475,7 @@ public Object answer(InvocationOnMock invocation) { listener.onFailure(new HyperwalletException(errors)); return listener; } - }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodPagination) any(), + }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodQueryParam) any(), ArgumentMatchers.>>any()); // test @@ -558,4 +558,75 @@ public Object answer(InvocationOnMock invocation) { // assert assertThat(mErrorsArgumentCaptor.getValue().getErrors(), hasItem(returnedError)); } + + @Test + public void testCreateTransferMethod_wireAccountWithSuccess() { + HyperwalletBankAccount bankAccount = new HyperwalletBankAccount + .Builder("USA", "USD", "1411413412") + .transferMethodType(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT) + .build(); + + doAnswer(new Answer() { + @Override + public Object answer(InvocationOnMock invocation) { + HyperwalletListener listener = (HyperwalletListener) invocation.getArguments()[1]; + HyperwalletBankAccount returnedBank = new HyperwalletBankAccount + .Builder("USA", "USD", "1411413412") + .bankName("Mock Bank Response") + .transferMethodType(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT) + .build(); + listener.onSuccess(returnedBank); + return listener; + } + }).when(mHyperwallet).createBankAccount(any(HyperwalletBankAccount.class), + ArgumentMatchers.>any()); + + // test + mTransferMethodRepository.createTransferMethod(bankAccount, mLoadTransferMethodCallback); + + verify(mLoadTransferMethodCallback).onTransferMethodLoaded(mBankAccountArgumentCaptor.capture()); + verify(mLoadTransferMethodCallback, never()).onError(any(HyperwalletErrors.class)); + + HyperwalletBankAccount transferMethod = mBankAccountArgumentCaptor.getValue(); + assertThat(transferMethod, is(notNullValue())); + assertThat(transferMethod.getField(TYPE), is(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT)); + assertThat(transferMethod.getField(BANK_NAME), is("Mock Bank Response")); + assertThat(transferMethod.getField(TRANSFER_METHOD_COUNTRY), is("USA")); + assertThat(transferMethod.getField(TRANSFER_METHOD_CURRENCY), is("USD")); + assertThat(transferMethod.getField(BANK_ACCOUNT_ID), is("1411413412")); + } + + @Test + public void testDeactivateTransferMethod_wireAccountWithSuccess() { + HyperwalletBankAccount bankAccount = new HyperwalletBankAccount + .Builder("CA", "CAD", "3423423432") + .transferMethodType(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT) + .token("trm-123") + .build(); + bankAccount.setField(STATUS, HyperwalletStatusTransition.StatusDefinition.ACTIVATED); + doAnswer(new Answer() { + @Override + public Object answer(InvocationOnMock invocation) { + HyperwalletStatusTransition statusTransition = new HyperwalletStatusTransition(DE_ACTIVATED); + statusTransition.setNotes("Closing this account."); + HyperwalletListener listener = (HyperwalletListener) invocation.getArguments()[2]; + listener.onSuccess(statusTransition); + return listener; + } + }).when(mHyperwallet).deactivateBankAccount(anyString(), ArgumentMatchers.isNull(), + ArgumentMatchers.>any()); + + // test + mTransferMethodRepository.deactivateTransferMethod(bankAccount, mDeactivateTransferMethodCallback); + + verify(mDeactivateTransferMethodCallback).onTransferMethodDeactivated( + mStatusTransitionArgumentCaptor.capture()); + verify(mDeactivateTransferMethodCallback, never()).onError(any(HyperwalletErrors.class)); + + HyperwalletStatusTransition statusTransition = mStatusTransitionArgumentCaptor.getValue(); + assertThat(statusTransition, is(notNullValue())); + assertThat(statusTransition.getTransition(), is(DE_ACTIVATED)); + assertThat(statusTransition.getNotes(), is("Closing this account.")); + } + } \ No newline at end of file From fed06859ed5a3b4b05a50beb6f4c07758768ce59 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Mon, 10 Jun 2019 15:50:47 +0300 Subject: [PATCH 2/3] HW-53463, HW-53464. Fixed tab --- .../android/ui/repository/TransferMethodRepositoryImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java b/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java index 7095378ce..f11e7cc85 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImpl.java @@ -93,7 +93,7 @@ public void deactivateTransferMethod(@NonNull final HyperwalletTransferMethod tr switch (transferMethod.getField(TYPE)) { case BANK_ACCOUNT: case WIRE_ACCOUNT: - deactivateBankAccount(transferMethod, callback); + deactivateBankAccount(transferMethod, callback); break; case BANK_CARD: deactivateBankCardAccount(transferMethod, callback); From 2753510375e1e5640f055346b1ad19e6bb1244c5 Mon Sep 17 00:00:00 2001 From: azakrevska-epam Date: Tue, 11 Jun 2019 11:58:58 +0300 Subject: [PATCH 3/3] HW-53463, HW-53464. Added processing for AddTransferMethodFragment --- .../ui/transfermethod/AddTransferMethodFragment.java | 8 ++++++++ .../ui/repository/TransferMethodRepositoryImplTest.java | 8 ++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java index 2fb5203bc..53e290aa9 100644 --- a/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java +++ b/ui/src/main/java/com/hyperwallet/android/ui/transfermethod/AddTransferMethodFragment.java @@ -23,6 +23,7 @@ import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.BANK_ACCOUNT; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.BANK_CARD; import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.PAYPAL_ACCOUNT; +import static com.hyperwallet.android.model.transfermethod.HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT; import android.app.Activity; import android.content.Context; @@ -509,6 +510,13 @@ private void triggerSubmit() { .transferMethodCurrency(mCurrency) .build(); break; + case WIRE_ACCOUNT: + mTransferMethod = new HyperwalletBankAccount.Builder() + .transferMethodCountry(mCountry) + .transferMethodCurrency(mCurrency) + .transferMethodType(WIRE_ACCOUNT) + .build(); + break; default: mTransferMethod = new HyperwalletTransferMethod(); mTransferMethod.setField(TRANSFER_METHOD_COUNTRY, mCountry); diff --git a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java b/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java index 1b60895c9..59c3d3ee9 100644 --- a/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java +++ b/ui/src/test/java/com/hyperwallet/android/ui/repository/TransferMethodRepositoryImplTest.java @@ -448,7 +448,7 @@ public Object answer(InvocationOnMock invocation) { listener.onSuccess(null); return listener; } - }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodQueryParam)any(), + }).when(mHyperwallet).listTransferMethods((HyperwalletTransferMethodQueryParam) any(), ArgumentMatchers.>>any()); // test @@ -562,7 +562,7 @@ public Object answer(InvocationOnMock invocation) { @Test public void testCreateTransferMethod_wireAccountWithSuccess() { HyperwalletBankAccount bankAccount = new HyperwalletBankAccount - .Builder("USA", "USD", "1411413412") + .Builder("US", "USD", "1411413412") .transferMethodType(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT) .build(); @@ -571,7 +571,7 @@ public void testCreateTransferMethod_wireAccountWithSuccess() { public Object answer(InvocationOnMock invocation) { HyperwalletListener listener = (HyperwalletListener) invocation.getArguments()[1]; HyperwalletBankAccount returnedBank = new HyperwalletBankAccount - .Builder("USA", "USD", "1411413412") + .Builder("US", "USD", "1411413412") .bankName("Mock Bank Response") .transferMethodType(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT) .build(); @@ -591,7 +591,7 @@ public Object answer(InvocationOnMock invocation) { assertThat(transferMethod, is(notNullValue())); assertThat(transferMethod.getField(TYPE), is(HyperwalletTransferMethod.TransferMethodTypes.WIRE_ACCOUNT)); assertThat(transferMethod.getField(BANK_NAME), is("Mock Bank Response")); - assertThat(transferMethod.getField(TRANSFER_METHOD_COUNTRY), is("USA")); + assertThat(transferMethod.getField(TRANSFER_METHOD_COUNTRY), is("US")); assertThat(transferMethod.getField(TRANSFER_METHOD_CURRENCY), is("USD")); assertThat(transferMethod.getField(BANK_ACCOUNT_ID), is("1411413412")); }