Skip to content

Commit e40dc15

Browse files
committed
Added test code to cover all three code paths, unmapped fields, mapped integer and date types
1 parent 30990a0 commit e40dc15

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/test/java/org/elasticsearch/index/query/BaseQueryTestCase.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
public abstract class BaseQueryTestCase<QB extends QueryBuilder & Streamable> extends ElasticsearchTestCase {
7070

7171
protected static final String DATE_FIELD_NAME = "age";
72+
protected static final String INT_FIELD_NAME = "price";
7273
private static Injector injector;
7374
private static IndexQueryParserService queryParserService;
7475
private static Index index;
@@ -110,7 +111,9 @@ protected void configure() {
110111
).createInjector();
111112
queryParserService = injector.getInstance(IndexQueryParserService.class);
112113
MapperService mapperService = queryParserService.mapperService;
113-
CompressedString mapping = new CompressedString(PutMappingRequest.buildFromSimplifiedDef("type", DATE_FIELD_NAME, "type=date").string());
114+
CompressedString mapping = new CompressedString(PutMappingRequest.buildFromSimplifiedDef("type",
115+
DATE_FIELD_NAME, "type=date",
116+
INT_FIELD_NAME, "type=integer").string());
114117
mapperService.merge("type", mapping, true);
115118
}
116119

src/test/java/org/elasticsearch/index/query/RangeQueryBuilderTest.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ protected RangeQueryBuilder createTestQueryBuilder() {
5151
// switch between numeric and date ranges
5252
if (randomBoolean()) {
5353
if (randomBoolean()) {
54+
query = new RangeQueryBuilder(INT_FIELD_NAME);
5455
query.from(randomIntBetween(1, 100));
5556
query.to(randomIntBetween(101, 200));
5657
} else {
@@ -88,20 +89,26 @@ protected RangeQueryBuilder createTestQueryBuilder() {
8889
@Override
8990
protected void assertLuceneQuery(RangeQueryBuilder queryBuilder, Query query, QueryParseContext context) throws IOException {
9091
assertThat(query.getBoost(), is(queryBuilder.boost()));
91-
if (!queryBuilder.fieldname().equals(DATE_FIELD_NAME)) {
92+
String fieldname = queryBuilder.fieldname();
93+
if (!fieldname.equals(DATE_FIELD_NAME) && !fieldname.equals(INT_FIELD_NAME)) {
9294
assertThat(query, instanceOf(TermRangeQuery.class));
9395
TermRangeQuery termRangeQuery = (TermRangeQuery) query;
9496
assertThat(termRangeQuery.includesLower(), is(queryBuilder.includeLower()));
9597
assertThat(termRangeQuery.includesUpper(), is(queryBuilder.includeUpper()));
9698
assertThat(termRangeQuery.getLowerTerm(), is(BytesRefs.toBytesRef(queryBuilder.from())));
9799
assertThat(termRangeQuery.getUpperTerm(), is(BytesRefs.toBytesRef(queryBuilder.to())));
98-
assertThat(termRangeQuery.getField(), is(queryBuilder.fieldname()));
99-
} else {
100+
assertThat(termRangeQuery.getField(), is(fieldname));
101+
} else if (fieldname.equals(DATE_FIELD_NAME)) {
100102
assertThat(query, instanceOf(LateParsingQuery.class));
101103
Long min = expectedDateLong(queryBuilder.from(), queryBuilder, context);
102104
Long max = expectedDateLong(queryBuilder.to(), queryBuilder, context);
103105
Query expectedQuery = NumericRangeQuery.newLongRange(DATE_FIELD_NAME, min, max, queryBuilder.includeLower(), queryBuilder.includeUpper());
104106
assertEquals(query.rewrite(null), expectedQuery.rewrite(null));
107+
} else {
108+
assertThat(query, instanceOf(NumericRangeQuery.class));
109+
Query expectedQuery = NumericRangeQuery.newIntRange(INT_FIELD_NAME, (Integer) queryBuilder.from(), (Integer) queryBuilder.to(), queryBuilder.includeLower(), queryBuilder.includeUpper());
110+
expectedQuery.setBoost(testQuery.boost());
111+
assertEquals(query, expectedQuery);
105112
}
106113
if (queryBuilder.queryName() != null) {
107114
Query namedQuery = context.copyNamedFilters().get(queryBuilder.queryName());

0 commit comments

Comments
 (0)