@Test public void testShouldLoadPurchases() throws Exception { populatePurchases(); populateSkus(); final TestCallback listener = new TestCallback(); mCheckout.start(); mInventory.load(mRequest, listener); Tests.waitWhileLoading(mInventory); final boolean complete = shouldVerifyPurchaseCompletely(); final Inventory.Product inApp = listener.mProducts.get(IN_APP); final List<Purchase> actualInApps = inApp.getPurchases(); assertEquals(4, actualInApps.size()); verifyPurchase(actualInApps.get(0), 4, EXPIRED, complete, false); verifyPurchase(actualInApps.get(1), 3, REFUNDED, complete, false); verifyPurchase(actualInApps.get(2), 2, CANCELLED, complete, false); verifyPurchase(actualInApps.get(3), 1, PURCHASED, complete, false); final Inventory.Product sub = listener.mProducts.get(SUBSCRIPTION); final List<Purchase> actualSubs = sub.getPurchases(); assertEquals(4, actualSubs.size()); verifyPurchase(actualSubs.get(0), 4, EXPIRED, complete, true); verifyPurchase(actualSubs.get(1), 3, REFUNDED, complete, true); verifyPurchase(actualSubs.get(2), 2, CANCELLED, complete, true); verifyPurchase(actualSubs.get(3), 1, PURCHASED, complete, true); }
@Test public void testShouldLoadSkus() throws Exception { populateSkus(); mCheckout.start(); final TestCallback c1 = new TestCallback(); mInventory.load(Inventory.Request.create().loadSkus(SUBSCRIPTION, asList("subX", "sub2", "sub3")), c1); final TestCallback c2 = new TestCallback(); mInventory.load(Inventory.Request.create().loadSkus(IN_APP, asList("1", "2", "5")), c2); Tests.waitWhileLoading(mInventory); assertEquals(0, c1.mProducts.get(SUBSCRIPTION).getSkus().size()); assertEquals(2, c2.mProducts.get(IN_APP).getSkus().size()); }
@Test public void testShouldLoadSkus() throws Exception { populateSkus(); mCheckout.start(); final TestCallback c1 = new TestCallback(); mInventory.load(Inventory.Request.create().loadSkus(SUBSCRIPTION, asList("subX", "sub2", "sub3")), c1); final TestCallback c2 = new TestCallback(); mInventory.load(Inventory.Request.create().loadSkus(IN_APP, asList("1", "2", "5")), c2); Tests.waitWhileLoading(mInventory); assertEquals(2, c1.mProducts.get(SUBSCRIPTION).getSkus().size()); assertEquals(2, c2.mProducts.get(IN_APP).getSkus().size()); }
@Test public void testIsLoadedWithEmptySkusList() throws Exception { populatePurchases(); populateSkus(); final Inventory.Request request = Inventory.Request.create() .loadAllPurchases() .loadSkus(IN_APP, "in_app_01") .loadSkus(SUBSCRIPTION, "sub_01"); final Checkout checkout = Checkout.forApplication(mBilling); final CheckoutInventory inventory = new CheckoutInventory(checkout); final TestCallback listener = new TestCallback(); checkout.start(); inventory.load(request, listener); Tests.waitWhileLoading(inventory); final Inventory.Product app = listener.mProducts.get(IN_APP); Assert.assertTrue(app.getSkus().isEmpty()); Assert.assertFalse(app.getPurchases().isEmpty()); final Inventory.Product sub = listener.mProducts.get(SUBSCRIPTION); Assert.assertTrue(sub.getSkus().isEmpty()); Assert.assertFalse(sub.getPurchases().isEmpty()); }
@Test public void testShouldContinueAfterCacheException() throws Exception { populatePurchases(); final CheckoutInventory inventory = new CheckoutInventory(mCheckout); final InventoryTestBase.TestCallback listener = new InventoryTestBase.TestCallback(); mCheckout.start(); inventory.load(mRequest, listener); Tests.waitWhileLoading(inventory); assertTrue(mFailingCache.mExceptionThrown); }