@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);
  }
 public Task then(Task task)
     throws Exception
 {
     task = (ParsePin)task.getResult();
     return val$store.findAsync(ParseQuery.this, val$user, task, val$includeIsDeletingEventually, val$ignoreACLs);
 }