1 /*******************************************************************************
2 * Copyright (c) 2009, 2013 Ericsson
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
10 * Francois Chouinard - Initial API and implementation
11 * Alexandre Montplaisir - Port to JUnit4
12 *******************************************************************************/
14 package org
.eclipse
.linuxtools
.tmf
.core
.tests
.request
;
16 import static org
.junit
.Assert
.assertEquals
;
17 import static org
.junit
.Assert
.assertFalse
;
18 import static org
.junit
.Assert
.assertSame
;
19 import static org
.junit
.Assert
.assertTrue
;
21 import org
.eclipse
.linuxtools
.tmf
.core
.event
.ITmfEvent
;
22 import org
.eclipse
.linuxtools
.tmf
.core
.request
.ITmfEventRequest
;
23 import org
.eclipse
.linuxtools
.tmf
.core
.request
.TmfEventRequest
;
24 import org
.eclipse
.linuxtools
.tmf
.core
.timestamp
.TmfTimeRange
;
25 import org
.eclipse
.linuxtools
.tmf
.core
.timestamp
.TmfTimestamp
;
26 import org
.eclipse
.linuxtools
.tmf
.tests
.stubs
.request
.TmfEventRequestStub
;
27 import org
.junit
.Before
;
28 import org
.junit
.Test
;
31 * Test suite for the TmfEventRequest class.
33 @SuppressWarnings("javadoc")
34 public class TmfEventRequestTest
{
36 // ------------------------------------------------------------------------
38 // ------------------------------------------------------------------------
40 private static TmfTimeRange range1
= new TmfTimeRange(TmfTimeRange
.ETERNITY
);
41 private static TmfTimeRange range2
= new TmfTimeRange(new TmfTimestamp(), TmfTimestamp
.BIG_CRUNCH
);
43 private static TmfEventRequest fRequest1
;
44 private static TmfEventRequest fRequest1b
;
45 private static TmfEventRequest fRequest1c
;
46 private static TmfEventRequest fRequest2
;
47 private static TmfEventRequest fRequest3
;
48 private static TmfEventRequest fRequest4
;
50 private static int fRequestCount
;
52 // ------------------------------------------------------------------------
54 // ------------------------------------------------------------------------
58 TmfEventRequest
.reset();
59 fRequest1
= new TmfEventRequestStub(ITmfEvent
.class, range1
, 100, 200);
60 fRequest2
= new TmfEventRequestStub(ITmfEvent
.class, range2
, 100, 200);
61 fRequest3
= new TmfEventRequestStub(ITmfEvent
.class, range2
, 200, 200);
62 fRequest4
= new TmfEventRequestStub(ITmfEvent
.class, range2
, 200, 300);
63 fRequest1b
= new TmfEventRequestStub(ITmfEvent
.class, range1
, 100, 200);
64 fRequest1c
= new TmfEventRequestStub(ITmfEvent
.class, range1
, 100, 200);
65 fRequestCount
= fRequest1c
.getRequestId() + 1;
68 private static TmfEventRequest
setupTestRequest(final boolean[] flags
) {
70 TmfEventRequest request
= new TmfEventRequestStub(ITmfEvent
.class, new TmfTimeRange(TmfTimeRange
.ETERNITY
), 100, 200) {
72 public void handleCompleted() {
73 super.handleCompleted();
78 public void handleSuccess() {
79 super.handleSuccess();
84 public void handleFailure() {
85 super.handleFailure();
90 public void handleCancel() {
98 // ------------------------------------------------------------------------
100 // ------------------------------------------------------------------------
103 public void testTmfEventRequest() {
104 TmfEventRequest request
= new TmfEventRequestStub(ITmfEvent
.class);
106 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
107 assertEquals("getDataType", ITmfEvent
.class, request
.getDataType());
109 assertEquals("StartTime", TmfTimestamp
.BIG_BANG
, request
.getRange().getStartTime());
110 assertEquals("EndTime", TmfTimestamp
.BIG_CRUNCH
, request
.getRange().getEndTime());
112 assertEquals("getRange", TmfTimeRange
.ETERNITY
, request
.getRange());
113 assertSame("getRange", TmfTimeRange
.ETERNITY
, request
.getRange());
115 assertEquals("getIndex", 0, request
.getIndex());
116 assertEquals("getNbRequestedEvents", ITmfEventRequest
.ALL_DATA
, request
.getNbRequested());
118 assertFalse("isCompleted", request
.isCompleted());
119 assertFalse("isFailed", request
.isFailed());
120 assertFalse("isCancelled", request
.isCancelled());
122 assertEquals("getNbRead", 0, request
.getNbRead());
126 public void testTmfEventRequestTimeRange() {
127 TmfTimeRange range
= new TmfTimeRange(new TmfTimestamp(), TmfTimestamp
.BIG_CRUNCH
);
128 TmfEventRequest request
= new TmfEventRequestStub(ITmfEvent
.class, range
);
130 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
131 assertEquals("getDataType", ITmfEvent
.class, request
.getDataType());
133 assertEquals("StartTime", new TmfTimestamp(), request
.getRange().getStartTime());
134 assertEquals("EndTime", TmfTimestamp
.BIG_CRUNCH
, request
.getRange().getEndTime());
136 assertEquals("getIndex", 0, request
.getIndex());
137 assertEquals("getNbRequestedEvents", ITmfEventRequest
.ALL_DATA
, request
.getNbRequested());
139 assertFalse("isCompleted", request
.isCompleted());
140 assertFalse("isFailed", request
.isFailed());
141 assertFalse("isCancelled", request
.isCancelled());
143 assertEquals("getNbRead", 0, request
.getNbRead());
147 public void testTmfEventRequestTimeRangeNbRequested() {
148 TmfTimeRange range
= new TmfTimeRange(new TmfTimestamp(), TmfTimestamp
.BIG_CRUNCH
);
149 TmfEventRequest request
= new TmfEventRequestStub(ITmfEvent
.class, range
, 100);
151 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
152 assertEquals("getDataType", ITmfEvent
.class, request
.getDataType());
154 assertEquals("StartTime", new TmfTimestamp(), request
.getRange().getStartTime());
155 assertEquals("EndTime", TmfTimestamp
.BIG_CRUNCH
, request
.getRange().getEndTime());
157 assertEquals("getIndex", 0, request
.getIndex());
158 assertEquals("getNbRequestedEvents", 100, request
.getNbRequested());
160 assertFalse("isCompleted", request
.isCompleted());
161 assertFalse("isFailed", request
.isFailed());
162 assertFalse("isCancelled", request
.isCancelled());
164 assertEquals("getNbRead", 0, request
.getNbRead());
168 public void testTmfEventRequestTimeRangeNbRequestedBlocksize() {
169 TmfTimeRange range
= new TmfTimeRange(new TmfTimestamp(), TmfTimestamp
.BIG_CRUNCH
);
170 TmfEventRequest request
= new TmfEventRequestStub(ITmfEvent
.class, range
, 100, 200);
172 assertEquals("getRequestId", fRequestCount
++, request
.getRequestId());
173 assertEquals("getDataType", ITmfEvent
.class, request
.getDataType());
175 assertEquals("StartTime", new TmfTimestamp(), request
.getRange().getStartTime());
176 assertEquals("EndTime", TmfTimestamp
.BIG_CRUNCH
, request
.getRange().getEndTime());
178 assertEquals("getIndex", 0, request
.getIndex());
179 assertEquals("getNbRequestedEvents", 100, request
.getNbRequested());
181 assertFalse("isCompleted", request
.isCompleted());
182 assertFalse("isFailed", request
.isFailed());
183 assertFalse("isCancelled", request
.isCancelled());
185 assertEquals("getNbRead", 0, request
.getNbRead());
188 // ------------------------------------------------------------------------
190 // ------------------------------------------------------------------------
193 public void testEqualsReflexivity() {
194 assertTrue("equals", fRequest1
.equals(fRequest1
));
195 assertTrue("equals", fRequest2
.equals(fRequest2
));
197 assertFalse("equals", fRequest1
.equals(fRequest2
));
198 assertFalse("equals", fRequest2
.equals(fRequest1
));
202 public void testEqualsSymmetry() {
203 assertTrue("equals", fRequest1
.equals(fRequest1b
));
204 assertTrue("equals", fRequest1b
.equals(fRequest1
));
206 assertFalse("equals", fRequest1
.equals(fRequest3
));
207 assertFalse("equals", fRequest2
.equals(fRequest3
));
208 assertFalse("equals", fRequest3
.equals(fRequest1
));
209 assertFalse("equals", fRequest3
.equals(fRequest2
));
213 public void testEqualsTransivity() {
214 assertTrue("equals", fRequest1
.equals(fRequest1b
));
215 assertTrue("equals", fRequest1b
.equals(fRequest1c
));
216 assertTrue("equals", fRequest1
.equals(fRequest1c
));
220 public void testEqualsNull() {
221 assertFalse("equals", fRequest1
.equals(null));
222 assertFalse("equals", fRequest2
.equals(null));
225 // ------------------------------------------------------------------------
227 // ------------------------------------------------------------------------
230 public void testHashCode() {
231 assertTrue("hashCode", fRequest1
.hashCode() == fRequest1
.hashCode());
232 assertTrue("hashCode", fRequest2
.hashCode() == fRequest2
.hashCode());
233 assertTrue("hashCode", fRequest1
.hashCode() != fRequest2
.hashCode());
236 // ------------------------------------------------------------------------
238 // ------------------------------------------------------------------------
241 public void testToString() {
242 String expected1
= "[TmfEventRequestStub(0,ITmfEvent,FOREGROUND," + range1
+ ",0,100)]";
243 String expected2
= "[TmfEventRequestStub(1,ITmfEvent,FOREGROUND," + range2
+ ",0,100)]";
244 String expected3
= "[TmfEventRequestStub(2,ITmfEvent,FOREGROUND," + range2
+ ",0,200)]";
245 String expected4
= "[TmfEventRequestStub(3,ITmfEvent,FOREGROUND," + range2
+ ",0,200)]";
247 assertEquals("toString", expected1
, fRequest1
.toString());
248 assertEquals("toString", expected2
, fRequest2
.toString());
249 assertEquals("toString", expected3
, fRequest3
.toString());
250 assertEquals("toString", expected4
, fRequest4
.toString());
253 // ------------------------------------------------------------------------
255 // ------------------------------------------------------------------------
258 public void testDone() {
259 final boolean[] flags
= new boolean[4];
260 TmfEventRequest request
= setupTestRequest(flags
);
263 assertTrue("isCompleted", request
.isCompleted());
264 assertFalse("isFailed", request
.isFailed());
265 assertFalse("isCancelled", request
.isCancelled());
267 assertTrue("handleCompleted", flags
[0]);
268 assertTrue("handleSuccess", flags
[1]);
269 assertFalse("handleFailure", flags
[2]);
270 assertFalse("handleCancel", flags
[3]);
273 // ------------------------------------------------------------------------
275 // ------------------------------------------------------------------------
278 public void testFail() {
279 final boolean[] flags
= new boolean[4];
280 TmfEventRequest request
= setupTestRequest(flags
);
283 assertTrue("isCompleted", request
.isCompleted());
284 assertTrue("isFailed", request
.isFailed());
285 assertFalse("isCancelled", request
.isCancelled());
287 assertTrue("handleCompleted", flags
[0]);
288 assertFalse("handleSuccess", flags
[1]);
289 assertTrue("handleFailure", flags
[2]);
290 assertFalse("handleCancel", flags
[3]);
293 // ------------------------------------------------------------------------
295 // ------------------------------------------------------------------------
298 public void testCancel() {
299 final boolean[] flags
= new boolean[4];
300 TmfEventRequest request
= setupTestRequest(flags
);
303 assertTrue("isCompleted", request
.isCompleted());
304 assertFalse("isFailed", request
.isFailed());
305 assertTrue("isCancelled", request
.isCancelled());
307 assertTrue("handleCompleted", flags
[0]);
308 assertFalse("handleSuccess", flags
[1]);
309 assertFalse("handleFailure", flags
[2]);
310 assertTrue("handleCancel", flags
[3]);