@Test public void testFetchIncludesDoesNotExist() throws ParseException { OfflineStore store = mock(OfflineStore.class); when(store.fetchLocallyAsync(any(ParseObject.class), any(ParseSQLiteDatabase.class))) .thenReturn(Task.<ParseObject>forResult(null)); ParseQuery.State<ParseObject> query = new ParseQuery.State.Builder<>("TestObject").include("foo").build(); ParseObject object = new ParseObject("TestObject"); ParseTaskUtils.wait(OfflineQueryLogic.fetchIncludesAsync(store, object, query, null)); // only itself verify(store, times(1)) .fetchLocallyAsync(any(ParseObject.class), any(ParseSQLiteDatabase.class)); }
@Test public void testFetchIncludesParseObject() throws ParseException { OfflineStore store = mock(OfflineStore.class); when(store.fetchLocallyAsync(any(ParseObject.class), any(ParseSQLiteDatabase.class))) .thenReturn(Task.<ParseObject>forResult(null)); ParseSQLiteDatabase db = mock(ParseSQLiteDatabase.class); ParseQuery.State<ParseObject> query = new ParseQuery.State.Builder<>("TestObject").include("foo").build(); ParseObject object = new ParseObject("TestObject"); ParseObject unfetchedObject = new ParseObject("TestObject"); object.put("foo", unfetchedObject); ParseTaskUtils.wait(OfflineQueryLogic.fetchIncludesAsync(store, object, query, db)); verify(store).fetchLocallyAsync(object, db); verify(store).fetchLocallyAsync(unfetchedObject, db); verifyNoMoreInteractions(store); }
private static <T extends ParseObject> boolean matches( OfflineQueryLogic logic, ParseQuery.State<T> query, T object, ParseUser user) throws ParseException { Task<Boolean> task = logic.createMatcher(query, user).matchesAsync(object, null); return ParseTaskUtils.wait(task); }