source: josm/trunk/test/unit/org/openstreetmap/josm/corrector/ReverseWayTagCorrectorTest.java@ 10956

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

convert more unit tests to JOSMTestRules

  • 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.corrector;
3
4import org.junit.Assert;
5import org.junit.Rule;
6import org.junit.Test;
7import org.openstreetmap.josm.data.osm.Tag;
8import org.openstreetmap.josm.testutils.JOSMTestRules;
9
10import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
11
12/**
13 * Unit tests of {@link ReverseWayTagCorrector} class.
14 */
15public class ReverseWayTagCorrectorTest {
16
17 /**
18 * Setup test.
19 */
20 @Rule
21 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
22 public JOSMTestRules test = new JOSMTestRules();
23
24 /**
25 * Test of {@link ReverseWayTagCorrector.TagSwitcher#apply} method.
26 */
27 @Test
28 public void testTagSwitch() {
29 // oneway
30 assertSwitch(new Tag("oneway", "yes"), new Tag("oneway", "-1"));
31 assertSwitch(new Tag("oneway", "true"), new Tag("oneway", "-1"));
32 assertSwitch(new Tag("oneway", "-1"), new Tag("oneway", "yes"));
33 assertSwitch(new Tag("oneway", "no"), new Tag("oneway", "no"));
34 assertSwitch(new Tag("oneway", "something"), new Tag("oneway", "something"));
35 // incline/direction
36 for (String k : new String[]{"incline", "direction"}) {
37 assertSwitch(new Tag(k, "up"), new Tag(k, "down"));
38 assertSwitch(new Tag(k, "down"), new Tag(k, "up"));
39 assertSwitch(new Tag(k, "something"), new Tag(k, "something"));
40 }
41 // :left/:right with oneway (see #10977)
42 assertSwitch(new Tag("cycleway:left:oneway", "-1"), new Tag("cycleway:right:oneway", "yes"));
43 // :forward/:backward (see #8518)
44 assertSwitch(new Tag("turn:forward", "right"), new Tag("turn:backward", "right"));
45 assertSwitch(new Tag("change:forward", "not_right"), new Tag("change:backward", "not_right"));
46 assertSwitch(new Tag("placement:forward", "right_of:1"), new Tag("placement:backward", "right_of:1"));
47 assertSwitch(new Tag("turn:lanes:forward", "left|right"), new Tag("turn:lanes:backward", "left|right"));
48 assertSwitch(new Tag("change:lanes:forward", "not_right|only_left"), new Tag("change:lanes:backward", "not_right|only_left"));
49 // keys
50 assertSwitch(new Tag("forward", "something"), new Tag("backward", "something"));
51 assertSwitch(new Tag("backward", "something"), new Tag("forward", "something"));
52 assertSwitch(new Tag("up", "something"), new Tag("down", "something"));
53 assertSwitch(new Tag("down", "something"), new Tag("up", "something"));
54 assertSwitch(new Tag("east", "something"), new Tag("west", "something"));
55 assertSwitch(new Tag("west", "something"), new Tag("east", "something"));
56 assertSwitch(new Tag("south", "something"), new Tag("north", "something"));
57 assertSwitch(new Tag("north", "something"), new Tag("south", "something"));
58 // values
59 assertSwitch(new Tag("something", "forward"), new Tag("something", "backward"));
60 assertSwitch(new Tag("something", "backward"), new Tag("something", "forward"));
61 assertSwitch(new Tag("something", "up"), new Tag("something", "down"));
62 assertSwitch(new Tag("something", "down"), new Tag("something", "up"));
63 assertSwitch(new Tag("something", "east"), new Tag("something", "west"));
64 assertSwitch(new Tag("something", "west"), new Tag("something", "east"));
65 assertSwitch(new Tag("something", "south"), new Tag("something", "north"));
66 assertSwitch(new Tag("something", "north"), new Tag("something", "south"));
67 // value[:_]suffix
68 assertSwitch(new Tag("something", "forward:suffix"), new Tag("something", "backward:suffix"));
69 assertSwitch(new Tag("something", "backward_suffix"), new Tag("something", "forward_suffix"));
70 assertSwitch(new Tag("something", "up:suffix"), new Tag("something", "down:suffix"));
71 assertSwitch(new Tag("something", "down_suffix"), new Tag("something", "up_suffix"));
72 assertSwitch(new Tag("something", "east:suffix"), new Tag("something", "west:suffix"));
73 assertSwitch(new Tag("something", "west_suffix"), new Tag("something", "east_suffix"));
74 assertSwitch(new Tag("something", "south:suffix"), new Tag("something", "north:suffix"));
75 assertSwitch(new Tag("something", "north_suffix"), new Tag("something", "south_suffix"));
76 // prefix[:_]value
77 assertSwitch(new Tag("something", "prefix:forward"), new Tag("something", "prefix:backward"));
78 assertSwitch(new Tag("something", "prefix_backward"), new Tag("something", "prefix_forward"));
79 assertSwitch(new Tag("something", "prefix:up"), new Tag("something", "prefix:down"));
80 assertSwitch(new Tag("something", "prefix_down"), new Tag("something", "prefix_up"));
81 assertSwitch(new Tag("something", "prefix:east"), new Tag("something", "prefix:west"));
82 assertSwitch(new Tag("something", "prefix_west"), new Tag("something", "prefix_east"));
83 assertSwitch(new Tag("something", "prefix:south"), new Tag("something", "prefix:north"));
84 assertSwitch(new Tag("something", "prefix_north"), new Tag("something", "prefix_south"));
85 // prefix[:_]value[:_]suffix
86 assertSwitch(new Tag("something", "prefix:forward:suffix"), new Tag("something", "prefix:backward:suffix"));
87 assertSwitch(new Tag("something", "prefix_backward:suffix"), new Tag("something", "prefix_forward:suffix"));
88 assertSwitch(new Tag("something", "prefix:up_suffix"), new Tag("something", "prefix:down_suffix"));
89 assertSwitch(new Tag("something", "prefix_down_suffix"), new Tag("something", "prefix_up_suffix"));
90 assertSwitch(new Tag("something", "prefix:east:suffix"), new Tag("something", "prefix:west:suffix"));
91 assertSwitch(new Tag("something", "prefix_west:suffix"), new Tag("something", "prefix_east:suffix"));
92 assertSwitch(new Tag("something", "prefix:south_suffix"), new Tag("something", "prefix:north_suffix"));
93 assertSwitch(new Tag("something", "prefix_north_suffix"), new Tag("something", "prefix_south_suffix"));
94 // #8499
95 assertSwitch(new Tag("type", "drawdown"), new Tag("type", "drawdown"));
96 }
97
98 private void assertSwitch(Tag oldTag, Tag newTag) {
99 Assert.assertEquals(ReverseWayTagCorrector.TagSwitcher.apply(oldTag), newTag);
100 }
101}
Note: See TracBrowser for help on using the repository browser.