Merge branch 'master' into lttng-kepler
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / event / TmfEventFieldTest.java
CommitLineData
d18dd09b 1/*******************************************************************************
75d42a16 2 * Copyright (c) 2009, 2012 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
75d42a16 11 * Francois Chouinard - Adjusted for new Event Model
d18dd09b
ASL
12 *******************************************************************************/
13
6c13869b 14package org.eclipse.linuxtools.tmf.core.tests.event;
d18dd09b 15
cbd4ad82
FC
16import junit.framework.TestCase;
17
4c564a2d 18import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
6c13869b 19import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
d18dd09b
ASL
20
21/**
cbd4ad82 22 * Test suite for the TmfEventField class.
d18dd09b 23 */
3b38ea61 24@SuppressWarnings("nls")
d18dd09b
ASL
25public class TmfEventFieldTest extends TestCase {
26
75d42a16
FC
27 // ------------------------------------------------------------------------
28 // Variables
29 // ------------------------------------------------------------------------
30
31 private final String fFieldName1 = "Field-1";
32 private final String fFieldName2 = "Field-2";
33
ea2b103b 34 private final Object fValue1 = "Value";
35 private final Object fValue2 = Integer.valueOf(10);
75d42a16 36
085d898f
FC
37 private final TmfEventField fField1 = new TmfEventField(fFieldName1, fValue1);
38 private final TmfEventField fField2 = new TmfEventField(fFieldName2, fValue2, null);
39 private final TmfEventField fField3 = new TmfEventField(fFieldName1, fValue2, null);
75d42a16
FC
40
41 private final String fStructRootFieldName = "Root-S";
42 private final String[] fStructFieldNames = new String[] { fFieldName1, fFieldName2 };
43 private final TmfEventField fStructTerminalField1 = new TmfEventField(fFieldName1, null);
44 private final TmfEventField fStructTerminalField2 = new TmfEventField(fFieldName2, null);
45 private final TmfEventField fStructTerminalField3 = new TmfEventField(fFieldName1, null);
46 private final TmfEventField fStructRootField = new TmfEventField(fStructRootFieldName,
47 new ITmfEventField[] { fStructTerminalField1, fStructTerminalField2 });
48
49 private final String fRootFieldName = "Root";
50 private final String[] fFieldNames = new String[] { fFieldName1, fFieldName2 };
51 private final TmfEventField fRootField = new TmfEventField(fRootFieldName,
52 new ITmfEventField[] { fField1, fField2 });
53
54 // ------------------------------------------------------------------------
55 // Housekeeping
56 // ------------------------------------------------------------------------
57
58 /**
59 * @param name the test name
60 */
085d898f 61 public TmfEventFieldTest(final String name) {
75d42a16
FC
62 super(name);
63 }
64
65 @Override
66 protected void setUp() throws Exception {
67 super.setUp();
68 }
69
70 @Override
71 protected void tearDown() throws Exception {
72 super.tearDown();
73 }
74
75 // ------------------------------------------------------------------------
76 // Constructors
77 // ------------------------------------------------------------------------
78
54a7a54c
FC
79 /**
80 *
81 */
75d42a16
FC
82 public void testTerminalStructConstructor() {
83 assertSame("getName", fFieldName1, fStructTerminalField1.getName());
84 assertNull("getValue", fStructTerminalField1.getValue());
8b63ffb9 85 assertEquals("getFields", 0, fStructTerminalField1.getFields().length);
75d42a16
FC
86 assertNull("getField(name)", fStructTerminalField1.getField(fFieldName1));
87 assertNull("getField(index)", fStructTerminalField1.getField(0));
88 assertEquals("getFieldNames", 0, fStructTerminalField1.getFieldNames().length);
89 assertNull("getFieldName", fStructTerminalField1.getFieldName(-1));
90 assertNull("getFieldName", fStructTerminalField1.getFieldName(0));
91 }
92
54a7a54c
FC
93 /**
94 *
95 */
75d42a16
FC
96 public void testNonTerminalStructConstructor() {
97 assertSame("getName", fStructRootFieldName, fStructRootField.getName());
98 assertNull("getValue", fStructRootField.getValue());
99 assertEquals("getFields", 2, fStructRootField.getFields().length);
100 assertSame("getField(name)", fStructTerminalField1, fStructRootField.getField(fFieldName1));
101 assertSame("getField(name)", fStructTerminalField2, fStructRootField.getField(fFieldName2));
102 assertSame("getField(index)", fStructTerminalField1, fStructRootField.getField(0));
103 assertSame("getField(index)", fStructTerminalField2, fStructRootField.getField(1));
104
085d898f 105 final String[] names = fStructRootField.getFieldNames();
75d42a16
FC
106 assertEquals("getFieldNames length", 2, names.length);
107 for (int i = 0; i < names.length; i++) {
108 assertSame("getFieldNames", fStructFieldNames[i], names[i]);
109 assertSame("getFieldName", fFieldNames[i], fStructRootField.getFieldName(i));
110 }
111 assertNull("getFieldName", fStructRootField.getFieldName(-1));
112 assertNull("getFieldName", fStructRootField.getFieldName(names.length));
113 }
114
54a7a54c
FC
115 /**
116 *
117 */
75d42a16
FC
118 public void testTerminalConstructor() {
119 assertSame("getName", fFieldName1, fField1.getName());
120 assertSame("getValue", fValue1, fField1.getValue());
8b63ffb9 121 assertEquals("getFields", 0, fField1.getFields().length);
75d42a16
FC
122 assertNull("getField(name)", fField1.getField(fFieldName1));
123 assertNull("getField(index)", fField1.getField(0));
124 assertEquals("getFieldNames", 0, fField1.getFieldNames().length);
125 assertNull("getFieldName", fField1.getFieldName(0));
126
127 assertSame("getName", fFieldName2, fField2.getName());
128 assertSame("getValue", fValue2, fField2.getValue());
8b63ffb9 129 assertEquals("getFields", 0, fField2.getFields().length);
75d42a16
FC
130 assertNull("getField(name)", fField2.getField(fFieldName2));
131 assertNull("getField(index)", fField2.getField(0));
132 assertEquals("getFieldNames", 0, fField2.getFieldNames().length);
133 assertNull("getFieldName", fField2.getFieldName(0));
134 }
135
54a7a54c
FC
136 /**
137 *
138 */
75d42a16
FC
139 public void testNonTerminalConstructor() {
140 assertSame("getName", fRootFieldName, fRootField.getName());
141 assertNull("getValue", fRootField.getValue());
142 assertEquals("getFields", 2, fRootField.getFields().length);
143 assertSame("getField(name)", fField1, fRootField.getField(fFieldName1));
144 assertSame("getField(name)", fField2, fRootField.getField(fFieldName2));
145 assertSame("getField(index)", fField1, fRootField.getField(0));
146 assertSame("getField(index)", fField2, fRootField.getField(1));
147
085d898f 148 final String[] names = fRootField.getFieldNames();
75d42a16
FC
149 assertEquals("getFieldNames length", 2, names.length);
150 for (int i = 0; i < names.length; i++) {
151 assertSame("getFieldNames", fFieldNames[i], names[i]);
152 assertSame("getFieldName", fFieldNames[i], fRootField.getFieldName(i));
153 }
154 assertNull("getFieldName", fRootField.getFieldName(-1));
155 assertNull("getFieldName", fRootField.getFieldName(names.length));
156 }
157
54a7a54c
FC
158 /**
159 *
160 */
75d42a16
FC
161 public void testConstructorBadArg() {
162 try {
163 new TmfEventField(null, fValue1, null);
164 fail("Invalid (null) field name");
085d898f 165 } catch (final IllegalArgumentException e) {
75d42a16
FC
166 }
167 }
168
54a7a54c
FC
169 /**
170 *
171 */
75d42a16 172 public void testTerminalCopyConstructor() {
085d898f 173 final TmfEventField copy = new TmfEventField(fField1);
75d42a16
FC
174 assertSame("getName", fFieldName1, copy.getName());
175 assertSame("getValue", fValue1, copy.getValue());
8b63ffb9 176 assertEquals("getFields", 0, copy.getFields().length);
75d42a16
FC
177 assertNull("getField(name)", copy.getField(fFieldName1));
178 assertNull("getField(index)", copy.getField(0));
179 assertEquals("getFieldNames", 0, copy.getFieldNames().length);
180 assertNull("getFieldName", copy.getFieldName(0));
181 }
182
54a7a54c
FC
183 /**
184 *
185 */
75d42a16
FC
186 public void testNonTerminalCopyConstructor() {
187 assertSame("getName", fRootFieldName, fRootField.getName());
188 assertNull("getValue", fRootField.getValue());
189 assertEquals("getFields", 2, fRootField.getFields().length);
190 assertSame("getField(name)", fField1, fRootField.getField(fFieldName1));
191 assertSame("getField(name)", fField2, fRootField.getField(fFieldName2));
192 assertSame("getField(index)", fField1, fRootField.getField(0));
193 assertSame("getField(index)", fField2, fRootField.getField(1));
194
085d898f 195 final String[] names = fRootField.getFieldNames();
75d42a16
FC
196 assertEquals("getFieldNames length", 2, names.length);
197 for (int i = 0; i < names.length; i++) {
198 assertSame("getFieldNames", fFieldNames[i], names[i]);
199 assertSame("getFieldName", fFieldNames[i], fRootField.getFieldName(i));
200 }
201 assertNull("getFieldName", fRootField.getFieldName(names.length));
202 }
203
54a7a54c
FC
204 /**
205 *
206 */
75d42a16
FC
207 public void testCopyConstructorBadArg() {
208 try {
209 new TmfEventField(null);
210 fail("TmfEventField: null arguemnt");
085d898f 211 } catch (final IllegalArgumentException e) {
75d42a16
FC
212 }
213 }
214
215 // ------------------------------------------------------------------------
216 // Modifiers
217 // ------------------------------------------------------------------------
218
ea2b103b 219 private static class MyField extends TmfEventField {
75d42a16 220
085d898f 221 public MyField(final String id, final Object value) {
75d42a16
FC
222 super(id, value);
223 }
224
085d898f 225 public MyField(final TmfEventField field) {
75d42a16
FC
226 super(field);
227 }
228
229 @Override
085d898f 230 public void setValue(final Object value, final ITmfEventField[] subfields) {
75d42a16
FC
231 super.setValue(value, subfields);
232 }
233 }
234
54a7a54c
FC
235 /**
236 *
237 */
75d42a16 238 public void testSetValue() {
085d898f 239 final TmfEventField field = new TmfEventField(fFieldName1, fValue1, null);
d18dd09b 240
085d898f 241 final MyField myField = new MyField(field);
75d42a16
FC
242 assertSame("getValue", fValue1, myField.getValue());
243 myField.setValue(fValue2, null);
244 assertSame("getValue", fValue2, myField.getValue());
cbdacf03
FC
245 myField.setValue(fValue2, new TmfEventField[] { field });
246 assertSame("getValue", fValue2, myField.getValue());
75d42a16 247 }
cbd4ad82
FC
248
249 // ------------------------------------------------------------------------
75d42a16
FC
250 // clone
251 // ------------------------------------------------------------------------
252
54a7a54c
FC
253 /**
254 *
255 */
256 public void testFieldClone() {
de126dbb
FC
257 TmfEventField clone = fField1.clone();
258 assertTrue("clone", fField1.clone().equals(fField1));
259 assertTrue("clone", clone.clone().equals(clone));
75d42a16 260 assertEquals("clone", fField1, clone);
de126dbb 261 assertEquals("clone", clone, fField1);
75d42a16
FC
262
263 clone = fRootField.clone();
de126dbb
FC
264 assertTrue("clone", fRootField.clone().equals(fRootField));
265 assertTrue("clone", clone.clone().equals(clone));
75d42a16 266 assertEquals("clone", fRootField, clone);
de126dbb
FC
267 assertEquals("clone", clone, fRootField);
268 }
269
54a7a54c
FC
270 /**
271 *
272 */
273 public void testStructFieldClone() {
de126dbb
FC
274 TmfEventField clone = fStructTerminalField1.clone();
275 assertTrue("clone", fStructTerminalField1.clone().equals(fStructTerminalField1));
276 assertTrue("clone", clone.clone().equals(clone));
277 assertEquals("clone", fStructTerminalField1, clone);
278 assertEquals("clone", clone, fStructTerminalField1);
75d42a16
FC
279
280 clone = fStructRootField.clone();
de126dbb
FC
281 assertTrue("clone", fStructRootField.clone().equals(fStructRootField));
282 assertTrue("clone", clone.clone().equals(clone));
75d42a16 283 assertEquals("clone", fStructRootField, clone);
de126dbb 284 assertEquals("clone", clone, fStructRootField);
75d42a16
FC
285 }
286
287 // ------------------------------------------------------------------------
288 // hashCode
289 // ------------------------------------------------------------------------
290
54a7a54c
FC
291 /**
292 *
293 */
294 public void testHashCode() {
75d42a16
FC
295 TmfEventField copy = new TmfEventField(fField1);
296 assertTrue("hashCode", fField1.hashCode() == copy.hashCode());
297 assertTrue("hashCode", fField1.hashCode() != fField2.hashCode());
298
299 copy = new TmfEventField(fStructTerminalField1);
300 assertTrue("hashCode", fStructTerminalField1.hashCode() == copy.hashCode());
301 assertTrue("hashCode", fStructTerminalField1.hashCode() != fStructTerminalField2.hashCode());
302 }
303
304 // ------------------------------------------------------------------------
305 // equals
306 // ------------------------------------------------------------------------
307
54a7a54c
FC
308 /**
309 *
310 */
311 public void testEqualsReflexivity() {
75d42a16
FC
312 assertTrue("equals", fField1.equals(fField1));
313 assertTrue("equals", fField2.equals(fField2));
314
315 assertFalse("equals", fField1.equals(fField2));
316 assertFalse("equals", fField2.equals(fField1));
317
318 assertTrue("equals", fStructTerminalField1.equals(fStructTerminalField1));
319 assertTrue("equals", fStructTerminalField2.equals(fStructTerminalField2));
320
321 assertFalse("equals", fStructTerminalField1.equals(fStructTerminalField2));
322 assertFalse("equals", fStructTerminalField2.equals(fStructTerminalField1));
323 }
324
54a7a54c
FC
325 /**
326 *
327 */
328 public void testEqualsSymmetry() {
085d898f 329 final TmfEventField copy0 = new TmfEventField(fField1);
75d42a16
FC
330 assertTrue("equals", fField1.equals(copy0));
331 assertTrue("equals", copy0.equals(fField1));
085d898f
FC
332
333 final TmfEventField copy3 = new TmfEventField(fField2);
75d42a16
FC
334 assertTrue("equals", fField2.equals(copy3));
335 assertTrue("equals", copy3.equals(fField2));
336 }
337
54a7a54c
FC
338 /**
339 *
340 */
341 public void testEqualsTransivity() {
75d42a16
FC
342 TmfEventField copy1 = new TmfEventField(fField1);
343 TmfEventField copy2 = new TmfEventField(copy1);
344 assertTrue("equals", fField1.equals(copy1));
345 assertTrue("equals", copy1.equals(copy2));
346 assertTrue("equals", fField1.equals(copy2));
347
348 copy1 = new TmfEventField(fField2);
349 copy2 = new TmfEventField(copy1);
350 assertTrue("equals", fField2.equals(copy1));
351 assertTrue("equals", copy1.equals(copy2));
352 assertTrue("equals", fField2.equals(copy2));
353 }
354
54a7a54c
FC
355 /**
356 *
357 */
358 public void testEquals() {
75d42a16
FC
359 assertTrue("equals", fStructTerminalField1.equals(fStructTerminalField3));
360 assertTrue("equals", fStructTerminalField3.equals(fStructTerminalField1));
361
362 assertFalse("equals", fStructTerminalField1.equals(fField3));
363 assertFalse("equals", fField3.equals(fStructTerminalField1));
364 }
365
54a7a54c
FC
366 /**
367 *
368 */
369 public void testEqualsNull() {
39f9eadb
FC
370 assertFalse("equals", fField1.equals(null));
371 assertFalse("equals", fField2.equals(null));
372 }
373
54a7a54c
FC
374 /**
375 *
376 */
377 public void testNonEqualClasses() {
39f9eadb
FC
378 assertFalse("equals", fField1.equals(fStructTerminalField1));
379 assertFalse("equals", fField1.equals(fValue1));
380 }
381
54a7a54c
FC
382 /**
383 *
384 */
385 public void testNonEqualValues() {
085d898f 386 final TmfEventField copy1 = new TmfEventField(fFieldName1, fValue1);
39f9eadb
FC
387 TmfEventField copy2 = new TmfEventField(fFieldName1, fValue1);
388 assertTrue("equals", copy1.equals(copy2));
389 assertTrue("equals", copy2.equals(copy1));
390
391 copy2 = new TmfEventField(fFieldName1, fValue2);
392 assertFalse("equals", copy1.equals(copy2));
393 assertFalse("equals", copy2.equals(copy1));
394
395 copy2 = new TmfEventField(fFieldName1, null);
396 assertFalse("equals", copy1.equals(copy2));
397 assertFalse("equals", copy2.equals(copy1));
398 }
399
54a7a54c
FC
400 /**
401 *
402 */
403 public void testNonEquals() {
75d42a16
FC
404 assertFalse("equals", fField1.equals(fField2));
405 assertFalse("equals", fField2.equals(fField1));
406
407 assertFalse("equals", fField1.equals(fStructTerminalField1));
408 }
409
75d42a16
FC
410 // ------------------------------------------------------------------------
411 // toString
412 // ------------------------------------------------------------------------
413
54a7a54c
FC
414 /**
415 *
416 */
75d42a16 417 public void testToString() {
085d898f 418 final String expected1 = "TmfEventField [fFieldId=" + fFieldName1 + ", fValue=" + fValue1.toString() + "]";
75d42a16
FC
419 TmfEventField field = new TmfEventField(fFieldName1, fValue1, null);
420 assertEquals("toString", expected1, field.toString());
421
085d898f 422 final String expected2 = "TmfEventField [fFieldId=" + fFieldName1 + ", fValue=" + fValue2.toString() + "]";
75d42a16
FC
423 field = new TmfEventField(fFieldName1, fValue2, null);
424 assertEquals("toString", expected2, field.toString());
425 }
426
427 // ------------------------------------------------------------------------
428 // makeRoot
429 // ------------------------------------------------------------------------
430
54a7a54c
FC
431 /**
432 *
433 */
75d42a16
FC
434 public void testMakeRoot() {
435 ITmfEventField root = TmfEventField.makeRoot(fStructFieldNames);
436 String[] names = root.getFieldNames();
437 assertEquals("getFieldNames length", 2, names.length);
438 for (int i = 0; i < names.length; i++) {
439 assertSame("getFieldNames", fStructFieldNames[i], names[i]);
440 assertSame("getFieldName", fStructFieldNames[i], root.getFieldName(i));
441 assertNull("getValue", root.getField(i).getValue());
442 }
443 assertNull("getFieldName", root.getFieldName(-1));
444 assertNull("getFieldName", root.getFieldName(names.length));
445
446 root = TmfEventField.makeRoot(fFieldNames);
447 names = root.getFieldNames();
448 assertEquals("getFieldNames length", 2, names.length);
449 for (int i = 0; i < names.length; i++) {
450 assertSame("getFieldNames", fFieldNames[i], names[i]);
451 assertSame("getFieldName", fFieldNames[i], root.getFieldName(i));
452 assertNull("getValue", root.getField(i).getValue());
453 }
454 assertNull("getFieldName", root.getFieldName(-1));
455 assertNull("getFieldName", root.getFieldName(names.length));
456 }
d18dd09b
ASL
457
458}
This page took 0.070274 seconds and 5 git commands to generate.