private Task<Integer> countAsync(State<T> state, ParseUser user, Task<Void> cancellationToken) { return ParseQuery.getQueryController().countAsync(state, user, cancellationToken); }
@Override public <T extends ParseObject> Task<Integer> countAsync( ParseQuery.State<T> state, ParseUser user, Task<Void> cancellationToken) { if (state.isFromLocalDatastore()) { return offlineStore.countFromPinAsync(state.pinName(), state, user); } else { return networkController.countAsync(state, user, cancellationToken); } } }
@Test public void testExistsAsyncLDS() throws Exception { Parse.enableLocalDatastore(null); ParseQueryController queryController = mock(ParseQueryController.class); //noinspection unchecked when(queryController.countAsync( any(ParseQuery.State.class), any(ParseUser.class), any(Task.class)) ).thenReturn(Task.forResult(1)); ParseCorePlugins.getInstance().registerQueryController(queryController); OfflineObjectStore<ParseUser> store = new OfflineObjectStore<>(ParseUser.class, PIN_NAME, null); assertTrue(ParseTaskUtils.wait(store.existsAsync())); //noinspection unchecked verify(queryController, times(1)).countAsync( any(ParseQuery.State.class), any(ParseUser.class), any(Task.class)); }
@Test public void testExistsAsyncLegacy() throws Exception { Parse.enableLocalDatastore(null); ParseQueryController queryController = mock(ParseQueryController.class); //noinspection unchecked when(queryController.countAsync( any(ParseQuery.State.class), any(ParseUser.class), any(Task.class)) ).thenReturn(Task.forResult(0)); ParseCorePlugins.getInstance().registerQueryController(queryController); @SuppressWarnings("unchecked") ParseObjectStore<ParseUser> legacy = mock(ParseObjectStore.class); when(legacy.existsAsync()).thenReturn(Task.forResult(true)); OfflineObjectStore<ParseUser> store = new OfflineObjectStore<>(ParseUser.class, PIN_NAME, legacy); assertTrue(ParseTaskUtils.wait(store.existsAsync())); //noinspection unchecked verify(queryController, times(1)).countAsync( any(ParseQuery.State.class), any(ParseUser.class), any(Task.class)); }
@Test public void testCountLimitReset() { // Mock CacheQueryController ParseQueryController controller = mock(CacheQueryController.class); ParseCorePlugins.getInstance().registerQueryController(controller); when(controller.countAsync( any(ParseQuery.State.class), any(ParseUser.class), any(Task.class))).thenReturn(Task.forResult(0)); final ParseQuery<ParseObject> query = ParseQuery.getQuery("TestObject"); query.countInBackground(); assertEquals(-1, query.getLimit()); }
any(Task.class)) ).thenReturn(task); when(queryController.countAsync( any(ParseQuery.State.class), any(ParseUser.class),