void onCheckoutStopped() { Check.isMainThread(); synchronized (mLock) { mCheckoutCount--; if (mCheckoutCount < 0) { mCheckoutCount = 0; warning("Billing#onCheckoutStopped is called more than Billing#onCheckoutStarted"); } if (mCheckoutCount == 0 && mConfiguration.isAutoConnect()) { disconnect(); } } }
static void setService(@Nonnull final Billing billing, @Nonnull final IInAppBillingService service) { if (billing.getState() != Billing.State.INITIAL) { billing.disconnect(); } billing.setConnector(new TestServiceConnector(billing, service)); }
@Test public void testShouldGoToDisconnectedStateFromConnectingIfBillingDies() throws Exception { mBilling.setState(Billing.State.CONNECTING); mBilling.disconnect(); assertEquals(Billing.State.DISCONNECTED, mBilling.getState()); }
@Test public void testStates() throws Exception { final Billing.ServiceConnector connector = mock(Billing.ServiceConnector.class); when(connector.connect()).thenReturn(true); mBilling.setConnector(connector); mBilling.connect(); assertEquals(Billing.State.CONNECTING, mBilling.getState()); mBilling.setService(mock(IInAppBillingService.class), true); assertEquals(Billing.State.CONNECTED, mBilling.getState()); mBilling.disconnect(); assertEquals(Billing.State.DISCONNECTING, mBilling.getState()); mBilling.setService(null, false); assertEquals(Billing.State.DISCONNECTED, mBilling.getState()); }