1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.richclient.table;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import javax.swing.event.TableModelEvent;
22 import javax.swing.event.TableModelListener;
23
24 import junit.framework.Assert;
25
26 import org.easymock.EasyMock;
27
28
29
30
31
32
33
34
35
36 public abstract class AbstractBaseTableModelTests extends AbstractMutableTableModelTests {
37
38
39
40
41 protected MutableTableModel getTableModel() {
42 return getBaseTableModel();
43 }
44
45
46
47
48
49
50 protected abstract BaseTableModel getBaseTableModel();
51
52
53
54
55 public AbstractBaseTableModelTests() {
56 super();
57 }
58
59
60
61
62 public final void testSetRows() {
63
64 BaseTableModel model = getBaseTableModel();
65
66 List rows = new ArrayList();
67 rows.add(new Object());
68 rows.add(new Object());
69
70
71 TableModelListener listener1 = (TableModelListener) EasyMock.createMock(TableModelListener.class);
72 TableModelListener listener2 = (TableModelListener) EasyMock.createMock(TableModelListener.class);
73 model.addTableModelListener(listener1);
74 model.addTableModelListener(listener2);
75
76
77 TableModelEvent expectedEvent = new TableModelEvent(model);
78 listener1.tableChanged(matchEvent(expectedEvent));
79 listener2.tableChanged(matchEvent(expectedEvent));
80
81
82 EasyMock.replay(listener1);
83 EasyMock.replay(listener2);
84
85
86 model.setRows(rows);
87
88 Assert.assertEquals(2, model.getRowCount());
89 EasyMock.verify(listener1);
90 EasyMock.verify(listener2);
91
92
93 List rows2 = new ArrayList(3);
94 rows2.add(new Object());
95 rows2.add(new Object());
96 rows2.add(new Object());
97
98
99 EasyMock.reset(listener1);
100 EasyMock.reset(listener2);
101
102
103 listener1.tableChanged(matchEvent(expectedEvent));
104 listener2.tableChanged(matchEvent(expectedEvent));
105
106
107 EasyMock.replay(listener1);
108 EasyMock.replay(listener2);
109
110
111 model.setRows(rows2);
112
113 Assert.assertEquals(3, model.getRowCount());
114 EasyMock.verify(listener1);
115 EasyMock.verify(listener2);
116
117
118 }
119
120
121
122
123 public final void testRowNumbersFlag() {
124
125 BaseTableModel model = getBaseTableModel();
126
127 Assert.assertTrue("Assert default rowNumbers flag is true", model.hasRowNumbers());
128
129 model.setRowNumbers(false);
130
131 Assert.assertFalse("Assert rowNumbers flag is false", model.hasRowNumbers());
132
133 }
134
135
136
137
138 public final void testGetRow() {
139
140 BaseTableModel model = getBaseTableModel();
141
142 Object row1 = new Object();
143 Object row2 = new Object();
144 Object row3 = new Object();
145
146 List rows = new ArrayList(3);
147 rows.add(row1);
148 rows.add(row2);
149 rows.add(row3);
150
151 model.setRows(rows);
152
153 Assert.assertEquals(row1, model.getRow(0));
154 Assert.assertEquals(row2, model.getRow(1));
155 Assert.assertEquals(row3, model.getRow(2));
156
157 try {
158 model.getRow(-1);
159 Assert.fail("Should have thrown an IndexOutOfBoundsException");
160 }
161 catch (IndexOutOfBoundsException e) {
162
163 }
164
165 try {
166 model.getRow(3);
167 Assert.fail("Should have thrown an IndexOutOfBoundsException");
168 }
169 catch (IndexOutOfBoundsException e) {
170
171 }
172
173 }
174
175
176
177
178 public final void testGetRows() {
179
180 BaseTableModel model = getBaseTableModel();
181
182 Assert.assertNotNull("Assert model.getRows is not null", model.getRows());
183 Assert.assertTrue("Assert model.getRows is an empty list", model.getRows().isEmpty());
184
185 List rows = new ArrayList(3);
186 rows.add(new Object());
187 rows.add(new Object());
188 rows.add(new Object());
189 model.setRows(rows);
190
191 Assert.assertEquals(rows, model.getRows());
192
193 }
194
195
196
197
198 public final void testRowOf() {
199
200 BaseTableModel model = getBaseTableModel();
201 Object expectedRow = new Object();
202
203
204 Assert.assertEquals(-1, model.rowOf(expectedRow));
205 Assert.assertEquals(-1, model.rowOf(expectedRow));
206
207
208
209 List rows = new ArrayList();
210 rows.add(expectedRow);
211 rows.add(new Object());
212 rows.add(expectedRow);
213 model.setRows(rows);
214
215
216 Assert.assertEquals(0, model.rowOf(expectedRow));
217
218 }
219
220 }