tmf: Axe the TmfEventTypeManager
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / event / TmfEventTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
61759503 2 * Copyright (c) 2009, 2013 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;
22import static org.junit.Assert.fail;
23
39f9eadb
FC
24import java.io.File;
25import java.io.IOException;
26import java.net.URISyntaxException;
27import java.net.URL;
28
39f9eadb
FC
29import org.eclipse.core.runtime.FileLocator;
30import org.eclipse.core.runtime.Path;
2bdf0193
AM
31import org.eclipse.tracecompass.tmf.core.event.ITmfEvent;
32import org.eclipse.tracecompass.tmf.core.event.ITmfEventField;
2bdf0193
AM
33import org.eclipse.tracecompass.tmf.core.event.TmfEvent;
34import org.eclipse.tracecompass.tmf.core.event.TmfEventField;
35import org.eclipse.tracecompass.tmf.core.event.TmfEventType;
36import org.eclipse.tracecompass.tmf.core.exceptions.TmfTraceException;
37import org.eclipse.tracecompass.tmf.core.tests.TmfCoreTestPlugin;
38import org.eclipse.tracecompass.tmf.core.tests.shared.TmfTestTrace;
39import org.eclipse.tracecompass.tmf.core.timestamp.TmfTimestamp;
40import org.eclipse.tracecompass.tmf.core.trace.ITmfContext;
41import org.eclipse.tracecompass.tmf.core.trace.ITmfTrace;
42import org.eclipse.tracecompass.tmf.tests.stubs.trace.TmfTraceStub;
6e1886bc 43import org.junit.Test;
d18dd09b
ASL
44
45/**
cbd4ad82 46 * Test suite for the TmfEvent class.
d18dd09b 47 */
cad06250 48@SuppressWarnings("javadoc")
6e1886bc 49public class TmfEventTest {
d18dd09b 50
39f9eadb
FC
51 // ------------------------------------------------------------------------
52 // Variables
53 // ------------------------------------------------------------------------
54
55 private final String fSource = "Source";
56
39f9eadb
FC
57 private final String fTypeId = "TestType";
58 private final String fLabel1 = "AString";
59 private final String fLabel2 = "AnInteger";
60 private final String[] fLabels = new String[] { fLabel1, fLabel2 };
e600c338 61 private final TmfEventType fType = new TmfEventType(fTypeId, TmfEventField.makeRoot(fLabels));
39f9eadb
FC
62
63 private final Object fValue1a = "Some string";
64 private final Object fValue1b = Integer.valueOf(10);
214cc822
AM
65 private final ITmfEventField fField1a = new TmfEventField(fLabel1, fValue1a, null);
66 private final ITmfEventField fField1b = new TmfEventField(fLabel2, fValue1b, null);
39f9eadb
FC
67 private final ITmfEventField[] fFields1 = new ITmfEventField[] { fField1a, fField1b };
68 private final String fRawContent1 = fField1a.toString() + fField1b.toString();
214cc822 69 private final ITmfEventField fContent1 = new TmfEventField(fRawContent1, null, fFields1);
39f9eadb
FC
70 private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, 2, 5);
71 private final String fReference1 = "Some reference";
de126dbb 72 private final ITmfEvent fEvent1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
73
74 private final Object fValue2a = "Another string";
75 private final Object fValue2b = Integer.valueOf(-4);
214cc822
AM
76 private final ITmfEventField fField2a = new TmfEventField(fLabel1, fValue2a, null);
77 private final ITmfEventField fField2b = new TmfEventField(fLabel2, fValue2b, null);
39f9eadb
FC
78 private final ITmfEventField[] fFields2 = new ITmfEventField[] { fField2a, fField2b };
79 private final String fRawContent2 = fField2a.toString() + fField2b.toString();
214cc822 80 private final ITmfEventField fContent2 = new TmfEventField(fRawContent2, null, fFields2);
39f9eadb
FC
81 private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, 2, 5);
82 private final String fReference2 = "Some other reference";
de126dbb 83 private final ITmfEvent fEvent2 = new TmfEvent(null, 1, fTimestamp2, fSource, fType, fContent2, fReference2);
39f9eadb 84
39f9eadb
FC
85 // ------------------------------------------------------------------------
86 // Helper functions
87 // ------------------------------------------------------------------------
88
9b749023 89 private static TmfTraceStub openTrace() {
39f9eadb
FC
90 TmfTraceStub trace = null;
91 try {
9c4d52ee 92 final URL location = FileLocator.find(TmfCoreTestPlugin.getDefault().getBundle(), new Path(TmfTestTrace.A_TEST_10K.getFullPath()), null);
085d898f 93 final File test = new File(FileLocator.toFileURL(location).toURI());
ab186fbb 94 trace = new TmfTraceStub(test.toURI().getPath(), 500, false, null);
b4f71e4a
FC
95 } catch (final TmfTraceException e) {
96 e.printStackTrace();
085d898f 97 } catch (final URISyntaxException e) {
39f9eadb 98 e.printStackTrace();
085d898f 99 } catch (final IOException e) {
39f9eadb
FC
100 e.printStackTrace();
101 }
102 return trace;
103 }
104
105 // ------------------------------------------------------------------------
106 // Constructors
107 // ------------------------------------------------------------------------
108
6e1886bc 109 @Test
39f9eadb 110 public void testDefaultConstructor() {
085d898f 111 final ITmfEvent event = new TmfEvent();
39f9eadb 112 assertNull("getTrace", event.getTrace());
9b749023 113 assertEquals("getRank", ITmfContext.UNKNOWN_RANK, event.getRank());
39f9eadb
FC
114 assertNull("getTimestamp", event.getTimestamp());
115 assertNull("getSource", event.getSource());
116 assertNull("getType", event.getType());
117 assertNull("getContent", event.getContent());
118 assertNull("getReference", event.getReference());
119 }
120
6e1886bc 121 @Test
39f9eadb
FC
122 public void testFullConstructor() {
123 assertNull("getTrace", fEvent1.getTrace());
124 assertEquals("getRank", 0, fEvent1.getRank());
125 assertEquals("getTimestamp", fTimestamp1, fEvent1.getTimestamp());
126 assertEquals("getSource", fSource, fEvent1.getSource());
127 assertEquals("getType", fType, fEvent1.getType());
128 assertEquals("getContent", fContent1, fEvent1.getContent());
129 assertEquals("getReference", fReference1, fEvent1.getReference());
130
131 assertNull("getTrace", fEvent2.getTrace());
132 assertEquals("getRank", 1, fEvent2.getRank());
133 assertEquals("getTimestamp", fTimestamp2, fEvent2.getTimestamp());
134 assertEquals("getSource", fSource, fEvent2.getSource());
135 assertEquals("getType", fType, fEvent2.getType());
136 assertEquals("getContent", fContent2, fEvent2.getContent());
137 assertEquals("getReference", fReference2, fEvent2.getReference());
138 }
139
6e1886bc 140 @Test
39f9eadb 141 public void testNoRankConstructor() {
2771b032 142 final ITmfEvent event = new TmfEvent(null, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb 143 assertNull("getTrace", event.getTrace());
9b749023 144 assertEquals("getRank", ITmfContext.UNKNOWN_RANK, event.getRank());
39f9eadb
FC
145 assertEquals("getTimestamp", fTimestamp1, event.getTimestamp());
146 assertEquals("getSource", fSource, event.getSource());
147 assertEquals("getType", fType, event.getType());
148 assertEquals("getContent", fContent1, event.getContent());
149 assertEquals("getReference", fReference1, event.getReference());
150 }
151
6e1886bc 152 @Test
39f9eadb 153 public void testConstructorWithTrace() {
6256d8ad 154 final ITmfTrace trace = openTrace();
2771b032 155 final ITmfEvent event = new TmfEvent(trace, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
156 assertNotNull("getTrace", event.getTrace());
157 assertEquals("getRank", 0, event.getRank());
158 assertEquals("getTimestamp", fTimestamp1, event.getTimestamp());
159 assertEquals("getSource", fSource, event.getSource());
160 assertEquals("getType", fType, event.getType());
161 assertEquals("getContent", fContent1, event.getContent());
162 assertEquals("getReference", fReference1, event.getReference());
163 trace.dispose();
164 }
165
6e1886bc 166 @Test
39f9eadb 167 public void testTmfEventCopy() {
2771b032 168 final ITmfEvent event = new TmfEvent(fEvent1);
39f9eadb
FC
169 assertNull("getTrace", event.getTrace());
170 assertEquals("getRank", 0, event.getRank());
171 assertEquals("getTimestamp", fTimestamp1, event.getTimestamp());
172 assertEquals("getSource", fSource, event.getSource());
173 assertEquals("getType", fType, event.getType());
174 assertEquals("getContent", fContent1, event.getContent());
175 assertEquals("getReference", fReference1, event.getReference());
176 }
177
6e1886bc 178 @Test
54a7a54c 179 public void testEventCopy2() {
39f9eadb
FC
180 try {
181 new TmfEvent(null);
182 fail("null copy");
085d898f 183 } catch (final IllegalArgumentException e) {
39f9eadb
FC
184 // Success
185 }
186 }
187
39f9eadb
FC
188 // ------------------------------------------------------------------------
189 // hashCode
190 // ------------------------------------------------------------------------
191
6e1886bc 192 @Test
54a7a54c 193 public void testHashCode() {
2771b032
AM
194 ITmfEvent event1 = new TmfEvent();
195 ITmfEvent event2 = new TmfEvent();
085d898f 196
39f9eadb
FC
197 assertTrue("hashCode", event1.hashCode() == event2.hashCode());
198
6256d8ad 199 final ITmfTrace trace = openTrace();
39f9eadb
FC
200 event1 = new TmfEvent(trace, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
201 event2 = new TmfEvent(trace, 1, fTimestamp2, fSource, fType, fContent2, fReference2);
2771b032
AM
202 final ITmfEvent event1b = new TmfEvent(event1);
203 final ITmfEvent event2b = new TmfEvent(event2);
39f9eadb
FC
204
205 assertTrue("hashCode", event1.hashCode() == event1b.hashCode());
206 assertTrue("hashCode", event2.hashCode() == event2b.hashCode());
207
208 assertTrue("hashCode", event1.hashCode() != event2.hashCode());
209 assertTrue("hashCode", event2.hashCode() != event1.hashCode());
085d898f 210
39f9eadb
FC
211 trace.dispose();
212 }
213
214 // ------------------------------------------------------------------------
215 // equals
216 // ------------------------------------------------------------------------
217
6e1886bc 218 @Test
54a7a54c 219 public void testEqualsReflexivity() {
39f9eadb
FC
220 assertTrue("equals", fEvent1.equals(fEvent1));
221 assertTrue("equals", fEvent2.equals(fEvent2));
222
223 assertFalse("equals", fEvent1.equals(fEvent2));
224 assertFalse("equals", fEvent2.equals(fEvent1));
225 }
226
6e1886bc 227 @Test
54a7a54c 228 public void testEqualsSymmetry() {
2771b032
AM
229 final ITmfEvent event1 = new TmfEvent(fEvent1);
230 final ITmfEvent event2 = new TmfEvent(fEvent2);
39f9eadb
FC
231
232 assertTrue("equals", event1.equals(fEvent1));
233 assertTrue("equals", fEvent1.equals(event1));
234
235 assertTrue("equals", event2.equals(fEvent2));
236 assertTrue("equals", fEvent2.equals(event2));
237 }
238
6e1886bc 239 @Test
54a7a54c 240 public void testEqualsTransivity() {
2771b032
AM
241 final ITmfEvent event1 = new TmfEvent(fEvent1);
242 final ITmfEvent event2 = new TmfEvent(fEvent1);
243 final ITmfEvent event3 = new TmfEvent(fEvent1);
39f9eadb
FC
244
245 assertTrue("equals", event1.equals(event2));
246 assertTrue("equals", event2.equals(event3));
247 assertTrue("equals", event1.equals(event3));
248 }
249
6e1886bc 250 @Test
54a7a54c 251 public void testEqualsNull() {
39f9eadb
FC
252 assertFalse("equals", fEvent1.equals(null));
253 assertFalse("equals", fEvent2.equals(null));
254 }
255
6e1886bc 256 @Test
54a7a54c 257 public void testNonEqualClasses() {
39f9eadb
FC
258 assertFalse("equals", fEvent1.equals(fEvent1.getType()));
259 assertFalse("equals", fEvent1.equals(null));
260 }
085d898f 261
6e1886bc 262 @Test
54a7a54c 263 public void testNonEqualTraces() {
6256d8ad
AM
264 final ITmfTrace trace1 = openTrace();
265 final ITmfTrace trace2 = openTrace();
39f9eadb 266
2771b032
AM
267 final ITmfEvent event1 = new TmfEvent(trace1, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
268 ITmfEvent event2 = new TmfEvent(trace1, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
269 assertTrue("equals", event1.equals(event2));
270 assertTrue("equals", event2.equals(event1));
271
272 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
273 assertFalse("equals", event1.equals(event2));
274 assertFalse("equals", event2.equals(event1));
085d898f 275
39f9eadb
FC
276 event2 = new TmfEvent(trace2, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
277 assertFalse("equals", event1.equals(event2));
278 assertFalse("equals", event2.equals(event1));
279
280 trace1.dispose();
281 trace2.dispose();
282 }
085d898f 283
6e1886bc 284 @Test
54a7a54c 285 public void testNonEqualRanks() {
2771b032
AM
286 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
287 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
288 assertTrue("equals", event1.equals(event2));
289 assertTrue("equals", event2.equals(event1));
290
291 event2 = new TmfEvent(null, 1, fTimestamp1, fSource, fType, fContent1, fReference1);
292 assertFalse("equals", event1.equals(event2));
293 assertFalse("equals", event2.equals(event1));
294 }
085d898f 295
6e1886bc 296 @Test
54a7a54c 297 public void testNonEqualTimestamps() {
2771b032
AM
298 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
299 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
300 assertTrue("equals", event1.equals(event2));
301 assertTrue("equals", event2.equals(event1));
302
303 event2 = new TmfEvent(null, 0, fTimestamp2, fSource, fType, fContent1, fReference1);
304 assertFalse("equals", event1.equals(event2));
305 assertFalse("equals", event2.equals(event1));
306
307 event2 = new TmfEvent(null, 0, null, fSource, fType, fContent1, fReference1);
308 assertFalse("equals", event1.equals(event2));
309 assertFalse("equals", event2.equals(event1));
310 }
085d898f 311
6e1886bc 312 @Test
54a7a54c 313 public void testNonEqualSources() {
2771b032
AM
314 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
315 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
316 assertTrue("equals", event1.equals(event2));
317 assertTrue("equals", event2.equals(event1));
318
319 event2 = new TmfEvent(null, 0, fTimestamp1, fSource + "x", fType, fContent1, fReference1);
320 assertFalse("equals", event1.equals(event2));
321 assertFalse("equals", event2.equals(event1));
322
323 event2 = new TmfEvent(null, 0, fTimestamp1, null, fType, fContent1, fReference1);
324 assertFalse("equals", event1.equals(event2));
325 assertFalse("equals", event2.equals(event1));
326 }
085d898f 327
6e1886bc 328 @Test
54a7a54c 329 public void testNonEqualTypes() {
2771b032
AM
330 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
331 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
332 assertTrue("equals", event1.equals(event2));
333 assertTrue("equals", event2.equals(event1));
334
085d898f
FC
335 final String typeId = "OtherTestType";
336 final String[] labels = new String[] { fLabel2, fLabel1 };
e600c338 337 final TmfEventType newType = new TmfEventType(typeId, TmfEventField.makeRoot(labels));
39f9eadb
FC
338
339 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, newType, fContent1, fReference1);
340 assertFalse("equals", event1.equals(event2));
341 assertFalse("equals", event2.equals(event1));
342
343 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, null, fContent1, fReference1);
344 assertFalse("equals", event1.equals(event2));
345 assertFalse("equals", event2.equals(event1));
346 }
085d898f 347
6e1886bc 348 @Test
54a7a54c 349 public void testNonEqualContents() {
2771b032
AM
350 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
351 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
352 assertTrue("equals", event1.equals(event2));
353 assertTrue("equals", event2.equals(event1));
354
355 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent2, fReference1);
356 assertFalse("equals", event1.equals(event2));
357 assertFalse("equals", event2.equals(event1));
358
359 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, null, fReference1);
360 assertFalse("equals", event1.equals(event2));
361 assertFalse("equals", event2.equals(event1));
362 }
085d898f 363
6e1886bc 364 @Test
54a7a54c 365 public void testNonEqualReferences() {
2771b032
AM
366 final ITmfEvent event1 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
367 ITmfEvent event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference1);
39f9eadb
FC
368 assertTrue("equals", event1.equals(event2));
369 assertTrue("equals", event2.equals(event1));
370
371 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, fReference2);
372 assertFalse("equals", event1.equals(event2));
373 assertFalse("equals", event2.equals(event1));
374
375 event2 = new TmfEvent(null, 0, fTimestamp1, fSource, fType, fContent1, null);
376 assertFalse("equals", event1.equals(event2));
377 assertFalse("equals", event2.equals(event1));
378 }
085d898f 379
39f9eadb
FC
380 // ------------------------------------------------------------------------
381 // toString
382 // ------------------------------------------------------------------------
383
6e1886bc 384 @Test
39f9eadb 385 public void testToString() {
085d898f 386 final String expected1 = "TmfEvent [fTimestamp=" + fTimestamp1 + ", fTrace=null, fRank=0, fSource=" + fSource
39f9eadb
FC
387 + ", fType=" + fType + ", fContent=" + fContent1 + ", fReference=" + fReference1 + "]";
388 assertEquals("toString", expected1, fEvent1.toString());
389
085d898f 390 final String expected2 = "TmfEvent [fTimestamp=" + fTimestamp2 + ", fTrace=null, fRank=1, fSource=" + fSource
39f9eadb
FC
391 + ", fType=" + fType + ", fContent=" + fContent2 + ", fReference=" + fReference2 + "]";
392 assertEquals("toString", expected2, fEvent2.toString());
393 }
d18dd09b 394
bd54d363
AM
395 /**
396 * Test the .toString() with extended classes.
397 * It should print the correct class name.
398 */
399 @Test
400 public void testToStringExtended() {
401 class ExtendedEvent extends TmfEvent {
402 ExtendedEvent(ITmfEvent event) {
403 super(event);
404 }
405 }
406 ExtendedEvent event = new ExtendedEvent(fEvent1);
407 String expected = "ExtendedEvent [fTimestamp=" + fTimestamp1
408 + ", fTrace=null, fRank=0, fSource=" + fSource
409 + ", fType=" + fType + ", fContent=" + fContent1
410 + ", fReference=" + fReference1 + "]";
411
412 assertEquals(expected, event.toString());
413 }
414
d18dd09b 415}
This page took 0.082871 seconds and 5 git commands to generate.