source: josm/trunk/test/unit/org/openstreetmap/josm/gui/history/HistoryBrowserModelTest.java@ 10195

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

add more unit tests

  • Property svn:eol-style set to native
File size: 8.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.history;
3
4import static org.junit.Assert.assertEquals;
5import static org.junit.Assert.assertNotEquals;
6import static org.junit.Assert.assertNotNull;
7import static org.junit.Assert.assertNull;
8import static org.junit.Assert.assertTrue;
9
10import org.junit.BeforeClass;
11import org.junit.Test;
12import org.openstreetmap.josm.JOSMFixture;
13import org.openstreetmap.josm.data.osm.Node;
14import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
15import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
16import org.openstreetmap.josm.data.osm.User;
17import org.openstreetmap.josm.data.osm.history.History;
18import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
19import org.openstreetmap.josm.data.osm.history.HistoryNode;
20import org.openstreetmap.josm.gui.history.HistoryBrowserModel.TagTableModel;
21import org.openstreetmap.josm.gui.history.HistoryBrowserModel.VersionTableModel;
22
23/**
24 * Unit tests of {@link HistoryBrowserModel} class.
25 */
26public class HistoryBrowserModelTest {
27
28 /**
29 * Setup test.
30 */
31 @BeforeClass
32 public static void setUpBeforeClass() {
33 JOSMFixture.createUnitTestFixture().init(true);
34 }
35
36 /**
37 * Test for {@link HistoryBrowserModel#HistoryBrowserModel}.
38 */
39 @Test
40 public void testHistoryBrowserModel() {
41 HistoryBrowserModel model = new HistoryBrowserModel();
42 assertNotNull(model.getVersionTableModel());
43 assertNull(model.getHistory());
44 Node n = new Node(1, 1);
45 n.setUser(User.getAnonymous());
46 n.setChangesetId(1);
47 HistoryDataSet.getInstance().put(new HistoryNode(n));
48 History history = HistoryDataSet.getInstance().getHistory(1, OsmPrimitiveType.NODE);
49 assertNotNull(history);
50 model.setHistory(history);
51 assertEquals(history, model.getHistory());
52 model = new HistoryBrowserModel(history);
53 assertEquals(history, model.getHistory());
54 }
55
56 /**
57 * Unit test of {@link HistoryBrowserModel#getTagTableModel}.
58 */
59 @Test
60 public void testGetTagTableModel() {
61 HistoryBrowserModel model = new HistoryBrowserModel();
62 TagTableModel t1 = model.getTagTableModel(PointInTimeType.CURRENT_POINT_IN_TIME);
63 TagTableModel t2 = model.getTagTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME);
64 assertNotNull(t1);
65 assertNotNull(t2);
66 assertNotEquals(t1, t2);
67 }
68
69 /**
70 * Unit test of {@link HistoryBrowserModel#getNodeListTableModel}.
71 */
72 @Test
73 public void testGetNodeListTableModel() {
74 HistoryBrowserModel model = new HistoryBrowserModel();
75 DiffTableModel t1 = model.getNodeListTableModel(PointInTimeType.CURRENT_POINT_IN_TIME);
76 DiffTableModel t2 = model.getNodeListTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME);
77 assertNotNull(t1);
78 assertNotNull(t2);
79 assertNotEquals(t1, t2);
80 }
81
82 /**
83 * Unit test of {@link HistoryBrowserModel#getRelationMemberTableModel}.
84 */
85 @Test
86 public void testGetRelationMemberTableModel() {
87 HistoryBrowserModel model = new HistoryBrowserModel();
88 DiffTableModel t1 = model.getRelationMemberTableModel(PointInTimeType.CURRENT_POINT_IN_TIME);
89 DiffTableModel t2 = model.getRelationMemberTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME);
90 assertNotNull(t1);
91 assertNotNull(t2);
92 assertNotEquals(t1, t2);
93 }
94
95 /**
96 * Unit test of {@link HistoryBrowserModel#setCurrentPointInTime} and {@link HistoryBrowserModel#setReferencePointInTime} - null history.
97 */
98 @Test
99 public void testSetPointsInTimeNullHistory() {
100 HistoryBrowserModel model = new HistoryBrowserModel();
101 VersionTableModel tableModel = model.getVersionTableModel();
102 tableModel.setValueAt(false, 0, 0); // code coverage
103 tableModel.setValueAt(true, 0, 1); // reference point
104 tableModel.setValueAt(true, 1, 2); // current point
105 tableModel.setValueAt(true, 3, 3); // code coverage
106 }
107
108 /**
109 * Unit test of {@link HistoryBrowserModel#setCurrentPointInTime} and {@link HistoryBrowserModel#setReferencePointInTime} - node history.
110 */
111 @Test
112 public void testSetPointsInTimeNodeHistory() {
113 SimplePrimitiveId id = new SimplePrimitiveId(2, OsmPrimitiveType.NODE);
114 new HistoryLoadTask().add(id).run();
115 History history = HistoryDataSet.getInstance().getHistory(id);
116 assertTrue(history.getNumVersions() >= 4);
117 HistoryBrowserModel model = new HistoryBrowserModel(history);
118 VersionTableModel tableModel = model.getVersionTableModel();
119 tableModel.setValueAt(false, 0, 0); // code coverage
120 tableModel.setValueAt(true, 0, 1); // reference point
121 tableModel.setValueAt(true, 3, 2); // current point
122 tableModel.setValueAt(true, 3, 3); // code coverage
123 // nodes only for ways
124 assertEquals(0, model.getNodeListTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME).getRowCount());
125 assertEquals(0, model.getNodeListTableModel(PointInTimeType.CURRENT_POINT_IN_TIME).getRowCount());
126 // members only for relations
127 assertEquals(0, model.getRelationMemberTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME).getRowCount());
128 assertEquals(0, model.getRelationMemberTableModel(PointInTimeType.CURRENT_POINT_IN_TIME).getRowCount());
129 }
130
131 /**
132 * Unit test of {@link HistoryBrowserModel#setCurrentPointInTime} and {@link HistoryBrowserModel#setReferencePointInTime} - way history.
133 */
134 @Test
135 public void testSetPointsInTimeWayHistory() {
136 SimplePrimitiveId id = new SimplePrimitiveId(2, OsmPrimitiveType.WAY);
137 new HistoryLoadTask().add(id).run();
138 History history = HistoryDataSet.getInstance().getHistory(id);
139 assertTrue(history.getNumVersions() >= 2);
140 HistoryBrowserModel model = new HistoryBrowserModel(history);
141 VersionTableModel tableModel = model.getVersionTableModel();
142 tableModel.setValueAt(false, 0, 0); // code coverage
143 tableModel.setValueAt(true, 0, 1); // reference point
144 tableModel.setValueAt(true, 3, 2); // current point
145 tableModel.setValueAt(true, 3, 3); // code coverage
146 // nodes only for ways
147 assertEquals(2, model.getNodeListTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME).getRowCount());
148 assertEquals(2, model.getNodeListTableModel(PointInTimeType.CURRENT_POINT_IN_TIME).getRowCount());
149 // members only for relations
150 assertEquals(0, model.getRelationMemberTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME).getRowCount());
151 assertEquals(0, model.getRelationMemberTableModel(PointInTimeType.CURRENT_POINT_IN_TIME).getRowCount());
152 }
153
154 /**
155 * Unit test of {@link HistoryBrowserModel#setCurrentPointInTime} and {@link HistoryBrowserModel#setReferencePointInTime} - relation history.
156 */
157 @Test
158 public void testSetPointsInTimeRelationHistory() {
159 SimplePrimitiveId id = new SimplePrimitiveId(2, OsmPrimitiveType.RELATION);
160 new HistoryLoadTask().add(id).run();
161 History history = HistoryDataSet.getInstance().getHistory(id);
162 assertTrue(history.getNumVersions() >= 2);
163 HistoryBrowserModel model = new HistoryBrowserModel(history);
164 VersionTableModel tableModel = model.getVersionTableModel();
165 tableModel.setValueAt(false, 0, 0); // code coverage
166 tableModel.setValueAt(true, 0, 1); // reference point
167 tableModel.setValueAt(true, 3, 2); // current point
168 tableModel.setValueAt(true, 3, 3); // code coverage
169 // nodes only for ways
170 assertEquals(0, model.getNodeListTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME).getRowCount());
171 assertEquals(0, model.getNodeListTableModel(PointInTimeType.CURRENT_POINT_IN_TIME).getRowCount());
172 // members only for relations
173 assertEquals(1, model.getRelationMemberTableModel(PointInTimeType.REFERENCE_POINT_IN_TIME).getRowCount());
174 assertEquals(1, model.getRelationMemberTableModel(PointInTimeType.CURRENT_POINT_IN_TIME).getRowCount());
175 }
176}
Note: See TracBrowser for help on using the repository browser.