@Override
 protected void doAssertLuceneQuery(
     HasChildQueryBuilder queryBuilder, Query query, QueryShardContext context)
     throws IOException {
   QueryBuilder innerQueryBuilder = queryBuilder.query();
   if (innerQueryBuilder instanceof EmptyQueryBuilder) {
     assertNull(query);
   } else {
     assertThat(query, instanceOf(HasChildQueryBuilder.LateParsingQuery.class));
     HasChildQueryBuilder.LateParsingQuery lpq = (HasChildQueryBuilder.LateParsingQuery) query;
     assertEquals(queryBuilder.minChildren(), lpq.getMinChildren());
     assertEquals(queryBuilder.maxChildren(), lpq.getMaxChildren());
     assertEquals(queryBuilder.scoreMode(), lpq.getScoreMode()); // WTF is this why do we have two?
   }
   if (queryBuilder.innerHit() != null) {
     assertNotNull(SearchContext.current());
     if (query != null) {
       assertNotNull(SearchContext.current().innerHits());
       assertEquals(1, SearchContext.current().innerHits().getInnerHits().size());
       assertTrue(
           SearchContext.current().innerHits().getInnerHits().containsKey("inner_hits_name"));
       InnerHitsContext.BaseInnerHits innerHits =
           SearchContext.current().innerHits().getInnerHits().get("inner_hits_name");
       assertEquals(innerHits.size(), 100);
       assertEquals(innerHits.sort().getSort().length, 1);
       assertEquals(innerHits.sort().getSort()[0].getField(), STRING_FIELD_NAME);
     } else {
       assertNull(SearchContext.current().innerHits());
     }
   }
 }