source: josm/trunk/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java@ 15814

Last change on this file since 15814 was 15814, checked in by simon04, 4 years ago

fix #18639 - Update to overpass-wizard 0.0.9

  • Property svn:eol-style set to native
File size: 6.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.tools;
3
4import static org.junit.Assert.assertEquals;
5
6import org.junit.Ignore;
7import org.junit.Rule;
8import org.junit.Test;
9import org.openstreetmap.josm.testutils.JOSMTestRules;
10
11import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
12
13/**
14 * Unit tests of {@link OverpassTurboQueryWizard} class.
15 */
16public class OverpassTurboQueryWizardTest {
17 /**
18 * Base test environment is enough
19 */
20 @Rule
21 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
22 public JOSMTestRules test = new JOSMTestRules().timeout(15000);
23
24 /**
25 * Test {@code key=value}.
26 */
27 @Test
28 public void testKeyValue() {
29 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("amenity=drinking_water");
30 assertEquals("" +
31 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
32 "(\n" +
33 " nwr[\"amenity\"=\"drinking_water\"];\n" +
34 ");\n" +
35 "(._;>;);\n" +
36 "out meta;", query);
37 }
38
39 /**
40 * Test {@code key!=value}.
41 */
42 @Test
43 public void testKeyNotValue() {
44 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("amenity!=drinking_water");
45 assertEquals("" +
46 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
47 "(\n" +
48 " nwr[\"amenity\"!=\"drinking_water\"];\n" +
49 ");\n" +
50 "(._;>;);\n" +
51 "out meta;", query);
52 }
53
54 /**
55 * Test {@code foo=bar and baz=42}.
56 */
57 @Test
58 public void testBooleanAnd() {
59 final String expected = "" +
60 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
61 "(\n" +
62 " nwr[\"foo\"=\"bar\"][\"baz\"=\"42\"];\n" +
63 ");\n" +
64 "(._;>;);\n" +
65 "out meta;";
66 assertEquals(expected, OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar and baz=42"));
67 assertEquals(expected, OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar && baz=42"));
68 assertEquals(expected, OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar & baz=42"));
69 }
70
71 /**
72 * Test {@code foo=bar or baz=42}.
73 */
74 @Test
75 public void testBooleanOr() {
76 final String expected = "" +
77 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
78 "(\n" +
79 " nwr[\"foo\"=\"bar\"];\n" +
80 " nwr[\"baz\"=\"42\"];\n" +
81 ");\n" +
82 "(._;>;);\n" +
83 "out meta;";
84 assertEquals(expected, OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar or baz=42"));
85 assertEquals(expected, OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar || baz=42"));
86 assertEquals(expected, OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar | baz=42"));
87 }
88
89 /**
90 * Test {@code (foo=* or bar=*) and (asd=* or fasd=*)}.
91 */
92 @Test
93 public void testBoolean() {
94 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("(foo=* or bar=*) and (asd=* or fasd=*)");
95 assertEquals("" +
96 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
97 "(\n" +
98 " nwr[\"foo\"][\"asd\"];\n" +
99 " nwr[\"foo\"][\"fasd\"];\n" +
100 " nwr[\"bar\"][\"asd\"];\n" +
101 " nwr[\"bar\"][\"fasd\"];\n" +
102 ");\n" +
103 "(._;>;);\n" +
104 "out meta;", query);
105 }
106
107 /**
108 * Test {@code foo=bar and (type:node or type:way)}.
109 */
110 @Test
111 public void testType() {
112 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar and (type:node or type:way)");
113 assertEquals("" +
114 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
115 "(\n" +
116 " node[\"foo\"=\"bar\"];\n" +
117 " way[\"foo\"=\"bar\"];\n" +
118 ");\n" +
119 "(._;>;);\n" +
120 "out meta;", query);
121 }
122
123 /**
124 * Test {@code user:foo or uid:42}.
125 */
126 @Test
127 public void testUser() {
128 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("user:foo or uid:42");
129 assertEquals("" +
130 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
131 "(\n" +
132 " nwr(user:\"foo\");\n" +
133 " nwr(uid:42);\n" +
134 ");\n" +
135 "(._;>;);\n" +
136 "out meta;", query);
137 }
138
139 /**
140 * Test {@code foo=bar and (type:node or type:way)}.
141 */
142 @Test
143 public void testEmpty() {
144 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("foo='' and type:way");
145 assertEquals("" +
146 "[out:xml][timeout:90][bbox:{{bbox}}];\n" +
147 "(\n" +
148 " way[\"foo\"~\"^$\"];\n" +
149 ");\n" +
150 "(._;>;);\n" +
151 "out meta;", query);
152 }
153
154 /**
155 * Test geocodeArea.
156 */
157 @Test
158 public void testInArea() {
159 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("foo=bar in Josmland");
160 assertEquals("" +
161 "[out:xml][timeout:90];\n" +
162 "{{geocodeArea:Josmland}}->.searchArea;\n" +
163 "(\n" +
164 " nwr[\"foo\"=\"bar\"](area.searchArea);\n" +
165 ");\n" +
166 "(._;>;);\n" +
167 "out meta;", query);
168 }
169
170 /**
171 * Test building an Overpass query based on a preset name.
172 */
173 @Test
174 @Ignore("preset handling not implemented")
175 public void testPreset() {
176 final String query = OverpassTurboQueryWizard.getInstance().constructQuery("Hospital");
177 assertEquals("" +
178 "[out:xml][timeout:90];\n" +
179 "(\n" +
180 " nwr[\"amenity\"=\"hospital\"];\n" +
181 ");\n" +
182 "(._;>;);\n" +
183 "out meta;", query);
184 }
185
186 /**
187 * Test erroneous value.
188 */
189 @Test(expected = UncheckedParseException.class)
190 public void testErroneous() {
191 OverpassTurboQueryWizard.getInstance().constructQuery("foo");
192 }
193}
Note: See TracBrowser for help on using the repository browser.