@Test public void openVenmoAppPageInGooglePlay_opensVenmoAppStoreURL() throws JSONException { Configuration configuration = new TestConfigurationBuilder().buildConfiguration(); BraintreeFragment fragment = new MockFragmentBuilder() .configuration(configuration) .build(); Venmo.openVenmoAppPageInGooglePlay(fragment); ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class); verify(fragment).startActivity(captor.capture()); assertEquals(captor.getValue().getData().toString(),"https://play.google.com/store/apps/details?id=com.venmo"); }
@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 fetchCapabilities_callsListenerWithErrorOnFailure() { RuntimeException expected = new RuntimeException("expected runtime exception"); BraintreeFragment fragment = new MockFragmentBuilder() .configuration(mConfigurationWithUnionPay) .errorResponse(expected) .build(); UnionPay.fetchCapabilities(fragment, UNIONPAY_CREDIT); verify(fragment).postCallback(expected); }
@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()); }
private BraintreeFragment getMockFragment(String authorization, Configuration configuration) { try { return new MockFragmentBuilder() .authorization(Authorization.fromString(authorization)) .configuration(configuration) .build(); } catch (InvalidArgumentException e) { fail(e.getMessage()); return null; } }
@Test public void getCheckoutRequest_containsCorrectValues() throws JSONException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_offline_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder.configuration(configuration).build(); CheckoutRequest request = PayPal.getCheckoutRequest(fragment, "https://paypal.com/?token=pairingId"); assertEquals(EnvironmentManager.MOCK, request.getEnvironment()); assertEquals("com.braintreepayments.api.braintree://onetouch/v1/cancel", request.getCancelUrl()); assertEquals("com.braintreepayments.api.braintree://onetouch/v1/success", request.getSuccessUrl()); assertEquals("paypal_client_id", request.getClientId()); assertEquals("pairingId", request.getPairingId()); }
private BraintreeFragment getMockFragment(String authorization, Configuration configuration) { try { return new MockFragmentBuilder() .authorization(Authorization.fromString(authorization)) .configuration(configuration) .build(); } catch (InvalidArgumentException e) { fail(e.getMessage()); return null; } }
@Test public void getBillingAgreementRequest_buildsWithCustomStageUrl() throws JSONException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_custom_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder.configuration(configuration).build(); Request request = PayPal.getBillingAgreementRequest(fragment, null); assertEquals("custom", request.getEnvironment()); }
@Test public void getCheckoutRequest_buildsWithLiveStageUrl() throws JSONException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_live_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder.configuration(configuration).build(); Request request = PayPal.getCheckoutRequest(fragment, null); assertEquals(EnvironmentManager.LIVE, request.getEnvironment()); }
@Test public void getCheckoutRequest_buildsWithCustomStageUrl() throws JSONException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_custom_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder.configuration(configuration).build(); Request request = PayPal.getCheckoutRequest(fragment, null); assertEquals("custom", request.getEnvironment()); }
@Test public void getRewardsBalance_sendsAnalyticsEventOnFailure() { BraintreeFragment fragment = new MockFragmentBuilder() .configuration(mConfiguration) .errorResponse(new AuthorizationException("Bad fingerprint")) .build(); AmericanExpress.getRewardsBalance(fragment, "fake-nonce", "USD"); verify(fragment).sendAnalyticsEvent("amex.rewards-balance.start"); verify(fragment).sendAnalyticsEvent("amex.rewards-balance.error"); }
@Test public void getRewardsBalance_sendsAnalyticsEventOnSuccess() { BraintreeFragment fragment = new MockFragmentBuilder() .configuration(mConfiguration) .successResponse(stringFromFixture("response/amex_rewards_balance_success.json")) .build(); AmericanExpress.getRewardsBalance(fragment, "fake-nonce", "USD"); verify(fragment).sendAnalyticsEvent("amex.rewards-balance.start"); verify(fragment).sendAnalyticsEvent("amex.rewards-balance.success"); }
@Config(sdk = 21) @Test public void tokenize_sendGraphQLAnalyticsEventWhenEnabled() { BraintreeFragment fragment = new MockFragmentBuilder() .configuration(new TestConfigurationBuilder() .graphQL() .build()) .build(); CardBuilder cardBuilder = new CardBuilder(); TokenizationClient.tokenize(fragment, cardBuilder, null); verify(fragment).sendAnalyticsEvent("card.graphql.tokenization.started"); }
@Test public void performAppSwitch_sendsAnalyticsEventWhenStarted() { Configuration configuration = getConfigurationFromFixture(); BraintreeFragment fragment = new MockFragmentBuilder() .context(VenmoInstalledContextFactory.venmoInstalledContext(true, RuntimeEnvironment.application)) .configuration(configuration) .build(); Venmo.authorizeAccount(fragment, false); verify(fragment).sendAnalyticsEvent("pay-with-venmo.selected"); verify(fragment).sendAnalyticsEvent("pay-with-venmo.app-switch.started"); }
@Test public void getAuthorizationRequest_buildsWithLiveStageUrl() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_live_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); Request request = PayPal.getAuthorizationRequest(fragment); assertEquals(EnvironmentManager.LIVE, request.getEnvironment()); }
@Test public void getAuthorizationRequest_buildsWithOfflineStageUrl() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_offline_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); Request request = PayPal.getAuthorizationRequest(fragment); assertEquals(EnvironmentManager.MOCK, request.getEnvironment()); }
@Test public void getAuthorizationRequest_buildsWithCustomStageUrl() throws JSONException, InvalidArgumentException { Configuration configuration = Configuration.fromJson(stringFromFixture("configuration/with_custom_paypal.json")); BraintreeFragment fragment = mMockFragmentBuilder .authorization(Authorization.fromString(TOKENIZATION_KEY)) .configuration(configuration) .build(); Request request = PayPal.getAuthorizationRequest(fragment); assertEquals("custom", request.getEnvironment()); }
private BraintreeFragment getSetupFragment() { String configuration = mBaseConfiguration.googlePayment(mBaseConfiguration.googlePayment() .supportedNetworks(new String[]{"visa", "mastercard", "amex", "discover"})) .withAnalytics() .build(); return new MockFragmentBuilder() .configuration(configuration) .build(); }
@Test public void tokenize_tokenizesNonCardPaymentMethodsWithRestWhenGraphQLIsEnabled() { BraintreeFragment fragment = new MockFragmentBuilder() .configuration(new TestConfigurationBuilder() .graphQL() .build()) .build(); TokenizationClient.tokenize(fragment, new PayPalAccountBuilder(), null); TokenizationClient.tokenize(fragment, new UnionPayCardBuilder(), null); TokenizationClient.tokenize(fragment, new VenmoAccountBuilder(), null); verifyZeroInteractions(fragment.getGraphQLHttpClient()); }