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