source: josm/trunk/test/unit/org/openstreetmap/josm/gui/autofilter/AutoFilterManagerTest.java@ 15764

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

fix #17496 - AutoFilter: infer sensible default values for layer

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.autofilter;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertNull;
6
7import java.util.Arrays;
8import java.util.TreeSet;
9import java.util.stream.Collectors;
10import java.util.stream.Stream;
11
12import org.junit.Rule;
13import org.junit.Test;
14import org.openstreetmap.josm.data.osm.OsmUtils;
15import org.openstreetmap.josm.testutils.JOSMTestRules;
16
17import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
18
19/**
20 * Unit tests of {@link AutoFilterManager} class.
21 */
22public class AutoFilterManagerTest {
23
24 /**
25 * Setup tests
26 */
27 @Rule
28 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
29 public JOSMTestRules test = new JOSMTestRules();
30
31 /**
32 * Unit test of {@link AutoFilterManager#getTagValuesForPrimitive}.
33 */
34 @Test
35 public void testTagValuesForPrimitive() {
36 final TreeSet<String> values = Stream.of(
37 OsmUtils.createPrimitive("way level=-4--5"),
38 OsmUtils.createPrimitive("way level=-2"),
39 OsmUtils.createPrimitive("node level=0"),
40 OsmUtils.createPrimitive("way level=1"),
41 OsmUtils.createPrimitive("way level=2;3"),
42 OsmUtils.createPrimitive("way level=6-9"),
43 OsmUtils.createPrimitive("way level=10;12-13"))
44 .flatMap(o -> AutoFilterManager.getTagValuesForPrimitive("level", o))
45 .collect(Collectors.toCollection(TreeSet::new));
46 assertEquals(new TreeSet<>(Arrays.asList("-5", "-4", "-2", "0", "1", "2", "3", "6", "7", "8", "9", "10", "12", "13")), values);
47
48 }
49
50 /**
51 * Unit test of {@link AutoFilterManager#getTagValuesForPrimitive} provides sensible defaults, see #17496.
52 */
53 @Test
54 public void testTagValuesForPrimitivesDefaults() {
55 assertNull(getLayer("way foo=bar"));
56 assertEquals("1", getLayer("way bridge=yes"));
57 assertEquals("1", getLayer("way power=line"));
58 assertEquals("-1", getLayer("way tunnel=yes"));
59 assertEquals("0", getLayer("way tunnel=building_passage"));
60 assertEquals("0", getLayer("way highway=residential"));
61 assertEquals("0", getLayer("way railway=rail"));
62 assertEquals("0", getLayer("way waterway=canal"));
63 }
64
65 private String getLayer(final String assertion) {
66 return AutoFilterManager.getTagValuesForPrimitive("layer", OsmUtils.createPrimitive(assertion))
67 .findFirst()
68 .orElse(null);
69 }
70}
Note: See TracBrowser for help on using the repository browser.