### Question:
IabHelper { public void startSetup(final OnIabSetupFinishedListener listener) { checkNotDisposedAndThrow(); if (mSetupDone) throw new IllegalStateException("IAB helper is already set up."); logDebug("Starting in-app billing setup."); if (!mContext.getPackageManager().queryIntentServices(BIND_BILLING_SERVICE, 0).isEmpty()) { mServiceConn = new BillingServiceConnection(listener); if (!mContext.bindService(BIND_BILLING_SERVICE, mServiceConn, Context.BIND_AUTO_CREATE)) { logWarn("Could not bind to service"); } } else { mSetupDone = true; if (listener != null) { listener.onIabSetupFinished(new IabResult(BILLING_UNAVAILABLE)); } } } IabHelper(Context ctx, String base64PublicKey);  IabHelper(Context ctx, SignatureValidator validator); void startSetup(final OnIabSetupFinishedListener listener); void dispose(); void launchPurchaseFlow(final Activity activity,
                                   final String sku,
                                   final ItemType itemType,
                                   final int requestCode,
                                   final OnIabPurchaseFinishedListener listener,
                                   final String developerPayload); boolean handleActivityResult(int requestCode, int intentResultCode, Intent intent); Inventory queryInventory(boolean querySkuDetails,
                                    List<String> moreItemSkus,
                                    List<String> moreSubsSkus); void queryInventoryAsync(final boolean querySkuDetails,
                                    final List<String> moreSkus,
                                    final List<String> moreSubSkus,
                                    final QueryInventoryFinishedListener listener); void queryInventoryAsync(final QueryInventoryFinishedListener listener); void consume(Purchase purchase); void consumeAsync(Purchase purchase, OnConsumeFinishedListener listener); void consumeAsync(List<Purchase> purchases, OnConsumeMultiFinishedListener listener); boolean subscriptionsSupported(); void enableDebugLogging(boolean enable, String tag); void enableDebugLogging(boolean enable);  }### Answer:
@Test public void shouldStartSetup_SuccessCase() throws Exception { registerServiceWithPackageManager(); helper.startSetup(setupListener); verify(setupListener).onIabSetupFinished(new IabResult(OK)); }
@Test public void shouldStartSetup_BillingServiceDoesNotExist() throws Exception { helper.startSetup(setupListener); verify(setupListener).onIabSetupFinished(new IabResult(BILLING_UNAVAILABLE)); }