Commit | Line | Data |
---|---|---|
5419a136 | 1 | /******************************************************************************* |
61759503 | 2 | * Copyright (c) 2009, 2013 Ericsson |
5419a136 AM |
3 | * |
4 | * All rights reserved. This program and the accompanying materials are | |
5 | * made available under the terms of the Eclipse Public License v1.0 which | |
6 | * accompanies this distribution, and is available at | |
7 | * http://www.eclipse.org/legal/epl-v10.html | |
8 | * | |
9 | * Contributors: | |
10 | * Francois Chouinard - Initial API and implementation | |
11 | * Francois Chouinard - Added tests to check offsets | |
6e1886bc | 12 | * Alexandre Montplaisir - Port to JUnit4 |
5419a136 AM |
13 | *******************************************************************************/ |
14 | ||
15 | package org.eclipse.linuxtools.tmf.core.tests.request; | |
16 | ||
6e1886bc AM |
17 | import static org.junit.Assert.assertEquals; |
18 | import static org.junit.Assert.assertFalse; | |
19 | import static org.junit.Assert.assertTrue; | |
5419a136 AM |
20 | |
21 | import org.eclipse.linuxtools.internal.tmf.core.request.TmfCoalescedDataRequest; | |
22 | import org.eclipse.linuxtools.tmf.core.event.ITmfEvent; | |
5419a136 | 23 | import org.eclipse.linuxtools.tmf.core.request.TmfDataRequest; |
cf5bad96 | 24 | import org.eclipse.linuxtools.tmf.core.request.ITmfDataRequest.ExecutionType; |
5419a136 | 25 | import org.eclipse.linuxtools.tmf.tests.stubs.request.TmfDataRequestStub; |
6e1886bc AM |
26 | import org.junit.Before; |
27 | import org.junit.Test; | |
5419a136 AM |
28 | |
29 | /** | |
30 | * Test suite for the TmfCoalescedDataRequest class. | |
31 | */ | |
cad06250 | 32 | @SuppressWarnings("javadoc") |
6e1886bc AM |
33 | public class TmfCoalescedDataRequestTest { |
34 | ||
35 | // ------------------------------------------------------------------------ | |
36 | // Variables | |
37 | // ------------------------------------------------------------------------ | |
38 | ||
39 | private TmfCoalescedDataRequest fRequest1; | |
40 | private TmfCoalescedDataRequest fRequest2; | |
41 | private TmfCoalescedDataRequest fRequest3; | |
42 | private TmfCoalescedDataRequest fRequest4; | |
43 | ||
44 | private TmfCoalescedDataRequest fRequest1b; | |
45 | private TmfCoalescedDataRequest fRequest1c; | |
46 | ||
47 | private int fRequestCount; | |
48 | ||
49 | // ------------------------------------------------------------------------ | |
50 | // Housekeeping | |
51 | // ------------------------------------------------------------------------ | |
52 | ||
53 | @Before | |
54 | public void setUp() { | |
55 | TmfDataRequest.reset(); | |
672a642a AM |
56 | fRequest1 = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
57 | fRequest2 = new TmfCoalescedDataRequest(ITmfEvent.class, 20, 100, ExecutionType.FOREGROUND); | |
58 | fRequest3 = new TmfCoalescedDataRequest(ITmfEvent.class, 20, 200, ExecutionType.FOREGROUND); | |
59 | fRequest4 = new TmfCoalescedDataRequest(ITmfEvent.class, 20, 200, ExecutionType.FOREGROUND); | |
6e1886bc | 60 | |
672a642a AM |
61 | fRequest1b = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
62 | fRequest1c = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); | |
6e1886bc AM |
63 | |
64 | fRequestCount = fRequest1c.getRequestId() + 1; | |
65 | } | |
66 | ||
67 | private static TmfCoalescedDataRequest setupTestRequest(final boolean[] flags) { | |
68 | ||
672a642a | 69 | TmfCoalescedDataRequest request = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND) { |
6e1886bc AM |
70 | @Override |
71 | public void handleCompleted() { | |
72 | super.handleCompleted(); | |
73 | flags[0] = true; | |
74 | } | |
75 | ||
76 | @Override | |
77 | public void handleSuccess() { | |
78 | super.handleSuccess(); | |
79 | flags[1] = true; | |
80 | } | |
81 | ||
82 | @Override | |
83 | public void handleFailure() { | |
84 | super.handleFailure(); | |
85 | flags[2] = true; | |
86 | } | |
87 | ||
88 | @Override | |
89 | public void handleCancel() { | |
90 | super.handleCancel(); | |
91 | flags[3] = true; | |
92 | } | |
93 | }; | |
94 | return request; | |
95 | } | |
96 | ||
97 | // ------------------------------------------------------------------------ | |
cf5bad96 | 98 | // Constructor |
6e1886bc AM |
99 | // ------------------------------------------------------------------------ |
100 | ||
6e1886bc AM |
101 | @Test |
102 | public void testTmfCoalescedDataRequestIndexNbEventsBlocksize() { | |
672a642a | 103 | TmfCoalescedDataRequest request = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
5419a136 AM |
104 | |
105 | assertEquals("getRequestId", fRequestCount++, request.getRequestId()); | |
6e1886bc | 106 | assertEquals("getDataType", ITmfEvent.class, request.getDataType()); |
5419a136 AM |
107 | |
108 | assertEquals("getIndex", 10, request.getIndex()); | |
109 | assertEquals("getNbRequestedEvents", 100, request.getNbRequested()); | |
110 | ||
111 | assertFalse("isCompleted", request.isCompleted()); | |
112 | assertFalse("isFailed", request.isFailed()); | |
113 | assertFalse("isCancelled", request.isCancelled()); | |
114 | ||
115 | assertEquals("getNbRead", 0, request.getNbRead()); | |
6e1886bc | 116 | } |
5419a136 | 117 | |
6e1886bc AM |
118 | // ------------------------------------------------------------------------ |
119 | // equals | |
120 | // ------------------------------------------------------------------------ | |
5419a136 | 121 | |
6e1886bc AM |
122 | @Test |
123 | public void testEqualsReflexivity() { | |
5419a136 AM |
124 | assertTrue("equals", fRequest1.equals(fRequest1)); |
125 | assertTrue("equals", fRequest2.equals(fRequest2)); | |
126 | ||
127 | assertFalse("equals", fRequest1.equals(fRequest2)); | |
128 | assertFalse("equals", fRequest2.equals(fRequest1)); | |
6e1886bc | 129 | } |
5419a136 | 130 | |
6e1886bc AM |
131 | @Test |
132 | public void testEqualsSymmetry() { | |
5419a136 AM |
133 | assertTrue("equals", fRequest1.equals(fRequest1b)); |
134 | assertTrue("equals", fRequest1b.equals(fRequest1)); | |
135 | ||
136 | assertFalse("equals", fRequest1.equals(fRequest3)); | |
137 | assertFalse("equals", fRequest2.equals(fRequest3)); | |
138 | assertFalse("equals", fRequest3.equals(fRequest1)); | |
139 | assertFalse("equals", fRequest3.equals(fRequest2)); | |
6e1886bc | 140 | } |
5419a136 | 141 | |
6e1886bc AM |
142 | @Test |
143 | public void testEqualsTransivity() { | |
5419a136 AM |
144 | assertTrue("equals", fRequest1.equals(fRequest1b)); |
145 | assertTrue("equals", fRequest1b.equals(fRequest1c)); | |
146 | assertTrue("equals", fRequest1.equals(fRequest1c)); | |
6e1886bc | 147 | } |
5419a136 | 148 | |
6e1886bc AM |
149 | @Test |
150 | public void testEqualsNull() { | |
5419a136 AM |
151 | assertFalse("equals", fRequest1.equals(null)); |
152 | assertFalse("equals", fRequest2.equals(null)); | |
6e1886bc | 153 | } |
5419a136 | 154 | |
6e1886bc AM |
155 | // ------------------------------------------------------------------------ |
156 | // hashCode | |
157 | // ------------------------------------------------------------------------ | |
5419a136 | 158 | |
6e1886bc AM |
159 | @Test |
160 | public void testHashCode() { | |
5419a136 AM |
161 | assertTrue("hashCode", fRequest1.hashCode() == fRequest1.hashCode()); |
162 | assertTrue("hashCode", fRequest2.hashCode() == fRequest2.hashCode()); | |
6e1886bc AM |
163 | assertTrue("hashCode", fRequest1.hashCode() != fRequest2.hashCode()); |
164 | } | |
5419a136 | 165 | |
6e1886bc AM |
166 | // ------------------------------------------------------------------------ |
167 | // toString | |
168 | // ------------------------------------------------------------------------ | |
5419a136 | 169 | |
6e1886bc AM |
170 | @Test |
171 | public void testToString() { | |
f4d1e591 AM |
172 | String expected1 = "[TmfCoalescedDataRequest(0,ITmfEvent,FOREGROUND,10,100, [])]"; |
173 | String expected2 = "[TmfCoalescedDataRequest(1,ITmfEvent,FOREGROUND,20,100, [])]"; | |
174 | String expected3 = "[TmfCoalescedDataRequest(2,ITmfEvent,FOREGROUND,20,200, [])]"; | |
175 | String expected4 = "[TmfCoalescedDataRequest(3,ITmfEvent,FOREGROUND,20,200, [])]"; | |
5419a136 AM |
176 | |
177 | assertEquals("toString", expected1, fRequest1.toString()); | |
178 | assertEquals("toString", expected2, fRequest2.toString()); | |
179 | assertEquals("toString", expected3, fRequest3.toString()); | |
180 | assertEquals("toString", expected4, fRequest4.toString()); | |
2771b032 | 181 | } |
5419a136 | 182 | |
2771b032 AM |
183 | // ------------------------------------------------------------------------ |
184 | // isCompatible | |
185 | // ------------------------------------------------------------------------ | |
5419a136 | 186 | |
6e1886bc | 187 | @Test |
2771b032 | 188 | public void testIsCompatible() { |
672a642a AM |
189 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
190 | TmfDataRequest request1 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); | |
191 | TmfDataRequest request2 = new TmfDataRequestStub(ITmfEvent.class, 5, 100); | |
192 | TmfDataRequest request3 = new TmfDataRequestStub(ITmfEvent.class, 5, 4); | |
193 | TmfDataRequest request4 = new TmfDataRequestStub(ITmfEvent.class, 5, 5); | |
194 | TmfDataRequest request5 = new TmfDataRequestStub(ITmfEvent.class, 15, 100); | |
195 | TmfDataRequest request6 = new TmfDataRequestStub(ITmfEvent.class, 100, 100); | |
196 | TmfDataRequest request7 = new TmfDataRequestStub(ITmfEvent.class, 110, 100); | |
197 | TmfDataRequest request8 = new TmfDataRequestStub(ITmfEvent.class, 111, 100); | |
5419a136 AM |
198 | |
199 | assertTrue("isCompatible", coalescedRequest.isCompatible(request1)); | |
200 | assertTrue("isCompatible", coalescedRequest.isCompatible(request2)); | |
201 | assertTrue("isCompatible", coalescedRequest.isCompatible(request3)); | |
202 | assertTrue("isCompatible", coalescedRequest.isCompatible(request4)); | |
203 | assertTrue("isCompatible", coalescedRequest.isCompatible(request5)); | |
204 | assertTrue("isCompatible", coalescedRequest.isCompatible(request6)); | |
205 | assertTrue("isCompatible", coalescedRequest.isCompatible(request7)); | |
206 | assertTrue("isCompatible", coalescedRequest.isCompatible(request8)); | |
207 | ||
672a642a AM |
208 | TmfDataRequest request9 = new TmfDataRequestStub(ITmfEvent.class, 5, 3); |
209 | TmfDataRequest request10 = new TmfDataRequestStub(ITmfEvent.class, 112, 100); | |
5419a136 AM |
210 | |
211 | assertFalse("isCompatible", coalescedRequest.isCompatible(request9)); | |
212 | assertFalse("isCompatible", coalescedRequest.isCompatible(request10)); | |
2771b032 | 213 | } |
5419a136 AM |
214 | |
215 | // ------------------------------------------------------------------------ | |
216 | // addRequest | |
217 | // ------------------------------------------------------------------------ | |
218 | ||
6e1886bc | 219 | @Test |
5419a136 | 220 | public void testAddRequest1() { |
672a642a AM |
221 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
222 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 10, 100); | |
5419a136 AM |
223 | |
224 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
225 | coalescedRequest.addRequest(request); | |
6e1886bc | 226 | assertEquals("addRequest", 10, coalescedRequest.getIndex()); |
5419a136 | 227 | assertEquals("addRequest", 100, coalescedRequest.getNbRequested()); |
5419a136 AM |
228 | } |
229 | ||
6e1886bc | 230 | @Test |
5419a136 | 231 | public void testAddRequest2() { |
672a642a AM |
232 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
233 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 5, 100); | |
5419a136 AM |
234 | |
235 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
236 | coalescedRequest.addRequest(request); | |
6e1886bc | 237 | assertEquals("addRequest", 5, coalescedRequest.getIndex()); |
5419a136 | 238 | assertEquals("addRequest", 105, coalescedRequest.getNbRequested()); |
5419a136 AM |
239 | } |
240 | ||
6e1886bc | 241 | @Test |
5419a136 | 242 | public void testAddRequest3() { |
672a642a AM |
243 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
244 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 5, 4); | |
5419a136 AM |
245 | |
246 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
247 | coalescedRequest.addRequest(request); | |
6e1886bc | 248 | assertEquals("addRequest", 5, coalescedRequest.getIndex()); |
5419a136 | 249 | assertEquals("addRequest", 105, coalescedRequest.getNbRequested()); |
5419a136 AM |
250 | } |
251 | ||
6e1886bc | 252 | @Test |
5419a136 | 253 | public void testAddRequest4() { |
672a642a AM |
254 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
255 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 5, 5); | |
5419a136 AM |
256 | |
257 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
258 | coalescedRequest.addRequest(request); | |
6e1886bc | 259 | assertEquals("addRequest", 5, coalescedRequest.getIndex()); |
5419a136 | 260 | assertEquals("addRequest", 105, coalescedRequest.getNbRequested()); |
5419a136 AM |
261 | } |
262 | ||
6e1886bc | 263 | @Test |
5419a136 | 264 | public void testAddRequest5() { |
672a642a AM |
265 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
266 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 15, 100); | |
5419a136 AM |
267 | |
268 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
269 | coalescedRequest.addRequest(request); | |
6e1886bc | 270 | assertEquals("addRequest", 10, coalescedRequest.getIndex()); |
5419a136 | 271 | assertEquals("addRequest", 105, coalescedRequest.getNbRequested()); |
5419a136 AM |
272 | } |
273 | ||
6e1886bc | 274 | @Test |
5419a136 | 275 | public void testAddRequest6() { |
672a642a AM |
276 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
277 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 100, 100); | |
5419a136 AM |
278 | |
279 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
280 | coalescedRequest.addRequest(request); | |
6e1886bc | 281 | assertEquals("addRequest", 10, coalescedRequest.getIndex()); |
5419a136 | 282 | assertEquals("addRequest", 190, coalescedRequest.getNbRequested()); |
5419a136 AM |
283 | } |
284 | ||
6e1886bc | 285 | @Test |
5419a136 | 286 | public void testAddRequest7() { |
672a642a AM |
287 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
288 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 110, 100); | |
5419a136 AM |
289 | |
290 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
291 | coalescedRequest.addRequest(request); | |
6e1886bc | 292 | assertEquals("addRequest", 10, coalescedRequest.getIndex()); |
5419a136 | 293 | assertEquals("addRequest", 200, coalescedRequest.getNbRequested()); |
5419a136 AM |
294 | } |
295 | ||
6e1886bc | 296 | @Test |
5419a136 | 297 | public void testAddRequest8() { |
672a642a AM |
298 | TmfCoalescedDataRequest coalescedRequest = new TmfCoalescedDataRequest(ITmfEvent.class, 10, 100, ExecutionType.FOREGROUND); |
299 | TmfDataRequest request = new TmfDataRequestStub(ITmfEvent.class, 111, 100); | |
5419a136 AM |
300 | |
301 | assertTrue("isCompatible", coalescedRequest.isCompatible(request)); | |
302 | coalescedRequest.addRequest(request); | |
6e1886bc | 303 | assertEquals("addRequest", 10, coalescedRequest.getIndex()); |
5419a136 | 304 | assertEquals("addRequest", 201, coalescedRequest.getNbRequested()); |
5419a136 AM |
305 | } |
306 | ||
6e1886bc AM |
307 | // ------------------------------------------------------------------------ |
308 | // done | |
2771b032 | 309 | // ------------------------------------------------------------------------ |
5419a136 | 310 | |
6e1886bc | 311 | @Test |
2771b032 | 312 | public void testDone() { |
2771b032 AM |
313 | // Test request |
314 | final boolean[] crFlags = new boolean[4]; | |
315 | TmfCoalescedDataRequest request = setupTestRequest(crFlags); | |
672a642a AM |
316 | TmfDataRequest subRequest1 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); |
317 | TmfDataRequest subRequest2 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); | |
2771b032 AM |
318 | request.addRequest(subRequest1); |
319 | request.addRequest(subRequest2); | |
5419a136 | 320 | |
6e1886bc | 321 | request.done(); |
5419a136 | 322 | |
6e1886bc AM |
323 | // Validate the coalescing request |
324 | assertTrue("isCompleted", request.isCompleted()); | |
325 | assertFalse("isFailed", request.isFailed()); | |
326 | assertFalse("isCancelled", request.isCancelled()); | |
327 | ||
328 | assertTrue("handleCompleted", crFlags[0]); | |
329 | assertTrue("handleSuccess", crFlags[1]); | |
330 | assertFalse("handleFailure", crFlags[2]); | |
331 | assertFalse("handleCancel", crFlags[3]); | |
332 | ||
333 | // Validate the first coalesced request | |
334 | assertTrue("isCompleted", subRequest1.isCompleted()); | |
335 | assertFalse("isFailed", subRequest1.isFailed()); | |
336 | assertFalse("isCancelled", subRequest1.isCancelled()); | |
337 | ||
338 | // Validate the second coalesced request | |
339 | assertTrue("isCompleted", subRequest2.isCompleted()); | |
340 | assertFalse("isFailed", subRequest2.isFailed()); | |
341 | assertFalse("isCancelled", subRequest2.isCancelled()); | |
342 | } | |
343 | ||
344 | // ------------------------------------------------------------------------ | |
345 | // fail | |
346 | // ------------------------------------------------------------------------ | |
5419a136 | 347 | |
6e1886bc AM |
348 | @Test |
349 | public void testFail() { | |
350 | final boolean[] crFlags = new boolean[4]; | |
351 | TmfCoalescedDataRequest request = setupTestRequest(crFlags); | |
672a642a AM |
352 | TmfDataRequest subRequest1 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); |
353 | TmfDataRequest subRequest2 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); | |
6e1886bc AM |
354 | request.addRequest(subRequest1); |
355 | request.addRequest(subRequest2); | |
356 | ||
357 | request.fail(); | |
358 | ||
359 | // Validate the coalescing request | |
360 | assertTrue("isCompleted", request.isCompleted()); | |
361 | assertTrue("isFailed", request.isFailed()); | |
362 | assertFalse("isCancelled", request.isCancelled()); | |
363 | ||
364 | assertTrue("handleCompleted", crFlags[0]); | |
365 | assertFalse("handleSuccess", crFlags[1]); | |
366 | assertTrue("handleFailure", crFlags[2]); | |
367 | assertFalse("handleCancel", crFlags[3]); | |
368 | ||
369 | // Validate the first coalesced request | |
370 | assertTrue("isCompleted", subRequest1.isCompleted()); | |
371 | assertTrue("isFailed", subRequest1.isFailed()); | |
372 | assertFalse("isCancelled", subRequest1.isCancelled()); | |
373 | ||
374 | // Validate the second coalesced request | |
375 | assertTrue("isCompleted", subRequest2.isCompleted()); | |
376 | assertTrue("isFailed", subRequest2.isFailed()); | |
377 | assertFalse("isCancelled", subRequest2.isCancelled()); | |
378 | } | |
379 | ||
380 | // ------------------------------------------------------------------------ | |
381 | // cancel | |
382 | // ------------------------------------------------------------------------ | |
383 | ||
384 | @Test | |
385 | public void testCancel() { | |
386 | final boolean[] crFlags = new boolean[4]; | |
387 | TmfCoalescedDataRequest request = setupTestRequest(crFlags); | |
672a642a AM |
388 | TmfDataRequest subRequest1 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); |
389 | TmfDataRequest subRequest2 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); | |
6e1886bc AM |
390 | request.addRequest(subRequest1); |
391 | request.addRequest(subRequest2); | |
392 | ||
393 | request.cancel(); | |
394 | ||
395 | // Validate the coalescing request | |
396 | assertTrue("isCompleted", request.isCompleted()); | |
397 | assertFalse("isFailed", request.isFailed()); | |
398 | assertTrue("isCancelled", request.isCancelled()); | |
399 | ||
400 | assertTrue("handleCompleted", crFlags[0]); | |
401 | assertFalse("handleSuccess", crFlags[1]); | |
402 | assertFalse("handleFailure", crFlags[2]); | |
403 | assertTrue("handleCancel", crFlags[3]); | |
404 | ||
405 | // Validate the first coalesced request | |
406 | assertTrue("isCompleted", subRequest1.isCompleted()); | |
407 | assertFalse("isFailed", subRequest1.isFailed()); | |
408 | assertTrue("isCancelled", subRequest1.isCancelled()); | |
409 | ||
410 | // Validate the second coalesced request | |
411 | assertTrue("isCompleted", subRequest2.isCompleted()); | |
412 | assertFalse("isFailed", subRequest2.isFailed()); | |
413 | assertTrue("isCancelled", subRequest2.isCancelled()); | |
414 | } | |
415 | ||
416 | // ------------------------------------------------------------------------ | |
417 | // cancel sub-requests | |
418 | // ------------------------------------------------------------------------ | |
419 | ||
420 | @Test | |
421 | public void testCancelSubRequests() { | |
2771b032 AM |
422 | final boolean[] crFlags = new boolean[4]; |
423 | TmfCoalescedDataRequest request = setupTestRequest(crFlags); | |
672a642a AM |
424 | TmfDataRequest subRequest1 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); |
425 | TmfDataRequest subRequest2 = new TmfDataRequestStub(ITmfEvent.class, 10, 100); | |
2771b032 AM |
426 | request.addRequest(subRequest1); |
427 | request.addRequest(subRequest2); | |
428 | ||
429 | subRequest1.cancel(); | |
430 | ||
431 | // Validate the first coalesced request | |
432 | assertTrue ("isCompleted", subRequest1.isCompleted()); | |
433 | assertFalse("isFailed", subRequest1.isFailed()); | |
434 | assertTrue ("isCancelled", subRequest1.isCancelled()); | |
435 | ||
436 | // Validate the coalescing request | |
437 | assertFalse("isCompleted", request.isCompleted()); | |
6e1886bc | 438 | assertFalse("isFailed", request.isFailed()); |
2771b032 AM |
439 | assertFalse("isCancelled", request.isCancelled()); |
440 | ||
441 | // Cancel second sub-request | |
442 | subRequest2.cancel(); | |
443 | ||
444 | // Validate the second coalesced request | |
445 | assertTrue ("isCompleted", subRequest2.isCompleted()); | |
446 | assertFalse("isFailed", subRequest2.isFailed()); | |
447 | assertTrue("isCancelled", subRequest2.isCancelled()); | |
448 | ||
449 | // Validate the coalescing request | |
450 | assertTrue("isCompleted", request.isCompleted()); | |
451 | assertFalse("isFailed", request.isFailed()); | |
452 | assertTrue("isCancelled", request.isCancelled()); | |
453 | ||
454 | // Finalize coalescing request - | |
455 | // Note: No need to check "request.isCancelled()" since it was verified | |
456 | // above | |
457 | request.cancel(); | |
458 | ||
459 | assertTrue("handleCompleted", crFlags[0]); | |
460 | assertFalse("handleSuccess", crFlags[1]); | |
461 | assertFalse("handleFailure", crFlags[2]); | |
462 | assertTrue("handleCancel", crFlags[3]); | |
463 | } | |
5419a136 AM |
464 | |
465 | } |