1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.hbtop.screen.top;
19
20 import static org.hamcrest.CoreMatchers.is;
21 import static org.junit.Assert.assertThat;
22
23 import org.apache.hadoop.hbase.testclassification.SmallTests;
24 import org.junit.Test;
25 import org.junit.experimental.categories.Category;
26
27 @Category(SmallTests.class)
28 public class TestPaging {
29
30 @Test
31 public void testArrowUpAndArrowDown() {
32 Paging paging = new Paging();
33 paging.updatePageSize(3);
34 paging.updateRecordsSize(5);
35
36 assertPaging(paging, 0, 0, 3);
37
38 paging.arrowDown();
39 assertPaging(paging, 1, 0, 3);
40
41 paging.arrowDown();
42 assertPaging(paging, 2, 0, 3);
43
44 paging.arrowDown();
45 assertPaging(paging, 3, 1, 4);
46
47 paging.arrowDown();
48 assertPaging(paging, 4, 2, 5);
49
50 paging.arrowDown();
51 assertPaging(paging, 4, 2, 5);
52
53 paging.arrowUp();
54 assertPaging(paging, 3, 2, 5);
55
56 paging.arrowUp();
57 assertPaging(paging, 2, 2, 5);
58
59 paging.arrowUp();
60 assertPaging(paging, 1, 1, 4);
61
62 paging.arrowUp();
63 assertPaging(paging, 0, 0, 3);
64
65 paging.arrowUp();
66 assertPaging(paging, 0, 0, 3);
67 }
68
69 @Test
70 public void testPageUpAndPageDown() {
71 Paging paging = new Paging();
72 paging.updatePageSize(3);
73 paging.updateRecordsSize(8);
74
75 assertPaging(paging, 0, 0, 3);
76
77 paging.pageDown();
78 assertPaging(paging, 3, 3, 6);
79
80 paging.pageDown();
81 assertPaging(paging, 6, 5, 8);
82
83 paging.pageDown();
84 assertPaging(paging, 7, 5, 8);
85
86 paging.pageDown();
87 assertPaging(paging, 7, 5, 8);
88
89 paging.pageUp();
90 assertPaging(paging, 4, 4, 7);
91
92 paging.pageUp();
93 assertPaging(paging, 1, 1, 4);
94
95 paging.pageUp();
96 assertPaging(paging, 0, 0, 3);
97
98 paging.pageUp();
99 assertPaging(paging, 0, 0, 3);
100 }
101
102 @Test
103 public void testInit() {
104 Paging paging = new Paging();
105 paging.updatePageSize(3);
106 paging.updateRecordsSize(5);
107
108 assertPaging(paging, 0, 0, 3);
109
110 paging.pageDown();
111 paging.pageDown();
112 paging.pageDown();
113 paging.pageDown();
114 paging.init();
115
116 assertPaging(paging, 0, 0, 3);
117 }
118
119 @Test
120 public void testWhenPageSizeGraterThanRecordsSize() {
121 Paging paging = new Paging();
122 paging.updatePageSize(5);
123 paging.updateRecordsSize(3);
124
125 assertPaging(paging, 0, 0, 3);
126
127 paging.arrowDown();
128 assertPaging(paging, 1, 0, 3);
129
130 paging.arrowDown();
131 assertPaging(paging, 2, 0, 3);
132
133 paging.arrowDown();
134 assertPaging(paging, 2, 0, 3);
135
136 paging.arrowUp();
137 assertPaging(paging, 1, 0, 3);
138
139 paging.arrowUp();
140 assertPaging(paging, 0, 0, 3);
141
142 paging.arrowUp();
143 assertPaging(paging, 0, 0, 3);
144
145 paging.pageDown();
146 assertPaging(paging, 2, 0, 3);
147
148 paging.pageDown();
149 assertPaging(paging, 2, 0, 3);
150
151 paging.pageUp();
152 assertPaging(paging, 0, 0, 3);
153
154 paging.pageUp();
155 assertPaging(paging, 0, 0, 3);
156 }
157
158 @Test
159 public void testWhenPageSizeIsZero() {
160 Paging paging = new Paging();
161 paging.updatePageSize(0);
162 paging.updateRecordsSize(5);
163
164 assertPaging(paging, 0, 0, 0);
165
166 paging.arrowDown();
167 assertPaging(paging, 1, 0, 0);
168
169 paging.arrowUp();
170 assertPaging(paging, 0, 0, 0);
171
172 paging.pageDown();
173 assertPaging(paging, 0, 0, 0);
174
175 paging.pageUp();
176 assertPaging(paging, 0, 0, 0);
177 }
178
179 @Test
180 public void testWhenRecordsSizeIsZero() {
181 Paging paging = new Paging();
182 paging.updatePageSize(3);
183 paging.updateRecordsSize(0);
184
185 assertPaging(paging, 0, 0, 0);
186
187 paging.arrowDown();
188 assertPaging(paging, 0, 0, 0);
189
190 paging.arrowUp();
191 assertPaging(paging, 0, 0, 0);
192
193 paging.pageDown();
194 assertPaging(paging, 0, 0, 0);
195
196 paging.pageUp();
197 assertPaging(paging, 0, 0, 0);
198 }
199
200 @Test
201 public void testWhenChangingPageSizeDynamically() {
202 Paging paging = new Paging();
203 paging.updatePageSize(3);
204 paging.updateRecordsSize(5);
205
206 assertPaging(paging, 0, 0, 3);
207
208 paging.arrowDown();
209 assertPaging(paging, 1, 0, 3);
210
211 paging.updatePageSize(2);
212 assertPaging(paging, 1, 0, 2);
213
214 paging.arrowDown();
215 assertPaging(paging, 2, 1, 3);
216
217 paging.arrowDown();
218 assertPaging(paging, 3, 2, 4);
219
220 paging.updatePageSize(4);
221 assertPaging(paging, 3, 1, 5);
222
223 paging.updatePageSize(5);
224 assertPaging(paging, 3, 0, 5);
225
226 paging.updatePageSize(0);
227 assertPaging(paging, 3, 0, 0);
228
229 paging.arrowDown();
230 assertPaging(paging, 4, 0, 0);
231
232 paging.arrowUp();
233 assertPaging(paging, 3, 0, 0);
234
235 paging.pageDown();
236 assertPaging(paging, 3, 0, 0);
237
238 paging.pageUp();
239 assertPaging(paging, 3, 0, 0);
240
241 paging.updatePageSize(1);
242 assertPaging(paging, 3, 3, 4);
243 }
244
245 @Test
246 public void testWhenChangingRecordsSizeDynamically() {
247 Paging paging = new Paging();
248 paging.updatePageSize(3);
249 paging.updateRecordsSize(5);
250
251 assertPaging(paging, 0, 0, 3);
252
253 paging.updateRecordsSize(2);
254 assertPaging(paging, 0, 0, 2);
255 assertThat(paging.getCurrentPosition(), is(0));
256 assertThat(paging.getPageStartPosition(), is(0));
257 assertThat(paging.getPageEndPosition(), is(2));
258
259 paging.arrowDown();
260 assertPaging(paging, 1, 0, 2);
261
262 paging.updateRecordsSize(3);
263 assertPaging(paging, 1, 0, 3);
264
265 paging.arrowDown();
266 assertPaging(paging, 2, 0, 3);
267
268 paging.updateRecordsSize(1);
269 assertPaging(paging, 0, 0, 1);
270
271 paging.updateRecordsSize(0);
272 assertPaging(paging, 0, 0, 0);
273
274 paging.arrowDown();
275 assertPaging(paging, 0, 0, 0);
276
277 paging.arrowUp();
278 assertPaging(paging, 0, 0, 0);
279
280 paging.pageDown();
281 assertPaging(paging, 0, 0, 0);
282
283 paging.pageUp();
284 assertPaging(paging, 0, 0, 0);
285 }
286
287 private void assertPaging(Paging paging, int currentPosition, int pageStartPosition,
288 int pageEndPosition) {
289 assertThat(paging.getCurrentPosition(), is(currentPosition));
290 assertThat(paging.getPageStartPosition(), is(pageStartPosition));
291 assertThat(paging.getPageEndPosition(), is(pageEndPosition));
292 }
293 }