### Question:
Checkout { public void start() { start(null); } Checkout(@Nullable Object tag, @Nonnull Billing billing); @Nonnull static UiCheckout forUi(@Nonnull IntentStarter intentStarter, @Nonnull Object tag, @Nonnull Billing billing); @TargetApi(Build.VERSION_CODES.N) @Nonnull static UiCheckout forFragment(@Nonnull Fragment fragment, @Nonnull Billing billing); @Nonnull static ActivityCheckout forActivity(@Nonnull Activity activity, @Nonnull Billing billing); @Nonnull static Checkout forService(@Nonnull Service service, @Nonnull Billing billing); @Nonnull static Checkout forApplication(@Nonnull Billing billing); void start(); void start(@Nullable final Listener listener); void whenReady(@Nonnull final Listener listener); @Nonnull Inventory loadInventory(@Nonnull Inventory.Request request, @Nonnull Inventory.Callback callback); @Nonnull Inventory makeInventory(); void stop();  }### Answer:
@Test public void testAllProductsShouldBeSupported() throws Exception { final AwaitingListener l = new AwaitingListener(); mCheckout.start(l); l.waitWhileLoading(); verify(l.mListener, times(2)).onReady(any(BillingRequests.class), anyString(), eq(true)); verify(l.mListener, never()).onReady(any(BillingRequests.class), anyString(), eq(false)); verify(l.mListener).onReady(any(BillingRequests.class)); }