@Test
public void getAllAvailablePurchaseSkus() throws Exception {

    // Configure
    final Bundle getSubscriptionsResponse = new Bundle();
    getSubscriptionsResponse.putInt("RESPONSE_CODE", RESULT_OK);
    getSubscriptionsResponse.putStringArrayList("DETAILS_LIST", new ArrayList<>(Collections.singletonList(getSkuDetails(InAppPurchase.SmartReceiptsPlus))));
    when(inAppBillingService.getSkuDetails(eq(3), eq(packageName), eq("subs"), bundleCaptor.capture())).thenReturn(getSubscriptionsResponse);
    final Bundle getConsumablePurchasesResponse = new Bundle();
    getConsumablePurchasesResponse.putInt("RESPONSE_CODE", RESULT_OK);
    getConsumablePurchasesResponse.putStringArrayList("DETAILS_LIST", new ArrayList<>(Collections.singletonList(getSkuDetails(InAppPurchase.OcrScans50))));
    when(inAppBillingService.getSkuDetails(eq(3), eq(packageName), eq("inapp"), bundleCaptor.capture())).thenReturn(getConsumablePurchasesResponse);
    // Test
    purchaseManager.getAllAvailablePurchaseSkus().test()
            .assertValue(new HashSet<>(Arrays.asList(InAppPurchase.SmartReceiptsPlus, InAppPurchase.OcrScans50)))
            .assertComplete()
            .assertNoErrors();
    verify(purchaseWallet, never()).addLocalInAppPurchaseToWallet(any(ManagedProduct.class));
    verify(purchaseWallet, never()).updateLocalInAppPurchasesInWallet(anySetOf(ManagedProduct.class));
}