@Override protected void doAssertLuceneQuery( HasParentQueryBuilder queryBuilder, Query query, SearchContext searchContext) throws IOException { assertThat(query, instanceOf(HasChildQueryBuilder.LateParsingQuery.class)); HasChildQueryBuilder.LateParsingQuery lpq = (HasChildQueryBuilder.LateParsingQuery) query; assertEquals(queryBuilder.score() ? ScoreMode.Max : ScoreMode.None, lpq.getScoreMode()); if (queryBuilder.innerHit() != null) { // have to rewrite again because the provided queryBuilder hasn't been rewritten (directly // returned from // doCreateTestQueryBuilder) queryBuilder = (HasParentQueryBuilder) queryBuilder.rewrite(searchContext.getQueryShardContext()); assertNotNull(searchContext); Map<String, InnerHitBuilder> innerHitBuilders = new HashMap<>(); InnerHitBuilder.extractInnerHits(queryBuilder, innerHitBuilders); for (InnerHitBuilder builder : innerHitBuilders.values()) { builder.build(searchContext, searchContext.innerHits()); } assertNotNull(searchContext.innerHits()); assertEquals(1, searchContext.innerHits().getInnerHits().size()); assertTrue( searchContext.innerHits().getInnerHits().containsKey(queryBuilder.innerHit().getName())); InnerHitsContext.BaseInnerHits innerHits = searchContext.innerHits().getInnerHits().get(queryBuilder.innerHit().getName()); assertEquals(innerHits.size(), queryBuilder.innerHit().getSize()); assertEquals(innerHits.sort().sort.getSort().length, 1); assertEquals(innerHits.sort().sort.getSort()[0].getField(), STRING_FIELD_NAME_2); } }
@Override protected void doAssertLuceneQuery( NestedQueryBuilder queryBuilder, Query query, SearchContext searchContext) throws IOException { QueryBuilder innerQueryBuilder = queryBuilder.query(); assertThat(query, instanceOf(ToParentBlockJoinQuery.class)); ToParentBlockJoinQuery parentBlockJoinQuery = (ToParentBlockJoinQuery) query; // TODO how to assert this? if (queryBuilder.innerHit() != null) { // have to rewrite again because the provided queryBuilder hasn't been rewritten (directly // returned from // doCreateTestQueryBuilder) queryBuilder = (NestedQueryBuilder) queryBuilder.rewrite(searchContext.getQueryShardContext()); assertNotNull(searchContext); Map<String, InnerHitBuilder> innerHitBuilders = new HashMap<>(); InnerHitBuilder.extractInnerHits(queryBuilder, innerHitBuilders); for (InnerHitBuilder builder : innerHitBuilders.values()) { builder.build(searchContext, searchContext.innerHits()); } assertNotNull(searchContext.innerHits()); assertEquals(1, searchContext.innerHits().getInnerHits().size()); assertTrue( searchContext.innerHits().getInnerHits().containsKey(queryBuilder.innerHit().getName())); InnerHitsContext.BaseInnerHits innerHits = searchContext.innerHits().getInnerHits().get(queryBuilder.innerHit().getName()); assertEquals(innerHits.size(), queryBuilder.innerHit().getSize()); assertEquals(innerHits.sort().sort.getSort().length, 1); assertEquals(innerHits.sort().sort.getSort()[0].getField(), INT_FIELD_NAME); } }