@Test public void testShouldErrorIfJsonException() throws Exception { final GetPurchasesRequest request = newRequest(); final RequestListener l = mock(RequestListener.class); request.setListener(l); final IInAppBillingService service = mock(IInAppBillingService.class); final Bundle bundle = newBundle(OK); final ArrayList<String> datas = new ArrayList<String>(); datas.add("test"); bundle.putStringArrayList(Purchases.BUNDLE_DATA_LIST, datas); when(service.getPurchases(anyInt(), anyString(), anyString(), anyString())).thenReturn(bundle); request.start(service, "test"); verify(l, times(1)).onError(eq(EXCEPTION), any(JSONException.class)); }
@Test public void testEmptyListShouldNotBeVerified() throws Exception { final PurchaseVerifier verifier = mock(PurchaseVerifier.class); final GetPurchasesRequest request = new GetPurchasesRequest("test", null, verifier); final RequestListener listener = mock(RequestListener.class); request.setListener(listener); final IInAppBillingService service = mock(IInAppBillingService.class); when(service.getPurchases(anyInt(), anyString(), anyString(), anyString())).thenReturn(newBundle(OK)); request.start(service, "test"); verify(verifier, never()).verify(anyList(), any(RequestListener.class)); verify(listener, times(1)).onSuccess(anyObject()); }
@Test public void testShouldVerifyPurchasesAsynchronously() throws Exception { final GetPurchasesRequest request = new GetPurchasesRequest("test", null, new AsyncPurchaseVerifier()); final PurchasesAwareRequestListener l = new PurchasesAwareRequestListener(); request.setListener(l); final IInAppBillingService service = mock(IInAppBillingService.class); final ArrayList<String> list = new ArrayList<String>(); list.add(PurchaseTest.newJson(0, Purchase.State.REFUNDED)); list.add(PurchaseTest.newJson(1, Purchase.State.REFUNDED)); list.add(PurchaseTest.newJson(2, Purchase.State.CANCELLED)); list.add(PurchaseTest.newJson(3, PURCHASED)); list.add(PurchaseTest.newJson(4, PURCHASED)); list.add(PurchaseTest.newJson(5, PURCHASED)); list.add(PurchaseTest.newJson(6, PURCHASED)); final Bundle bundle = newBundle(OK); bundle.putStringArrayList(Purchases.BUNDLE_DATA_LIST, list); when(service.getPurchases(anyInt(), anyString(), anyString(), anyString())).thenReturn(bundle); request.start(service, "test"); assertNotNull(l.mPurchases); assertTrue(l.mPurchases.list.size() == 4); }