source: josm/trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/TaggingPresetTest.java@ 17662

Last change on this file since 17662 was 17662, checked in by simon04, 3 years ago

fix #19012 - Tagging presets: additional matching criteria via <item match_expression="...">

File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.tagging.presets;
3
4import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
5import org.junit.jupiter.api.Test;
6import org.junit.jupiter.api.extension.RegisterExtension;
7import org.openstreetmap.josm.data.osm.IPrimitive;
8import org.openstreetmap.josm.data.osm.OsmUtils;
9import org.openstreetmap.josm.data.osm.search.SearchCompiler;
10import org.openstreetmap.josm.gui.tagging.presets.items.Key;
11import org.openstreetmap.josm.testutils.JOSMTestRules;
12
13import java.util.EnumSet;
14
15import static org.junit.jupiter.api.Assertions.assertFalse;
16import static org.junit.jupiter.api.Assertions.assertTrue;
17
18/**
19 * Unit tests of {@code TaggingPreset}
20 */
21class TaggingPresetTest {
22
23 /**
24 * Setup test.
25 */
26 @RegisterExtension
27 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
28 public JOSMTestRules test = new JOSMTestRules();
29
30 /**
31 * Tests {@link TaggingPreset#test(IPrimitive)}
32 */
33 @Test
34 void test() throws Exception {
35 Key key = new Key();
36 key.key = "railway";
37 key.value = "tram_stop";
38 TaggingPreset preset = new TaggingPreset();
39 preset.data.add(key);
40
41 assertFalse(preset.test(OsmUtils.createPrimitive("node foo=bar")));
42 assertTrue(preset.test(OsmUtils.createPrimitive("node railway=tram_stop")));
43
44 preset.types = EnumSet.of(TaggingPresetType.NODE);
45 assertTrue(preset.test(OsmUtils.createPrimitive("node railway=tram_stop")));
46 assertFalse(preset.test(OsmUtils.createPrimitive("way railway=tram_stop")));
47
48 preset.matchExpression = SearchCompiler.compile("-public_transport");
49 assertTrue(preset.test(OsmUtils.createPrimitive("node railway=tram_stop")));
50 assertFalse(preset.test(OsmUtils.createPrimitive("node railway=tram_stop public_transport=stop_position")));
51 }
52}
Note: See TracBrowser for help on using the repository browser.