source: josm/trunk/test/unit/org/openstreetmap/josm/actions/upload/FixDataHookTest.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: 4.4 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.actions.upload;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertFalse;
6import static org.junit.Assert.assertNotNull;
7import static org.junit.Assert.assertTrue;
8
9import java.util.Arrays;
10import java.util.Collection;
11
12import org.junit.Rule;
13import org.junit.Test;
14import org.openstreetmap.josm.Main;
15import org.openstreetmap.josm.command.PseudoCommand;
16import org.openstreetmap.josm.command.SequenceCommand;
17import org.openstreetmap.josm.data.APIDataSet;
18import org.openstreetmap.josm.data.osm.Node;
19import org.openstreetmap.josm.data.osm.OsmPrimitive;
20import org.openstreetmap.josm.data.osm.Relation;
21import org.openstreetmap.josm.data.osm.Way;
22import org.openstreetmap.josm.testutils.JOSMTestRules;
23
24import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
25
26/**
27 * Unit tests for class {@link FixDataHook}.
28 */
29public class FixDataHookTest {
30
31 /**
32 * Setup test.
33 */
34 @Rule
35 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
36 public JOSMTestRules test = new JOSMTestRules().commands();
37
38 /**
39 * Test of {@link FixDataHook#checkUpload} method.
40 */
41 @Test
42 public void testCheckUpload() {
43 // Empty data set
44 Main.main.undoRedo.commands.clear();
45 new FixDataHook().checkUpload(new APIDataSet());
46 assertTrue(Main.main.undoRedo.commands.isEmpty());
47
48 // Complete data set
49 Node emptyNode = new Node();
50 Way emptyWay = new Way();
51 Relation emptyRelation = new Relation();
52 Way w1 = new Way();
53 w1.put("color", "test");
54 Way w2 = new Way();
55 w2.put("highway", "ford");
56 Way w3 = new Way();
57 w3.put("oneway", "false");
58 Way w4 = new Way();
59 w4.put("oneway", "0");
60 Way w5 = new Way();
61 w5.put("oneway", "true");
62 Way w6 = new Way();
63 w6.put("oneway", "1");
64 Way w7 = new Way();
65 w7.put("highway", "stile");
66 Relation r1 = new Relation();
67 r1.put("type", "multipolygon");
68 r1.put("boundary", "administrative");
69 Relation r2 = new Relation();
70 r2.put("foo", "space_end ");
71 r2.put("bar", " space_begin ");
72 r2.put("baz", " space_both ");
73 r2.put(" space_begin", "test");
74 r2.put("space_end ", "test");
75 r2.put(" space_both ", "test");
76 APIDataSet ads = new APIDataSet();
77 ads.init(Arrays.asList(emptyNode, emptyWay, emptyRelation, w1, w2, w3, w4, w5, w6, w7, r1, r2));
78
79 Main.main.undoRedo.commands.clear();
80 new FixDataHook().checkUpload(ads);
81 assertEquals(1, Main.main.undoRedo.commands.size());
82
83 SequenceCommand seq = (SequenceCommand) Main.main.undoRedo.commands.iterator().next();
84 Collection<? extends OsmPrimitive> prims = seq.getParticipatingPrimitives();
85 assertNotNull(prims);
86 assertEquals(9, prims.size());
87 for (OsmPrimitive o : Arrays.asList(w1, w2, w3, w4, w5, w6, w7, r1, r2)) {
88 assertTrue(o.toString(), prims.contains(o));
89 }
90 Collection<PseudoCommand> cmds = seq.getChildren();
91 assertNotNull(cmds);
92 assertEquals(9, cmds.size());
93
94 assertTrue(seq.executeCommand());
95
96 assertFalse(w1.hasKey("color"));
97 assertTrue(w1.hasKey("colour"));
98
99 assertFalse(w2.hasKey("highway"));
100 assertTrue(w2.hasKey("ford"));
101
102 assertFalse("false".equals(w3.get("oneway")));
103 assertTrue("no".equals(w3.get("oneway")));
104
105 assertFalse("0".equals(w4.get("oneway")));
106 assertTrue("no".equals(w4.get("oneway")));
107
108 assertFalse("true".equals(w5.get("oneway")));
109 assertTrue("yes".equals(w5.get("oneway")));
110
111 assertFalse("1".equals(w6.get("oneway")));
112 assertTrue("yes".equals(w6.get("oneway")));
113
114 assertFalse(w7.hasKey("highway"));
115 assertTrue(w7.hasKey("barrier"));
116
117 assertFalse("multipolygon".equals(r1.get("type")));
118 assertTrue("boundary".equals(r1.get("type")));
119
120 assertTrue("space_end".equals(r2.get("foo")));
121 assertTrue("space_begin".equals(r2.get("bar")));
122 assertTrue("space_both".equals(r2.get("baz")));
123 assertFalse(r2.hasKey(" space_begin"));
124 assertFalse(r2.hasKey("space_end "));
125 assertFalse(r2.hasKey(" space_both "));
126 assertTrue(r2.hasKey("space_begin"));
127 assertTrue(r2.hasKey("space_end"));
128 assertTrue(r2.hasKey("space_both"));
129 }
130}
Note: See TracBrowser for help on using the repository browser.