source: josm/trunk/test/unit/org/openstreetmap/josm/io/OverpassDownloadReaderTest.java@ 11647

Last change on this file since 11647 was 11009, checked in by Don-vip, 8 years ago

fix recent sonar/checkstyle issues

File size: 2.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3
4import static org.junit.Assert.assertEquals;
5
6import org.junit.Rule;
7import org.junit.Test;
8import org.openstreetmap.josm.data.Bounds;
9import org.openstreetmap.josm.gui.preferences.server.OverpassServerPreference;
10import org.openstreetmap.josm.testutils.JOSMTestRules;
11import org.openstreetmap.josm.tools.OverpassTurboQueryWizard;
12import org.openstreetmap.josm.tools.Utils;
13
14import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
15
16/**
17 * Unit tests of {@link OverpassDownloadReader} class.
18 */
19public class OverpassDownloadReaderTest {
20
21 /**
22 * Base test environment is enough
23 */
24 @Rule
25 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
26 public JOSMTestRules test = new JOSMTestRules().timeout(15000);
27
28 private String getExpandedQuery(String search) {
29 final String query = OverpassTurboQueryWizard.getInstance().constructQuery(search);
30 final String request = new OverpassDownloadReader(new Bounds(1, 2, 3, 4), OverpassServerPreference.getOverpassServer(), query)
31 .getRequestForBbox(1, 2, 3, 4)
32 .substring("interpreter?data=".length());
33 return Utils.decodeUrl(request);
34 }
35
36 /**
37 * Tests evaluating the extended query feature {@code bbox}.
38 */
39 @Test
40 public void testBbox() {
41 final String query = getExpandedQuery("amenity=drinking_water");
42 assertEquals("" +
43 "[out:xml][timeout:25][bbox:2.0,1.0,4.0,3.0];\n" +
44 "(\n" +
45 " node[\"amenity\"=\"drinking_water\"];\n" +
46 " way[\"amenity\"=\"drinking_water\"];\n" +
47 " relation[\"amenity\"=\"drinking_water\"];\n" +
48 ");\n" +
49 "(._;>;);\n" +
50 "out meta;", query);
51 }
52
53 /**
54 * Tests evaluating the extended query feature {@code geocodeArea}.
55 */
56 @Test
57 public void testGeocodeArea() {
58 final String query = getExpandedQuery("amenity=drinking_water in London");
59 assertEquals("" +
60 "[out:xml][timeout:25];\n" +
61 "area(3600065606)->.searchArea;\n" +
62 "(\n" +
63 " node[\"amenity\"=\"drinking_water\"](area.searchArea);\n" +
64 " way[\"amenity\"=\"drinking_water\"](area.searchArea);\n" +
65 " relation[\"amenity\"=\"drinking_water\"](area.searchArea);\n" +
66 ");\n" +
67 "(._;>;);\n" +
68 "out meta;", query);
69 }
70
71 /**
72 * Tests evaluating the extended query feature {@code geocodeArea}.
73 */
74 @Test
75 public void testGeocodeUnknownArea() {
76 final String query = OverpassDownloadReader.expandExtendedQueries("{{geocodeArea:foo-bar-baz-does-not-exist}}");
77 assertEquals("// Failed to evaluate {{geocodeArea:foo-bar-baz-does-not-exist}}\n", query);
78 }
79}
Note: See TracBrowser for help on using the repository browser.