Skip to content

Commit bf08783

Browse files
committed
Tests: Add checks to GeoDistanceQueryBuilderTests (#34273)
Adds checks for parsed geo distance query. It is a bit hack-ish since it compares with query's toString() output, but it is better than no checks. The parsed query itself has default visibility, so we cannot access it here unless we move the test to org.apache.lucene.document package. Fixes #34043
1 parent 528e2b2 commit bf08783

File tree

1 file changed

+19
-14
lines changed

1 file changed

+19
-14
lines changed

server/src/test/java/org/elasticsearch/index/query/GeoDistanceQueryBuilderTests.java

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ public void testParsingAndToQuery1() throws IOException {
158158
" }\n" +
159159
" }\n" +
160160
"}\n";
161-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
161+
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.MILES);
162162
}
163163

164164
public void testParsingAndToQuery2() throws IOException {
@@ -169,7 +169,7 @@ public void testParsingAndToQuery2() throws IOException {
169169
" \"" + GEO_POINT_FIELD_NAME + "\":[-70, 40]\n" +
170170
" }\n" +
171171
"}\n";
172-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
172+
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.MILES);
173173
}
174174

175175
public void testParsingAndToQuery3() throws IOException {
@@ -180,7 +180,7 @@ public void testParsingAndToQuery3() throws IOException {
180180
" \"" + GEO_POINT_FIELD_NAME + "\":\"40, -70\"\n" +
181181
" }\n" +
182182
"}\n";
183-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
183+
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.MILES);
184184
}
185185

186186
public void testParsingAndToQuery4() throws IOException {
@@ -191,7 +191,8 @@ public void testParsingAndToQuery4() throws IOException {
191191
" \"" + GEO_POINT_FIELD_NAME + "\":\"drn5x1g8cu2y\"\n" +
192192
" }\n" +
193193
"}\n";
194-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
194+
GeoPoint geoPoint = GeoPoint.fromGeohash("drn5x1g8cu2y");
195+
assertGeoDistanceRangeQuery(query, geoPoint.getLat(), geoPoint.getLon(), 12, DistanceUnit.MILES);
195196
}
196197

197198
public void testParsingAndToQuery5() throws IOException {
@@ -206,7 +207,7 @@ public void testParsingAndToQuery5() throws IOException {
206207
" }\n" +
207208
" }\n" +
208209
"}\n";
209-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
210+
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.MILES);
210211
}
211212

212213
public void testParsingAndToQuery6() throws IOException {
@@ -221,7 +222,7 @@ public void testParsingAndToQuery6() throws IOException {
221222
" }\n" +
222223
" }\n" +
223224
"}\n";
224-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
225+
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.MILES);
225226
}
226227

227228
public void testParsingAndToQuery7() throws IOException {
@@ -235,7 +236,7 @@ public void testParsingAndToQuery7() throws IOException {
235236
" }\n" +
236237
" }\n" +
237238
"}\n";
238-
assertGeoDistanceRangeQuery(query, 40, -70, 0.012, DistanceUnit.DEFAULT);
239+
assertGeoDistanceRangeQuery(query, 40, -70, 19.312128, DistanceUnit.DEFAULT);
239240
}
240241

241242
public void testParsingAndToQuery8() throws IOException {
@@ -249,7 +250,7 @@ public void testParsingAndToQuery8() throws IOException {
249250
" }\n" +
250251
" }\n" +
251252
"}\n";
252-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.KILOMETERS);
253+
assertGeoDistanceRangeQuery(query, 40, -70, 19.312128, DistanceUnit.DEFAULT);
253254
}
254255

255256
public void testParsingAndToQuery9() throws IOException {
@@ -264,7 +265,7 @@ public void testParsingAndToQuery9() throws IOException {
264265
" }\n" +
265266
" }\n" +
266267
"}\n";
267-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
268+
assertGeoDistanceRangeQuery(query, 40, -70, 19.312128, DistanceUnit.KILOMETERS);
268269
}
269270

270271
public void testParsingAndToQuery10() throws IOException {
@@ -279,7 +280,7 @@ public void testParsingAndToQuery10() throws IOException {
279280
" }\n" +
280281
" }\n" +
281282
"}\n";
282-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
283+
assertGeoDistanceRangeQuery(query, 40, -70, 19.312128, DistanceUnit.KILOMETERS);
283284
}
284285

285286
public void testParsingAndToQuery11() throws IOException {
@@ -293,7 +294,7 @@ public void testParsingAndToQuery11() throws IOException {
293294
" }\n" +
294295
" }\n" +
295296
"}\n";
296-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
297+
assertGeoDistanceRangeQuery(query, 40, -70, 19.312128, DistanceUnit.KILOMETERS);
297298
}
298299

299300
public void testParsingAndToQuery12() throws IOException {
@@ -308,13 +309,17 @@ public void testParsingAndToQuery12() throws IOException {
308309
" }\n" +
309310
" }\n" +
310311
"}\n";
311-
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.DEFAULT);
312+
assertGeoDistanceRangeQuery(query, 40, -70, 12, DistanceUnit.MILES);
312313
}
313314

314-
private void assertGeoDistanceRangeQuery(String query, double lat, double lon, double distance, DistanceUnit distanceUnit) throws IOException {
315+
private void assertGeoDistanceRangeQuery(String query, double lat, double lon, double distance, DistanceUnit distanceUnit)
316+
throws IOException {
315317
assumeTrue("test runs only when at least a type is registered", getCurrentTypes().length > 0);
316318
Query parsedQuery = parseQuery(query).toQuery(createShardContext());
317-
// TODO: what can we check?
319+
// The parsedQuery contains IndexOrDocValuesQuery, which wraps LatLonPointDistanceQuery which in turn has default visibility,
320+
// so we cannot access its fields directly to check and have to use toString() here instead.
321+
assertEquals(parsedQuery.toString(),
322+
"mapped_geo_point:" + lat + "," + lon + " +/- " + distanceUnit.toMeters(distance) + " meters");
318323
}
319324

320325
public void testFromJson() throws IOException {

0 commit comments

Comments
 (0)