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