Fix some null warnings
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / event / TmfEventTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
ed902a2b 2 * Copyright (c) 2009, 2014 Ericsson
54a7a54c 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
54a7a54c 8 *
d18dd09b
ASL
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
39f9eadb 11 * Francois Chouinard - Adjusted for new Event Model
6e1886bc 12 * Alexandre Montplaisir - Port to JUnit4
d18dd09b
ASL
13 *******************************************************************************/
14
2bdf0193 15package org.eclipse.tracecompass.tmf.core.tests.event;
d18dd09b 16
6e1886bc
AM
17import static org.junit.Assert.assertEquals;
18import static org.junit.Assert.assertFalse;
19import static org.junit.Assert.assertNotNull;
20import static org.junit.Assert.assertNull;
21import static org.junit.Assert.assertTrue;
6e1886bc 22
ca5b04ad 23import org.eclipse.jdt.annotation.NonNull;
2bdf0193
AM
24import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
25import org.eclipse.tracecompass.tmf.core.event.ITmfEventField;
2bdf0193
AM
26import org.eclipse.tracecompass.tmf.core.event.TmfEvent;
27import org.eclipse.tracecompass.tmf.core.event.TmfEventField;
28import org.eclipse.tracecompass.tmf.core.event.TmfEventType;
2bdf0193
AM
29import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace;
30import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
31import org.eclipse.tracecompass.tmf.core.trace.ITmfContext;
32import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
ca5b04ad 33import org.junit.After;
6e1886bc 34import org.junit.Test;
d18dd09b
ASL
35
36/**
cbd4ad82 37 * Test suite for the TmfEvent class.
d18dd09b 38 */
cad06250 39@SuppressWarnings("javadoc")
6e1886bc 40public class TmfEventTest {
d18dd09b 41
ca5b04ad
GB
42 /** A trace to associate events with */
43 private static final TmfTestTrace STUB_TRACE = TmfTestTrace.A_TEST_10K;
44
39f9eadb
FC
45 // ------------------------------------------------------------------------
46 // Variables
47 // ------------------------------------------------------------------------
48
ca5b04ad 49 private final @NonNull ITmfTrace fTrace = STUB_TRACE.getTrace();
39f9eadb 50
aa353506 51 private final @NonNull String fTypeId = "TestType";
fafdd006
AM
52 private final @NonNull String fLabel1 = "AString";
53 private final @NonNull String fLabel2 = "AnInteger";
39f9eadb 54 private final String[] fLabels = new String[] { fLabel1, fLabel2 };
e600c338 55 private final TmfEventType fType = new TmfEventType(fTypeId, TmfEventField.makeRoot(fLabels));
39f9eadb
FC
56
57 private final Object fValue1a = "Some string";
58 private final Object fValue1b = Integer.valueOf(10);
214cc822
AM
59 private final ITmfEventField fField1a = new TmfEventField(fLabel1, fValue1a, null);
60 private final ITmfEventField fField1b = new TmfEventField(fLabel2, fValue1b, null);
39f9eadb 61 private final ITmfEventField[] fFields1 = new ITmfEventField[] { fField1a, fField1b };
fafdd006 62 private final @NonNull String fRawContent1 = fField1a.toString() + fField1b.toString();
214cc822 63 private final ITmfEventField fContent1 = new TmfEventField(fRawContent1, null, fFields1);
065cc19b 64 private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, 2);
e1de2fd4 65 private final @NonNull ITmfEvent fEvent1 = new TmfEvent(fTrace, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
66
67 private final Object fValue2a = "Another string";
68 private final Object fValue2b = Integer.valueOf(-4);
214cc822
AM
69 private final ITmfEventField fField2a = new TmfEventField(fLabel1, fValue2a, null);
70 private final ITmfEventField fField2b = new TmfEventField(fLabel2, fValue2b, null);
39f9eadb 71 private final ITmfEventField[] fFields2 = new ITmfEventField[] { fField2a, fField2b };
fafdd006 72 private final @NonNull String fRawContent2 = fField2a.toString() + fField2b.toString();
214cc822 73 private final ITmfEventField fContent2 = new TmfEventField(fRawContent2, null, fFields2);
065cc19b 74 private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, 2);
e1de2fd4 75 private final @NonNull ITmfEvent fEvent2 = new TmfEvent(fTrace, 1, fTimestamp2, fType, fContent2);
39f9eadb 76
39f9eadb
FC
77 // ------------------------------------------------------------------------
78 // Helper functions
79 // ------------------------------------------------------------------------
80
ca5b04ad
GB
81 @After
82 public void disposeTrace() {
83 fTrace.dispose();
39f9eadb
FC
84 }
85
86 // ------------------------------------------------------------------------
87 // Constructors
88 // ------------------------------------------------------------------------
89
6e1886bc 90 @Test
39f9eadb 91 public void testDefaultConstructor() {
e1de2fd4 92 final ITmfEvent event = new TmfEvent(fTrace, ITmfContext.UNKNOWN_RANK, null, null, null);
ca5b04ad 93 assertNotNull("getTrace", event.getTrace());
9b749023 94 assertEquals("getRank", ITmfContext.UNKNOWN_RANK, event.getRank());
cbf0057c 95 assertEquals("getTimestamp", TmfTimestamp.ZERO, event.getTimestamp());
39f9eadb
FC
96 assertNull("getType", event.getType());
97 assertNull("getContent", event.getContent());
39f9eadb
FC
98 }
99
6e1886bc 100 @Test
39f9eadb 101 public void testFullConstructor() {
ca5b04ad 102 assertNotNull("getTrace", fEvent1.getTrace());
39f9eadb
FC
103 assertEquals("getRank", 0, fEvent1.getRank());
104 assertEquals("getTimestamp", fTimestamp1, fEvent1.getTimestamp());
39f9eadb
FC
105 assertEquals("getType", fType, fEvent1.getType());
106 assertEquals("getContent", fContent1, fEvent1.getContent());
39f9eadb 107
ca5b04ad 108 assertNotNull("getTrace", fEvent2.getTrace());
39f9eadb
FC
109 assertEquals("getRank", 1, fEvent2.getRank());
110 assertEquals("getTimestamp", fTimestamp2, fEvent2.getTimestamp());
39f9eadb
FC
111 assertEquals("getType", fType, fEvent2.getType());
112 assertEquals("getContent", fContent2, fEvent2.getContent());
39f9eadb
FC
113 }
114
6e1886bc 115 @Test
39f9eadb 116 public void testNoRankConstructor() {
e1de2fd4 117 final ITmfEvent event = new TmfEvent(fTrace, ITmfContext.UNKNOWN_RANK, fTimestamp1, fType, fContent1);
ca5b04ad 118 assertNotNull("getTrace", event.getTrace());
9b749023 119 assertEquals("getRank", ITmfContext.UNKNOWN_RANK, event.getRank());
39f9eadb 120 assertEquals("getTimestamp", fTimestamp1, event.getTimestamp());
39f9eadb
FC
121 assertEquals("getType", fType, event.getType());
122 assertEquals("getContent", fContent1, event.getContent());
39f9eadb
FC
123 }
124
6e1886bc 125 @Test
39f9eadb 126 public void testConstructorWithTrace() {
ca5b04ad 127 final ITmfTrace trace = fTrace;
e1de2fd4 128 final ITmfEvent event = new TmfEvent(trace, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
129 assertNotNull("getTrace", event.getTrace());
130 assertEquals("getRank", 0, event.getRank());
131 assertEquals("getTimestamp", fTimestamp1, event.getTimestamp());
39f9eadb
FC
132 assertEquals("getType", fType, event.getType());
133 assertEquals("getContent", fContent1, event.getContent());
39f9eadb
FC
134 trace.dispose();
135 }
136
6e1886bc 137 @Test
39f9eadb 138 public void testTmfEventCopy() {
2771b032 139 final ITmfEvent event = new TmfEvent(fEvent1);
ca5b04ad 140 assertNotNull("getTrace", event.getTrace());
39f9eadb
FC
141 assertEquals("getRank", 0, event.getRank());
142 assertEquals("getTimestamp", fTimestamp1, event.getTimestamp());
39f9eadb
FC
143 assertEquals("getType", fType, event.getType());
144 assertEquals("getContent", fContent1, event.getContent());
39f9eadb
FC
145 }
146
39f9eadb
FC
147 // ------------------------------------------------------------------------
148 // hashCode
149 // ------------------------------------------------------------------------
150
6e1886bc 151 @Test
54a7a54c 152 public void testHashCode() {
e1de2fd4
AM
153 ITmfEvent event1 = new TmfEvent(fTrace, ITmfContext.UNKNOWN_RANK, null, null, null);
154 ITmfEvent event2 = new TmfEvent(fTrace, ITmfContext.UNKNOWN_RANK, null, null, null);
085d898f 155
39f9eadb
FC
156 assertTrue("hashCode", event1.hashCode() == event2.hashCode());
157
ca5b04ad 158 final ITmfTrace trace = fTrace;
e1de2fd4
AM
159 event1 = new TmfEvent(trace, 0, fTimestamp1, fType, fContent1);
160 event2 = new TmfEvent(trace, 1, fTimestamp2, fType, fContent2);
2771b032
AM
161 final ITmfEvent event1b = new TmfEvent(event1);
162 final ITmfEvent event2b = new TmfEvent(event2);
39f9eadb
FC
163
164 assertTrue("hashCode", event1.hashCode() == event1b.hashCode());
165 assertTrue("hashCode", event2.hashCode() == event2b.hashCode());
166
167 assertTrue("hashCode", event1.hashCode() != event2.hashCode());
168 assertTrue("hashCode", event2.hashCode() != event1.hashCode());
085d898f 169
39f9eadb
FC
170 trace.dispose();
171 }
172
173 // ------------------------------------------------------------------------
174 // equals
175 // ------------------------------------------------------------------------
176
6e1886bc 177 @Test
54a7a54c 178 public void testEqualsReflexivity() {
39f9eadb
FC
179 assertTrue("equals", fEvent1.equals(fEvent1));
180 assertTrue("equals", fEvent2.equals(fEvent2));
181
182 assertFalse("equals", fEvent1.equals(fEvent2));
183 assertFalse("equals", fEvent2.equals(fEvent1));
184 }
185
6e1886bc 186 @Test
54a7a54c 187 public void testEqualsSymmetry() {
2771b032
AM
188 final ITmfEvent event1 = new TmfEvent(fEvent1);
189 final ITmfEvent event2 = new TmfEvent(fEvent2);
39f9eadb
FC
190
191 assertTrue("equals", event1.equals(fEvent1));
192 assertTrue("equals", fEvent1.equals(event1));
193
194 assertTrue("equals", event2.equals(fEvent2));
195 assertTrue("equals", fEvent2.equals(event2));
196 }
197
6e1886bc 198 @Test
54a7a54c 199 public void testEqualsTransivity() {
2771b032
AM
200 final ITmfEvent event1 = new TmfEvent(fEvent1);
201 final ITmfEvent event2 = new TmfEvent(fEvent1);
202 final ITmfEvent event3 = new TmfEvent(fEvent1);
39f9eadb
FC
203
204 assertTrue("equals", event1.equals(event2));
205 assertTrue("equals", event2.equals(event3));
206 assertTrue("equals", event1.equals(event3));
207 }
208
6e1886bc 209 @Test
54a7a54c 210 public void testEqualsNull() {
39f9eadb
FC
211 assertFalse("equals", fEvent1.equals(null));
212 assertFalse("equals", fEvent2.equals(null));
213 }
214
6e1886bc 215 @Test
54a7a54c 216 public void testNonEqualClasses() {
39f9eadb
FC
217 assertFalse("equals", fEvent1.equals(fEvent1.getType()));
218 assertFalse("equals", fEvent1.equals(null));
219 }
085d898f 220
6e1886bc 221 @Test
54a7a54c 222 public void testNonEqualTraces() {
ca5b04ad
GB
223 final ITmfTrace trace1 = fTrace;
224 final ITmfTrace trace2 = STUB_TRACE.getTrace();
39f9eadb 225
e1de2fd4
AM
226 final ITmfEvent event1 = new TmfEvent(trace1, 0, fTimestamp1, fType, fContent1);
227 ITmfEvent event2 = new TmfEvent(trace1, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
228 assertTrue("equals", event1.equals(event2));
229 assertTrue("equals", event2.equals(event1));
230
e1de2fd4 231 event2 = new TmfEvent(trace2, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
232 assertFalse("equals", event1.equals(event2));
233 assertFalse("equals", event2.equals(event1));
234
39f9eadb
FC
235 trace2.dispose();
236 }
085d898f 237
6e1886bc 238 @Test
54a7a54c 239 public void testNonEqualRanks() {
e1de2fd4
AM
240 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
241 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
242 assertTrue("equals", event1.equals(event2));
243 assertTrue("equals", event2.equals(event1));
244
e1de2fd4 245 event2 = new TmfEvent(null, 1, fTimestamp1, fType, fContent1);
39f9eadb
FC
246 assertFalse("equals", event1.equals(event2));
247 assertFalse("equals", event2.equals(event1));
248 }
085d898f 249
6e1886bc 250 @Test
54a7a54c 251 public void testNonEqualTimestamps() {
e1de2fd4
AM
252 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
253 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
254 assertTrue("equals", event1.equals(event2));
255 assertTrue("equals", event2.equals(event1));
256
e1de2fd4 257 event2 = new TmfEvent(null, 0, fTimestamp2, fType, fContent1);
39f9eadb
FC
258 assertFalse("equals", event1.equals(event2));
259 assertFalse("equals", event2.equals(event1));
260
e1de2fd4 261 event2 = new TmfEvent(null, 0, null, fType, fContent1);
39f9eadb
FC
262 assertFalse("equals", event1.equals(event2));
263 assertFalse("equals", event2.equals(event1));
264 }
085d898f 265
6e1886bc 266 @Test
54a7a54c 267 public void testNonEqualTypes() {
e1de2fd4
AM
268 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
269 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
270 assertTrue("equals", event1.equals(event2));
271 assertTrue("equals", event2.equals(event1));
272
085d898f
FC
273 final String typeId = "OtherTestType";
274 final String[] labels = new String[] { fLabel2, fLabel1 };
e600c338 275 final TmfEventType newType = new TmfEventType(typeId, TmfEventField.makeRoot(labels));
39f9eadb 276
e1de2fd4 277 event2 = new TmfEvent(null, 0, fTimestamp1, newType, fContent1);
39f9eadb
FC
278 assertFalse("equals", event1.equals(event2));
279 assertFalse("equals", event2.equals(event1));
280
e1de2fd4 281 event2 = new TmfEvent(null, 0, fTimestamp1, null, fContent1);
39f9eadb
FC
282 assertFalse("equals", event1.equals(event2));
283 assertFalse("equals", event2.equals(event1));
284 }
085d898f 285
6e1886bc 286 @Test
54a7a54c 287 public void testNonEqualContents() {
e1de2fd4
AM
288 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
289 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fType, fContent1);
39f9eadb
FC
290 assertTrue("equals", event1.equals(event2));
291 assertTrue("equals", event2.equals(event1));
292
e1de2fd4 293 event2 = new TmfEvent(null, 0, fTimestamp1, fType, fContent2);
39f9eadb
FC
294 assertFalse("equals", event1.equals(event2));
295 assertFalse("equals", event2.equals(event1));
296
e1de2fd4 297 event2 = new TmfEvent(null, 0, fTimestamp1, fType, null);
39f9eadb
FC
298 assertFalse("equals", event1.equals(event2));
299 assertFalse("equals", event2.equals(event1));
300 }
085d898f 301
39f9eadb
FC
302 // ------------------------------------------------------------------------
303 // toString
304 // ------------------------------------------------------------------------
305
6e1886bc 306 @Test
39f9eadb 307 public void testToString() {
e1de2fd4
AM
308 final String expected1 = "TmfEvent [fTimestamp=" + fTimestamp1 + ", fTrace=" + fTrace +
309 ", fRank=0, fType=" + fType + ", fContent=" + fContent1 + "]";
39f9eadb
FC
310 assertEquals("toString", expected1, fEvent1.toString());
311
e1de2fd4
AM
312 final String expected2 = "TmfEvent [fTimestamp=" + fTimestamp2 + ", fTrace=" + fTrace +
313 ", fRank=1, fType=" + fType + ", fContent=" + fContent2 + "]";
39f9eadb
FC
314 assertEquals("toString", expected2, fEvent2.toString());
315 }
d18dd09b 316
bd54d363
AM
317 /**
318 * Test the .toString() with extended classes.
319 * It should print the correct class name.
320 */
321 @Test
322 public void testToStringExtended() {
323 class ExtendedEvent extends TmfEvent {
ca5b04ad 324 ExtendedEvent(@NonNull ITmfEvent event) {
bd54d363
AM
325 super(event);
326 }
327 }
328 ExtendedEvent event = new ExtendedEvent(fEvent1);
329 String expected = "ExtendedEvent [fTimestamp=" + fTimestamp1
e1de2fd4
AM
330 + ", fTrace=" + fTrace + ", fRank=0"
331 + ", fType=" + fType + ", fContent=" + fContent1 + "]";
bd54d363
AM
332
333 assertEquals(expected, event.toString());
334 }
335
d18dd09b 336}
This page took 0.113709 seconds and 5 git commands to generate.