@Override public void failure(Exception exception) { fragment.postCallback(exception); } });
@Override public void onFailure(Exception error) { fragment.postCallback(error); } });
@Override public void failure(Exception exception) { fragment.postCallback(exception); } });
@Override public void failure(Exception exception) { fragment.postCallback(exception); fragment.sendAnalyticsEvent("union-pay.nonce-failed"); } });
@Override public void onConnectionSuspended(int i) { postCallback(new GoogleApiClientException(ErrorType.ConnectionSuspended, i)); } });
@Override public void failure(Exception exception) { fragment.sendAnalyticsEvent(paymentTypeForAnalytics() + ".local-payment.tokenize.failed"); fragment.postCallback(exception); } });
@Override public void onConnectionFailed(ConnectionResult connectionResult) { postCallback(new GoogleApiClientException(ErrorType.ConnectionFailed, connectionResult.getErrorCode())); } });
@Override public void success(String responseBody) { try { LocalPaymentResult result = LocalPaymentResult.fromJson(responseBody); fragment.sendAnalyticsEvent(paymentTypeForAnalytics() + ".local-payment.tokenize.succeeded"); fragment.postCallback(result); } catch (JSONException jsonException) { failure(jsonException); } }
@Override public void startActivityForResult(Intent intent, int requestCode) { if (!isAdded()) { postCallback(new BraintreeException("BraintreeFragment is not attached to an Activity. Please ensure it " + "is attached and try again.")); } else { super.startActivityForResult(intent, requestCode); } }
@Test public void startPayment_callsExceptionListener_localPaymentRequestIsNull() throws InvalidArgumentException, JSONException { LocalPayment.startPayment(mBraintreeFragment, null, new BraintreeResponseListener<LocalPaymentRequest>() { @Override public void onResponse(LocalPaymentRequest localPaymentRequest) { LocalPayment.approvePayment(mBraintreeFragment, localPaymentRequest); } }); verify(mBraintreeFragment).postCallback(any(BraintreeException.class)); }
@Test public void authorizeAccount_postsExceptionWhenNotEnabled() { BraintreeFragment fragment = new MockFragmentBuilder().build(); PayPal.authorizeAccount(fragment); ArgumentCaptor<Exception> captor = ArgumentCaptor.forClass(Exception.class); verify(fragment).postCallback(captor.capture()); assertTrue(captor.getValue() instanceof BraintreeException); assertEquals("PayPal is not enabled", captor.getValue().getMessage()); }
@Test public void requestBillingAgreement_postsExceptionWhenAmountIsIncluded() { BraintreeFragment fragment = mMockFragmentBuilder.build(); PayPal.requestBillingAgreement(fragment, new PayPalRequest("1")); ArgumentCaptor<Exception> captor = ArgumentCaptor.forClass(Exception.class); verify(fragment).postCallback(captor.capture()); assertTrue(captor.getValue() instanceof BraintreeException); assertEquals("There must be no amount specified for the Billing Agreement flow", captor.getValue().getMessage()); }
@Test public void postCallback_addsAllPaymentMethodNoncesToCache() throws InvalidArgumentException { BraintreeFragment fragment = BraintreeFragment.newInstance(mActivity, TOKENIZATION_KEY); assertEquals(0, fragment.getCachedPaymentMethodNonces().size()); List<PaymentMethodNonce> paymentMethodNonceList = new ArrayList<>(); paymentMethodNonceList.add(new CardNonce()); paymentMethodNonceList.add(new PayPalAccountNonce()); fragment.postCallback(paymentMethodNonceList); assertEquals(2, fragment.getCachedPaymentMethodNonces().size()); assertTrue(fragment.getCachedPaymentMethodNonces().get(0) instanceof CardNonce); assertTrue(fragment.getCachedPaymentMethodNonces().get(1) instanceof PayPalAccountNonce); }
@Test public void postCallback_setsBooleanForFetchedPaymentMethodNonces() throws InvalidArgumentException { BraintreeFragment fragment = BraintreeFragment.newInstance(mActivity, TOKENIZATION_KEY); assertFalse(fragment.hasFetchedPaymentMethodNonces()); fragment.postCallback(new ArrayList<PaymentMethodNonce>()); assertTrue(fragment.hasFetchedPaymentMethodNonces()); }
@Test public void getPaymentMethodNonces_returnsAnEmptyListIfEmpty() { BraintreeFragment fragment = new MockFragmentBuilder() .successResponse(stringFromFixture("payment_methods/get_payment_methods_empty_response.json")) .build(); PaymentMethod.getPaymentMethodNonces(fragment); ArgumentCaptor<List<PaymentMethodNonce>> captor = ArgumentCaptor.forClass((Class) List.class); verify(fragment).postCallback(captor.capture()); assertEquals(0, captor.getValue().size()); }
@Test public void getPaymentMethodNonces_throwsAnError() { BraintreeFragment fragment = new MockFragmentBuilder() .errorResponse(new UnexpectedException("Error")) .build(); PaymentMethod.getPaymentMethodNonces(fragment); ArgumentCaptor<Exception> captor = ArgumentCaptor.forClass(Exception.class); verify(fragment).postCallback(captor.capture()); assertTrue(captor.getValue() instanceof UnexpectedException); }
@Test public void startPayment_callsExceptionListener_whenApprovalUrlIsSet() throws InvalidArgumentException, JSONException { LocalPaymentRequest request = getIdealLocalPaymentRequest() .approvalUrl("aUrl"); LocalPayment.startPayment(mBraintreeFragment, request, new BraintreeResponseListener<LocalPaymentRequest>() { @Override public void onResponse(LocalPaymentRequest localPaymentRequest) { LocalPayment.approvePayment(mBraintreeFragment, localPaymentRequest); } }); verify(mBraintreeFragment).postCallback(any(BraintreeException.class)); }
@Test public void authorizeAccount_postsExceptionWhenNotInstalled() { Configuration configuration = getConfigurationFromFixture(); BraintreeFragment fragment = new MockFragmentBuilder() .configuration(configuration) .build(); Venmo.authorizeAccount(fragment, false); ArgumentCaptor<AppSwitchNotAvailableException> captor = ArgumentCaptor.forClass(AppSwitchNotAvailableException.class); verify(fragment).postCallback(captor.capture()); assertEquals("Venmo is not installed", captor.getValue().getMessage()); }
@Test public void authorizeAccount_postsExceptionWhenNotEnabled() throws JSONException { Configuration configuration = new TestConfigurationBuilder().buildConfiguration(); BraintreeFragment fragment = new MockFragmentBuilder() .configuration(configuration) .build(); Venmo.authorizeAccount(fragment, false); ArgumentCaptor<AppSwitchNotAvailableException> captor = ArgumentCaptor.forClass(AppSwitchNotAvailableException.class); verify(fragment).postCallback(captor.capture()); assertEquals("Venmo is not enabled", captor.getValue().getMessage()); }
@Test public void enroll_failsIfUnionPayIsDisabled() throws JSONException { UnionPayCardBuilder unionPayCardBuilder = new UnionPayCardBuilder() .cardNumber("some-card-number"); BraintreeFragment fragment = new MockFragmentBuilder() .configuration(Configuration.fromJson(stringFromFixture("configuration/configuration.json"))) .build(); UnionPay.enroll(fragment, unionPayCardBuilder); ArgumentCaptor<ConfigurationException> argumentCaptor = ArgumentCaptor.forClass(ConfigurationException.class); verify(fragment).postCallback(argumentCaptor.capture()); assertEquals("UnionPay is not enabled", argumentCaptor.getValue().getMessage()); }