Tests: Fix TermsQueryBuilderTests expectations when lookup returns no terms
When the termslookup (mocked in this case) doesn't return any terms, the query used to rewrite to an empty boolean query. Now it rewrites to a MatchNoDocsQuery. This changes the test expectation accordingly. Closes #18071
This commit is contained in:
parent
b2ce2f5afa
commit
262a814c8d
|
@ -96,16 +96,22 @@ public class TermsQueryBuilderTests extends AbstractQueryTestCase<TermsQueryBuil
|
|||
protected void doAssertLuceneQuery(TermsQueryBuilder queryBuilder, Query query, QueryShardContext context) throws IOException {
|
||||
if (queryBuilder.termsLookup() == null && (queryBuilder.values() == null || queryBuilder.values().isEmpty())) {
|
||||
assertThat(query, instanceOf(MatchNoDocsQuery.class));
|
||||
MatchNoDocsQuery matchNoDocsQuery = (MatchNoDocsQuery) query;
|
||||
assertThat(matchNoDocsQuery.toString(), containsString("No terms supplied for \"terms\" query."));
|
||||
} else if (queryBuilder.termsLookup() != null && randomTerms.size() == 0){
|
||||
assertThat(query, instanceOf(MatchNoDocsQuery.class));
|
||||
MatchNoDocsQuery matchNoDocsQuery = (MatchNoDocsQuery) query;
|
||||
assertThat(matchNoDocsQuery.toString(), containsString("No terms supplied for \"terms\" query."));
|
||||
} else {
|
||||
assertThat(query, instanceOf(BooleanQuery.class));
|
||||
BooleanQuery booleanQuery = (BooleanQuery) query;
|
||||
|
||||
|
||||
// we only do the check below for string fields (otherwise we'd have to decode the values)
|
||||
if (queryBuilder.fieldName().equals(INT_FIELD_NAME) || queryBuilder.fieldName().equals(DOUBLE_FIELD_NAME)
|
||||
|| queryBuilder.fieldName().equals(BOOLEAN_FIELD_NAME) || queryBuilder.fieldName().equals(DATE_FIELD_NAME)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// expected returned terms depending on whether we have a terms query or a terms lookup query
|
||||
List<Object> terms;
|
||||
if (queryBuilder.termsLookup() != null) {
|
||||
|
@ -113,7 +119,7 @@ public class TermsQueryBuilderTests extends AbstractQueryTestCase<TermsQueryBuil
|
|||
} else {
|
||||
terms = queryBuilder.values();
|
||||
}
|
||||
|
||||
|
||||
// compare whether we have the expected list of terms returned
|
||||
final List<Term> booleanTerms = new ArrayList<>();
|
||||
for (BooleanClause booleanClause : booleanQuery) {
|
||||
|
|
Loading…
Reference in New Issue