### Question:
Stripe { public void setDefaultPublishableKey(@NonNull @Size(min = 1) String publishableKey) { validateKey(publishableKey); mDefaultPublishableKey = publishableKey; } Stripe(@NonNull Context context);  Stripe(@NonNull Context context, String publishableKey); void createBankAccountToken(
            @NonNull final BankAccount bankAccount,
            @NonNull final TokenCallback callback); void createBankAccountToken(
            @NonNull final BankAccount bankAccount,
            @NonNull @Size(min = 1) final String publishableKey,
            @Nullable final Executor executor,
            @NonNull final TokenCallback callback); void createPiiToken(
            @NonNull final String personalId,
            @NonNull final TokenCallback callback); void createPiiToken(
            @NonNull final String personalId,
            @NonNull @Size(min = 1) final String publishableKey,
            @Nullable final Executor executor,
            @NonNull final TokenCallback callback); Token createBankAccountTokenSynchronous(final BankAccount bankAccount); Token createBankAccountTokenSynchronous(
                final BankAccount bankAccount,
                String publishableKey); void createSource(@NonNull SourceParams sourceParams, @NonNull SourceCallback callback); void createSource(
            @NonNull SourceParams sourceParams,
            @NonNull SourceCallback callback,
            @Nullable String publishableKey,
            @Nullable Executor executor); void createToken(@NonNull final Card card, @NonNull final TokenCallback callback); void createToken(
            @NonNull final Card card,
            @NonNull final String publishableKey,
            @NonNull final TokenCallback callback); void createToken(
            @NonNull final Card card,
            @NonNull final Executor executor,
            @NonNull final TokenCallback callback); void createToken(
            @NonNull final Card card,
            @NonNull @Size(min = 1) final String publishableKey,
            @Nullable final Executor executor,
            @NonNull final TokenCallback callback); @Nullable Source createSourceSynchronous(@NonNull SourceParams params); Source createSourceSynchronous(
            @NonNull SourceParams params,
            @Nullable String publishableKey); Token createTokenSynchronous(final Card card); Token createTokenSynchronous(final Card card, String publishableKey); Token createPiiTokenSynchronous(@NonNull String personalId); Token createPiiTokenSynchronous(@NonNull String personalId, String publishableKey); void logEventSynchronous(
            @NonNull List<String> productUsageTokens,
            @NonNull StripePaymentSource paymentSource); Source retrieveSourceSynchronous(
            @NonNull @Size(min = 1) String sourceId,
            @NonNull @Size(min = 1) String clientSecret); Source retrieveSourceSynchronous(
            @NonNull @Size(min = 1) String sourceId,
            @NonNull @Size(min = 1) String clientSecret,
            @Nullable String publishableKey); void setDefaultPublishableKey(@NonNull @Size(min = 1) String publishableKey); void setStripeAccount(@NonNull @Size(min = 1) String stripeAccount);  }### Answer:
@Test(expected = IllegalArgumentException.class) public void setDefaultPublishableKeyShouldFailWhenNull() throws AuthenticationException { Stripe stripe = new Stripe(mContext); stripe.setDefaultPublishableKey(null); }
@Test(expected = IllegalArgumentException.class) public void setDefaultPublishableKeyShouldFailWhenEmpty() throws AuthenticationException { Stripe stripe = new Stripe(mContext); stripe.setDefaultPublishableKey(""); }
@Test(expected = IllegalArgumentException.class) public void setDefaultPublishableKeyShouldFailWithSecretKey() throws AuthenticationException { Stripe stripe = new Stripe(mContext); stripe.setDefaultPublishableKey(DEFAULT_SECRET_KEY); }