source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/history/HistoryRelationTest.java@ 10945

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

convert more unit tests to JOSMTestRules

File size: 3.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.osm.history;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertTrue;
6
7import java.util.Date;
8import java.util.HashMap;
9import java.util.Map;
10
11import org.junit.Rule;
12import org.junit.Test;
13import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
14import org.openstreetmap.josm.data.osm.RelationMemberData;
15import org.openstreetmap.josm.data.osm.User;
16import org.openstreetmap.josm.gui.DefaultNameFormatter;
17import org.openstreetmap.josm.testutils.JOSMTestRules;
18
19import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
20
21/**
22 * Unit tests for class {@link HistoryRelation}.
23 */
24public class HistoryRelationTest {
25
26 /**
27 * Setup test.
28 */
29 @Rule
30 @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
31 public JOSMTestRules test = new JOSMTestRules();
32
33 private static HistoryRelation create(Date d) {
34 return new HistoryRelation(
35 1, // id
36 2, // version
37 true, // visible
38 User.createOsmUser(3, "testuser"),
39 4, // changesetId
40 d // timestamp
41 );
42 }
43
44 /**
45 * Unit test for {@link HistoryRelation#HistoryRelation}.
46 */
47 @Test
48 public void testHistoryRelation() {
49 Date d = new Date();
50 HistoryRelation rel = create(d);
51
52 assertEquals(1, rel.getId());
53 assertEquals(2, rel.getVersion());
54 assertTrue(rel.isVisible());
55 assertEquals("testuser", rel.getUser().getName());
56 assertEquals(3, rel.getUser().getId());
57 assertEquals(4, rel.getChangesetId());
58 assertEquals(d, rel.getTimestamp());
59 }
60
61 /**
62 * Unit test for {@link HistoryRelation#getType}.
63 */
64 @Test
65 public void testGetType() {
66 assertEquals(OsmPrimitiveType.RELATION, create(new Date()).getType());
67 }
68
69 /**
70 * Unit test for {@link HistoryRelation#getDisplayName}.
71 */
72 @Test
73 public void testGetDisplayName() {
74 HistoryNameFormatter hnf = DefaultNameFormatter.getInstance();
75 HistoryRelation rel0 = create(new Date()); // 0 member
76 HistoryRelation rel1 = create(new Date()); // 1 member
77 HistoryRelation rel2 = create(new Date()); // 2 members
78
79 rel1.addMember(new RelationMemberData(null, OsmPrimitiveType.NODE, 1));
80 rel2.addMember(new RelationMemberData(null, OsmPrimitiveType.NODE, 1));
81 rel2.addMember(new RelationMemberData(null, OsmPrimitiveType.NODE, 2));
82
83 // CHECKSTYLE.OFF: SingleSpaceSeparator
84 assertEquals("relation (1, 0 members)", rel0.getDisplayName(hnf));
85 assertEquals("relation (1, 1 member)", rel1.getDisplayName(hnf));
86 assertEquals("relation (1, 2 members)", rel2.getDisplayName(hnf));
87
88 Map<String, String> map = new HashMap<>();
89 map.put("name", "RelName");
90
91 rel0.setTags(map);
92 rel1.setTags(map);
93 rel2.setTags(map);
94
95 assertEquals("relation (\"RelName\", 0 members)", rel0.getDisplayName(hnf));
96 assertEquals("relation (\"RelName\", 1 member)", rel1.getDisplayName(hnf));
97 assertEquals("relation (\"RelName\", 2 members)", rel2.getDisplayName(hnf));
98 // CHECKSTYLE.ON: SingleSpaceSeparator
99 }
100}
Note: See TracBrowser for help on using the repository browser.