@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()); } } }