@Override protected void onResume() { super.onResume(); premiumer.bind(); }
public void onConsume(View v) { premiumer.consumeSku(); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (!premiumer.handleActivityResult(requestCode, resultCode, data)) { super.onActivityResult(requestCode, resultCode, data); } }
@Test public void purchaseDetails() throws Exception { final Purchase purchase = new Purchase(JSON_PURCHASE, null); when(cache.load()).thenReturn(purchase); premiumer.bind(); assertBound(true); final boolean enqueued = premiumer.purchaseDetails(); assertThat(enqueued).isTrue(); assertInvokedOnce(listener).onPurchaseDetails(purchase); }
@Test public void skuDetails() throws Exception { premiumer.bind(); assertBound(true); final boolean enqueued = premiumer.skuDetails(); assertThat(enqueued).isTrue(); final SkuDetails details = new SkuDetails(JSON_SKU); assertInvokedOnce(listener).onSkuDetails(details); }
private void consumeSku(@Nullable Purchase cached) { premiumer.bind(); assertBound(true); when(cache.load()).thenReturn(cached); final boolean consumed = premiumer.consumeSku(); assertThat(consumed).isTrue(); assertInvokedOnce(cache).load(); if (cached == null) { assertInvokedOnce(listener).onFailedToConsumeSku(); } else { assertInvokedOnce(listener).onSkuConsumed(); } }
public void onPurchase(View v) { premiumer.purchase(this); }
public void onSkuDetails(View v) { premiumer.skuDetails(); }
public void onPurchaseDetails(View v) { premiumer.purchaseDetails(); }
@Override protected void onPause() { super.onPause(); premiumer.unbind(); }
@Test public void purchaseOk() { premiumer.bind(); assertBound(true); final String payload = "payload"; when(generator.generate()).thenReturn(payload); final Activity activity = mock(Activity.class); final boolean purchased = premiumer.purchase(activity); assertThat(purchased).isTrue(); assertInvokedOnce(generator).generate(); assertInvokedOnce(listener).onPurchaseRequested(payload); }
@Test public void purchaseNotBound() { assertThat(binder.isBound()).isFalse(); final Activity activity = mock(Activity.class); final boolean purchased = premiumer.purchase(activity); assertThat(purchased).isFalse(); }
@Test public void handleActivityResultBadRequestCode() { final int badRequestCode = BILLING_RESPONSE_RESULT_OK - 1; final boolean handled = premiumer.handleActivityResult(badRequestCode, RESULT_OK, new Intent()); assertThat(handled).isFalse(); }
@Test public void checkShowAds() { premiumer.bind(); assertBound(true); assertThat(premiumer).isInstanceOf(SimplePremiumer.class); final SimplePremiumer simplePremiumer = (SimplePremiumer) premiumer; final boolean check = simplePremiumer.checkAds(); assertThat(check).isTrue(); assertInvokedOnce(listener).onHideAds(); }
private void handleActivityResultBadData(@Nullable String data) { final Intent intent = newBillingIntent(BILLING_RESPONSE_RESULT_OK, data, null); final boolean handled = premiumer.handleActivityResult(REQUEST_CODE, RESULT_OK, intent); assertThat(handled).isTrue(); assertInvokedOnce(listener).onPurchaseBadResponse(intent); }
private static void assertSimplePremiumer(@NonNull Binder binder, boolean isBound) { final PremiumerListener listener = mock(PremiumerListener.class); premiumer(listener, binder).bind(); if (isBound) { assertInvokedOnce(listener).onBillingAvailable(); assertInvokedNever(listener).onBillingUnavailable(); } else { assertInvokedNever(listener).onBillingAvailable(); assertInvokedOnce(listener).onBillingUnavailable(); } }
@Test public void handleActivityResultBadResult() { final int result = RESULT_CANCELED; final Intent intent = new Intent(); final boolean handled = premiumer.handleActivityResult(REQUEST_CODE, result, intent); assertThat(handled).isTrue(); assertInvokedOnce(listener).onPurchaseBadResult(result, intent); }
@Test public void handleActivityResultBadResponseNull() { final boolean handled = premiumer.handleActivityResult(REQUEST_CODE, RESULT_OK, null); assertThat(handled).isTrue(); assertInvokedOnce(listener).onPurchaseBadResponse(null); }