1 /*******************************************************************************
2 * Copyright (c) 2009, 2014 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 * Francois Chouinard - Adjusted for new Event Model
12 * Alexandre Montplaisir - Port to JUnit4
13 *******************************************************************************/
15 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.event
;
17 import static org
.junit
.Assert
.assertEquals
;
18 import static org
.junit
.Assert
.assertFalse
;
19 import static org
.junit
.Assert
.assertNotNull
;
20 import static org
.junit
.Assert
.assertNull
;
21 import static org
.junit
.Assert
.assertTrue
;
23 import org
.eclipse
.jdt
.annotation
.NonNull
;
24 import org
.eclipse
.tracecompass
.tmf
.core
.event
.ITmfEvent
;
25 import org
.eclipse
.tracecompass
.tmf
.core
.event
.ITmfEventField
;
26 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEvent
;
27 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEventField
;
28 import org
.eclipse
.tracecompass
.tmf
.core
.event
.TmfEventType
;
29 import org
.eclipse
.tracecompass
.tmf
.core
.tests
.shared
.TmfTestTrace
;
30 import org
.eclipse
.tracecompass
.tmf
.core
.timestamp
.TmfTimestamp
;
31 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfContext
;
32 import org
.eclipse
.tracecompass
.tmf
.core
.trace
.ITmfTrace
;
33 import org
.junit
.After
;
34 import org
.junit
.Test
;
37 * Test suite for the TmfEvent class.
39 @SuppressWarnings("javadoc")
40 public class TmfEventTest
{
42 /** A trace to associate events with */
43 private static final TmfTestTrace STUB_TRACE
= TmfTestTrace
.A_TEST_10K
;
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
49 private final @NonNull ITmfTrace fTrace
= STUB_TRACE
.getTrace();
51 private final String fTypeId
= "TestType";
52 private final String fLabel1
= "AString";
53 private final String fLabel2
= "AnInteger";
54 private final String
[] fLabels
= new String
[] { fLabel1
, fLabel2
};
55 private final TmfEventType fType
= new TmfEventType(fTypeId
, TmfEventField
.makeRoot(fLabels
));
57 private final Object fValue1a
= "Some string";
58 private final Object fValue1b
= Integer
.valueOf(10);
59 private final ITmfEventField fField1a
= new TmfEventField(fLabel1
, fValue1a
, null);
60 private final ITmfEventField fField1b
= new TmfEventField(fLabel2
, fValue1b
, null);
61 private final ITmfEventField
[] fFields1
= new ITmfEventField
[] { fField1a
, fField1b
};
62 private final String fRawContent1
= fField1a
.toString() + fField1b
.toString();
63 private final ITmfEventField fContent1
= new TmfEventField(fRawContent1
, null, fFields1
);
64 private final TmfTimestamp fTimestamp1
= new TmfTimestamp(12345, 2);
65 private final @NonNull ITmfEvent fEvent1
= new TmfEvent(fTrace
, 0, fTimestamp1
, fType
, fContent1
);
67 private final Object fValue2a
= "Another string";
68 private final Object fValue2b
= Integer
.valueOf(-4);
69 private final ITmfEventField fField2a
= new TmfEventField(fLabel1
, fValue2a
, null);
70 private final ITmfEventField fField2b
= new TmfEventField(fLabel2
, fValue2b
, null);
71 private final ITmfEventField
[] fFields2
= new ITmfEventField
[] { fField2a
, fField2b
};
72 private final String fRawContent2
= fField2a
.toString() + fField2b
.toString();
73 private final ITmfEventField fContent2
= new TmfEventField(fRawContent2
, null, fFields2
);
74 private final TmfTimestamp fTimestamp2
= new TmfTimestamp(12350, 2);
75 private final @NonNull ITmfEvent fEvent2
= new TmfEvent(fTrace
, 1, fTimestamp2
, fType
, fContent2
);
77 // ------------------------------------------------------------------------
79 // ------------------------------------------------------------------------
82 public void disposeTrace() {
86 // ------------------------------------------------------------------------
88 // ------------------------------------------------------------------------
91 public void testDefaultConstructor() {
92 final ITmfEvent event
= new TmfEvent(fTrace
, ITmfContext
.UNKNOWN_RANK
, null, null, null);
93 assertNotNull("getTrace", event
.getTrace());
94 assertEquals("getRank", ITmfContext
.UNKNOWN_RANK
, event
.getRank());
95 assertEquals("getTimestamp", TmfTimestamp
.ZERO
, event
.getTimestamp());
96 assertNull("getType", event
.getType());
97 assertNull("getContent", event
.getContent());
101 public void testFullConstructor() {
102 assertNotNull("getTrace", fEvent1
.getTrace());
103 assertEquals("getRank", 0, fEvent1
.getRank());
104 assertEquals("getTimestamp", fTimestamp1
, fEvent1
.getTimestamp());
105 assertEquals("getType", fType
, fEvent1
.getType());
106 assertEquals("getContent", fContent1
, fEvent1
.getContent());
108 assertNotNull("getTrace", fEvent2
.getTrace());
109 assertEquals("getRank", 1, fEvent2
.getRank());
110 assertEquals("getTimestamp", fTimestamp2
, fEvent2
.getTimestamp());
111 assertEquals("getType", fType
, fEvent2
.getType());
112 assertEquals("getContent", fContent2
, fEvent2
.getContent());
116 public void testNoRankConstructor() {
117 final ITmfEvent event
= new TmfEvent(fTrace
, ITmfContext
.UNKNOWN_RANK
, fTimestamp1
, fType
, fContent1
);
118 assertNotNull("getTrace", event
.getTrace());
119 assertEquals("getRank", ITmfContext
.UNKNOWN_RANK
, event
.getRank());
120 assertEquals("getTimestamp", fTimestamp1
, event
.getTimestamp());
121 assertEquals("getType", fType
, event
.getType());
122 assertEquals("getContent", fContent1
, event
.getContent());
126 public void testConstructorWithTrace() {
127 final ITmfTrace trace
= fTrace
;
128 final ITmfEvent event
= new TmfEvent(trace
, 0, fTimestamp1
, fType
, fContent1
);
129 assertNotNull("getTrace", event
.getTrace());
130 assertEquals("getRank", 0, event
.getRank());
131 assertEquals("getTimestamp", fTimestamp1
, event
.getTimestamp());
132 assertEquals("getType", fType
, event
.getType());
133 assertEquals("getContent", fContent1
, event
.getContent());
138 public void testTmfEventCopy() {
139 final ITmfEvent event
= new TmfEvent(fEvent1
);
140 assertNotNull("getTrace", event
.getTrace());
141 assertEquals("getRank", 0, event
.getRank());
142 assertEquals("getTimestamp", fTimestamp1
, event
.getTimestamp());
143 assertEquals("getType", fType
, event
.getType());
144 assertEquals("getContent", fContent1
, event
.getContent());
147 // ------------------------------------------------------------------------
149 // ------------------------------------------------------------------------
152 public void testHashCode() {
153 ITmfEvent event1
= new TmfEvent(fTrace
, ITmfContext
.UNKNOWN_RANK
, null, null, null);
154 ITmfEvent event2
= new TmfEvent(fTrace
, ITmfContext
.UNKNOWN_RANK
, null, null, null);
156 assertTrue("hashCode", event1
.hashCode() == event2
.hashCode());
158 final ITmfTrace trace
= fTrace
;
159 event1
= new TmfEvent(trace
, 0, fTimestamp1
, fType
, fContent1
);
160 event2
= new TmfEvent(trace
, 1, fTimestamp2
, fType
, fContent2
);
161 final ITmfEvent event1b
= new TmfEvent(event1
);
162 final ITmfEvent event2b
= new TmfEvent(event2
);
164 assertTrue("hashCode", event1
.hashCode() == event1b
.hashCode());
165 assertTrue("hashCode", event2
.hashCode() == event2b
.hashCode());
167 assertTrue("hashCode", event1
.hashCode() != event2
.hashCode());
168 assertTrue("hashCode", event2
.hashCode() != event1
.hashCode());
173 // ------------------------------------------------------------------------
175 // ------------------------------------------------------------------------
178 public void testEqualsReflexivity() {
179 assertTrue("equals", fEvent1
.equals(fEvent1
));
180 assertTrue("equals", fEvent2
.equals(fEvent2
));
182 assertFalse("equals", fEvent1
.equals(fEvent2
));
183 assertFalse("equals", fEvent2
.equals(fEvent1
));
187 public void testEqualsSymmetry() {
188 final ITmfEvent event1
= new TmfEvent(fEvent1
);
189 final ITmfEvent event2
= new TmfEvent(fEvent2
);
191 assertTrue("equals", event1
.equals(fEvent1
));
192 assertTrue("equals", fEvent1
.equals(event1
));
194 assertTrue("equals", event2
.equals(fEvent2
));
195 assertTrue("equals", fEvent2
.equals(event2
));
199 public void testEqualsTransivity() {
200 final ITmfEvent event1
= new TmfEvent(fEvent1
);
201 final ITmfEvent event2
= new TmfEvent(fEvent1
);
202 final ITmfEvent event3
= new TmfEvent(fEvent1
);
204 assertTrue("equals", event1
.equals(event2
));
205 assertTrue("equals", event2
.equals(event3
));
206 assertTrue("equals", event1
.equals(event3
));
210 public void testEqualsNull() {
211 assertFalse("equals", fEvent1
.equals(null));
212 assertFalse("equals", fEvent2
.equals(null));
216 public void testNonEqualClasses() {
217 assertFalse("equals", fEvent1
.equals(fEvent1
.getType()));
218 assertFalse("equals", fEvent1
.equals(null));
222 public void testNonEqualTraces() {
223 final ITmfTrace trace1
= fTrace
;
224 final ITmfTrace trace2
= STUB_TRACE
.getTrace();
226 final ITmfEvent event1
= new TmfEvent(trace1
, 0, fTimestamp1
, fType
, fContent1
);
227 ITmfEvent event2
= new TmfEvent(trace1
, 0, fTimestamp1
, fType
, fContent1
);
228 assertTrue("equals", event1
.equals(event2
));
229 assertTrue("equals", event2
.equals(event1
));
231 event2
= new TmfEvent(trace2
, 0, fTimestamp1
, fType
, fContent1
);
232 assertFalse("equals", event1
.equals(event2
));
233 assertFalse("equals", event2
.equals(event1
));
239 public void testNonEqualRanks() {
240 final ITmfEvent event1
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
241 ITmfEvent event2
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
242 assertTrue("equals", event1
.equals(event2
));
243 assertTrue("equals", event2
.equals(event1
));
245 event2
= new TmfEvent(null, 1, fTimestamp1
, fType
, fContent1
);
246 assertFalse("equals", event1
.equals(event2
));
247 assertFalse("equals", event2
.equals(event1
));
251 public void testNonEqualTimestamps() {
252 final ITmfEvent event1
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
253 ITmfEvent event2
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
254 assertTrue("equals", event1
.equals(event2
));
255 assertTrue("equals", event2
.equals(event1
));
257 event2
= new TmfEvent(null, 0, fTimestamp2
, fType
, fContent1
);
258 assertFalse("equals", event1
.equals(event2
));
259 assertFalse("equals", event2
.equals(event1
));
261 event2
= new TmfEvent(null, 0, null, fType
, fContent1
);
262 assertFalse("equals", event1
.equals(event2
));
263 assertFalse("equals", event2
.equals(event1
));
267 public void testNonEqualTypes() {
268 final ITmfEvent event1
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
269 ITmfEvent event2
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
270 assertTrue("equals", event1
.equals(event2
));
271 assertTrue("equals", event2
.equals(event1
));
273 final String typeId
= "OtherTestType";
274 final String
[] labels
= new String
[] { fLabel2
, fLabel1
};
275 final TmfEventType newType
= new TmfEventType(typeId
, TmfEventField
.makeRoot(labels
));
277 event2
= new TmfEvent(null, 0, fTimestamp1
, newType
, fContent1
);
278 assertFalse("equals", event1
.equals(event2
));
279 assertFalse("equals", event2
.equals(event1
));
281 event2
= new TmfEvent(null, 0, fTimestamp1
, null, fContent1
);
282 assertFalse("equals", event1
.equals(event2
));
283 assertFalse("equals", event2
.equals(event1
));
287 public void testNonEqualContents() {
288 final ITmfEvent event1
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
289 ITmfEvent event2
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent1
);
290 assertTrue("equals", event1
.equals(event2
));
291 assertTrue("equals", event2
.equals(event1
));
293 event2
= new TmfEvent(null, 0, fTimestamp1
, fType
, fContent2
);
294 assertFalse("equals", event1
.equals(event2
));
295 assertFalse("equals", event2
.equals(event1
));
297 event2
= new TmfEvent(null, 0, fTimestamp1
, fType
, null);
298 assertFalse("equals", event1
.equals(event2
));
299 assertFalse("equals", event2
.equals(event1
));
302 // ------------------------------------------------------------------------
304 // ------------------------------------------------------------------------
307 public void testToString() {
308 final String expected1
= "TmfEvent [fTimestamp=" + fTimestamp1
+ ", fTrace=" + fTrace
+
309 ", fRank=0, fType=" + fType
+ ", fContent=" + fContent1
+ "]";
310 assertEquals("toString", expected1
, fEvent1
.toString());
312 final String expected2
= "TmfEvent [fTimestamp=" + fTimestamp2
+ ", fTrace=" + fTrace
+
313 ", fRank=1, fType=" + fType
+ ", fContent=" + fContent2
+ "]";
314 assertEquals("toString", expected2
, fEvent2
.toString());
318 * Test the .toString() with extended classes.
319 * It should print the correct class name.
322 public void testToStringExtended() {
323 class ExtendedEvent
extends TmfEvent
{
324 ExtendedEvent(@NonNull ITmfEvent event
) {
328 ExtendedEvent event
= new ExtendedEvent(fEvent1
);
329 String expected
= "ExtendedEvent [fTimestamp=" + fTimestamp1
330 + ", fTrace=" + fTrace
+ ", fRank=0"
331 + ", fType=" + fType
+ ", fContent=" + fContent1
+ "]";
333 assertEquals(expected
, event
.toString());
This page took 0.041511 seconds and 5 git commands to generate.