TMF: Update the benchmark's scenario ID to match our own spec
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core.tests / src / org / eclipse / linuxtools / tmf / core / tests / event / TmfEventFieldTest.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
75d42a16 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
b742c196 17import static org.junit.Assert.assertArrayEquals;
6e1886bc
AM
18import static org.junit.Assert.assertEquals;
19import static org.junit.Assert.assertFalse;
20import static org.junit.Assert.assertNull;
21import static org.junit.Assert.assertSame;
22import static org.junit.Assert.assertTrue;
23import static org.junit.Assert.fail;
cbd4ad82 24
b742c196
AM
25import java.util.Collection;
26
4c564a2d 27import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
6c13869b 28import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
6e1886bc 29import org.junit.Test;
d18dd09b
ASL
30
31/**
cbd4ad82 32 * Test suite for the TmfEventField class.
d18dd09b 33 */
cad06250 34@SuppressWarnings("javadoc")
6e1886bc 35public class TmfEventFieldTest {
d18dd09b 36
75d42a16
FC
37 // ------------------------------------------------------------------------
38 // Variables
39 // ------------------------------------------------------------------------
40
41 private final String fFieldName1 = "Field-1";
42 private final String fFieldName2 = "Field-2";
43
ea2b103b 44 private final Object fValue1 = "Value";
45 private final Object fValue2 = Integer.valueOf(10);
75d42a16 46
214cc822 47 private final TmfEventField fField1 = new TmfEventField(fFieldName1, fValue1, null);
085d898f
FC
48 private final TmfEventField fField2 = new TmfEventField(fFieldName2, fValue2, null);
49 private final TmfEventField fField3 = new TmfEventField(fFieldName1, fValue2, null);
75d42a16
FC
50
51 private final String fStructRootFieldName = "Root-S";
52 private final String[] fStructFieldNames = new String[] { fFieldName1, fFieldName2 };
214cc822
AM
53 private final TmfEventField fStructTerminalField1 = new TmfEventField(fFieldName1, null, null);
54 private final TmfEventField fStructTerminalField2 = new TmfEventField(fFieldName2, null, null);
55 private final TmfEventField fStructTerminalField3 = new TmfEventField(fFieldName1, null, null);
56 private final TmfEventField fStructRootField = new TmfEventField(fStructRootFieldName, null,
75d42a16
FC
57 new ITmfEventField[] { fStructTerminalField1, fStructTerminalField2 });
58
59 private final String fRootFieldName = "Root";
60 private final String[] fFieldNames = new String[] { fFieldName1, fFieldName2 };
214cc822 61 private final TmfEventField fRootField = new TmfEventField(fRootFieldName, null,
75d42a16
FC
62 new ITmfEventField[] { fField1, fField2 });
63
75d42a16
FC
64 // ------------------------------------------------------------------------
65 // Constructors
66 // ------------------------------------------------------------------------
67
6e1886bc 68 @Test
75d42a16
FC
69 public void testTerminalStructConstructor() {
70 assertSame("getName", fFieldName1, fStructTerminalField1.getName());
71 assertNull("getValue", fStructTerminalField1.getValue());
b742c196 72 assertEquals("getFields", 0, fStructTerminalField1.getFields().size());
75d42a16 73 assertNull("getField(name)", fStructTerminalField1.getField(fFieldName1));
b742c196 74 assertEquals("getFieldNames", 0, fStructTerminalField1.getFieldNames().size());
75d42a16
FC
75 }
76
6e1886bc 77 @Test
75d42a16
FC
78 public void testNonTerminalStructConstructor() {
79 assertSame("getName", fStructRootFieldName, fStructRootField.getName());
80 assertNull("getValue", fStructRootField.getValue());
b742c196 81 assertEquals("getFields", 2, fStructRootField.getFields().size());
75d42a16
FC
82 assertSame("getField(name)", fStructTerminalField1, fStructRootField.getField(fFieldName1));
83 assertSame("getField(name)", fStructTerminalField2, fStructRootField.getField(fFieldName2));
b742c196
AM
84
85 final Collection<String> names = fStructRootField.getFieldNames();
86 assertEquals("getFieldNames length", 2, names.size());
87 assertArrayEquals(fStructFieldNames, names.toArray(new String[names.size()]));
75d42a16
FC
88 }
89
6e1886bc 90 @Test
75d42a16
FC
91 public void testTerminalConstructor() {
92 assertSame("getName", fFieldName1, fField1.getName());
93 assertSame("getValue", fValue1, fField1.getValue());
b742c196 94 assertEquals("getFields", 0, fField1.getFields().size());
75d42a16 95 assertNull("getField(name)", fField1.getField(fFieldName1));
b742c196 96 assertEquals("getFieldNames", 0, fField1.getFieldNames().size());
75d42a16
FC
97
98 assertSame("getName", fFieldName2, fField2.getName());
99 assertSame("getValue", fValue2, fField2.getValue());
b742c196 100 assertEquals("getFields", 0, fField2.getFields().size());
75d42a16 101 assertNull("getField(name)", fField2.getField(fFieldName2));
75d42a16
FC
102 }
103
6e1886bc 104 @Test
75d42a16
FC
105 public void testNonTerminalConstructor() {
106 assertSame("getName", fRootFieldName, fRootField.getName());
107 assertNull("getValue", fRootField.getValue());
b742c196 108 assertEquals("getFields", 2, fRootField.getFields().size());
75d42a16
FC
109 assertSame("getField(name)", fField1, fRootField.getField(fFieldName1));
110 assertSame("getField(name)", fField2, fRootField.getField(fFieldName2));
b742c196
AM
111
112 final Collection<String> names = fRootField.getFieldNames();
113 assertEquals("getFieldNames length", 2, names.size());
114 assertArrayEquals(fFieldNames, names.toArray(new String[names.size()]));
75d42a16
FC
115 }
116
6e1886bc 117 @Test
75d42a16
FC
118 public void testConstructorBadArg() {
119 try {
120 new TmfEventField(null, fValue1, null);
121 fail("Invalid (null) field name");
085d898f 122 } catch (final IllegalArgumentException e) {
75d42a16
FC
123 }
124 }
125
6e1886bc 126 @Test
75d42a16 127 public void testTerminalCopyConstructor() {
085d898f 128 final TmfEventField copy = new TmfEventField(fField1);
75d42a16
FC
129 assertSame("getName", fFieldName1, copy.getName());
130 assertSame("getValue", fValue1, copy.getValue());
b742c196 131 assertEquals("getFields", 0, copy.getFields().size());
75d42a16 132 assertNull("getField(name)", copy.getField(fFieldName1));
b742c196 133 assertEquals("getFieldNames", 0, copy.getFieldNames().size());
75d42a16
FC
134 }
135
6e1886bc 136 @Test
75d42a16
FC
137 public void testNonTerminalCopyConstructor() {
138 assertSame("getName", fRootFieldName, fRootField.getName());
139 assertNull("getValue", fRootField.getValue());
b742c196 140 assertEquals("getFields", 2, fRootField.getFields().size());
75d42a16
FC
141 assertSame("getField(name)", fField1, fRootField.getField(fFieldName1));
142 assertSame("getField(name)", fField2, fRootField.getField(fFieldName2));
b742c196
AM
143
144 final Collection<String> names = fRootField.getFieldNames();
145 assertEquals("getFieldNames length", 2, names.size());
146 assertArrayEquals(fFieldNames, names.toArray(new String[names.size()]));
75d42a16
FC
147 }
148
6e1886bc 149 @Test
75d42a16
FC
150 public void testCopyConstructorBadArg() {
151 try {
152 new TmfEventField(null);
153 fail("TmfEventField: null arguemnt");
085d898f 154 } catch (final IllegalArgumentException e) {
75d42a16
FC
155 }
156 }
157
b742c196
AM
158 /**
159 * Test that we correctly fail to create a field with subfields having the
160 * same name.
161 */
162 @Test
163 public void testDuplicateFieldNames() {
164 ITmfEventField[] fields = {
165 new TmfEventField("samename", null, null),
166 new TmfEventField("samename", null, null)
167 };
168
169 try {
170 new TmfEventField("field", null, fields);
171 fail("TmfEventField: Duplicate field names");
172 } catch (IllegalArgumentException e) {
173 /* Expected exception */
174 }
175 }
176
75d42a16 177 // ------------------------------------------------------------------------
75d42a16
FC
178 // hashCode
179 // ------------------------------------------------------------------------
180
6e1886bc 181 @Test
54a7a54c 182 public void testHashCode() {
75d42a16
FC
183 TmfEventField copy = new TmfEventField(fField1);
184 assertTrue("hashCode", fField1.hashCode() == copy.hashCode());
185 assertTrue("hashCode", fField1.hashCode() != fField2.hashCode());
186
187 copy = new TmfEventField(fStructTerminalField1);
188 assertTrue("hashCode", fStructTerminalField1.hashCode() == copy.hashCode());
189 assertTrue("hashCode", fStructTerminalField1.hashCode() != fStructTerminalField2.hashCode());
190 }
191
192 // ------------------------------------------------------------------------
193 // equals
194 // ------------------------------------------------------------------------
195
6e1886bc 196 @Test
54a7a54c 197 public void testEqualsReflexivity() {
75d42a16
FC
198 assertTrue("equals", fField1.equals(fField1));
199 assertTrue("equals", fField2.equals(fField2));
200
201 assertFalse("equals", fField1.equals(fField2));
202 assertFalse("equals", fField2.equals(fField1));
203
204 assertTrue("equals", fStructTerminalField1.equals(fStructTerminalField1));
205 assertTrue("equals", fStructTerminalField2.equals(fStructTerminalField2));
206
207 assertFalse("equals", fStructTerminalField1.equals(fStructTerminalField2));
208 assertFalse("equals", fStructTerminalField2.equals(fStructTerminalField1));
209 }
210
6e1886bc 211 @Test
54a7a54c 212 public void testEqualsSymmetry() {
085d898f 213 final TmfEventField copy0 = new TmfEventField(fField1);
75d42a16
FC
214 assertTrue("equals", fField1.equals(copy0));
215 assertTrue("equals", copy0.equals(fField1));
085d898f
FC
216
217 final TmfEventField copy3 = new TmfEventField(fField2);
75d42a16
FC
218 assertTrue("equals", fField2.equals(copy3));
219 assertTrue("equals", copy3.equals(fField2));
220 }
221
6e1886bc 222 @Test
54a7a54c 223 public void testEqualsTransivity() {
75d42a16
FC
224 TmfEventField copy1 = new TmfEventField(fField1);
225 TmfEventField copy2 = new TmfEventField(copy1);
226 assertTrue("equals", fField1.equals(copy1));
227 assertTrue("equals", copy1.equals(copy2));
228 assertTrue("equals", fField1.equals(copy2));
229
230 copy1 = new TmfEventField(fField2);
231 copy2 = new TmfEventField(copy1);
232 assertTrue("equals", fField2.equals(copy1));
233 assertTrue("equals", copy1.equals(copy2));
234 assertTrue("equals", fField2.equals(copy2));
235 }
236
6e1886bc 237 @Test
54a7a54c 238 public void testEquals() {
75d42a16
FC
239 assertTrue("equals", fStructTerminalField1.equals(fStructTerminalField3));
240 assertTrue("equals", fStructTerminalField3.equals(fStructTerminalField1));
241
242 assertFalse("equals", fStructTerminalField1.equals(fField3));
243 assertFalse("equals", fField3.equals(fStructTerminalField1));
244 }
245
6e1886bc 246 @Test
54a7a54c 247 public void testEqualsNull() {
39f9eadb
FC
248 assertFalse("equals", fField1.equals(null));
249 assertFalse("equals", fField2.equals(null));
250 }
251
6e1886bc 252 @Test
54a7a54c 253 public void testNonEqualClasses() {
39f9eadb
FC
254 assertFalse("equals", fField1.equals(fStructTerminalField1));
255 assertFalse("equals", fField1.equals(fValue1));
256 }
257
6e1886bc 258 @Test
54a7a54c 259 public void testNonEqualValues() {
214cc822
AM
260 final TmfEventField copy1 = new TmfEventField(fFieldName1, fValue1, null);
261 TmfEventField copy2 = new TmfEventField(fFieldName1, fValue1, null);
39f9eadb
FC
262 assertTrue("equals", copy1.equals(copy2));
263 assertTrue("equals", copy2.equals(copy1));
264
214cc822 265 copy2 = new TmfEventField(fFieldName1, fValue2, null);
39f9eadb
FC
266 assertFalse("equals", copy1.equals(copy2));
267 assertFalse("equals", copy2.equals(copy1));
268
214cc822 269 copy2 = new TmfEventField(fFieldName1, null, null);
39f9eadb
FC
270 assertFalse("equals", copy1.equals(copy2));
271 assertFalse("equals", copy2.equals(copy1));
272 }
273
6e1886bc 274 @Test
54a7a54c 275 public void testNonEquals() {
75d42a16
FC
276 assertFalse("equals", fField1.equals(fField2));
277 assertFalse("equals", fField2.equals(fField1));
278
279 assertFalse("equals", fField1.equals(fStructTerminalField1));
280 }
281
75d42a16
FC
282 // ------------------------------------------------------------------------
283 // toString
284 // ------------------------------------------------------------------------
285
6e1886bc 286 @Test
75d42a16 287 public void testToString() {
306dc902 288 final String expected1 = fFieldName1 + "=" + fValue1.toString();
75d42a16
FC
289 TmfEventField field = new TmfEventField(fFieldName1, fValue1, null);
290 assertEquals("toString", expected1, field.toString());
291
306dc902 292 final String expected2 = fFieldName1 + "=" + fValue2.toString();
75d42a16
FC
293 field = new TmfEventField(fFieldName1, fValue2, null);
294 assertEquals("toString", expected2, field.toString());
295 }
296
297 // ------------------------------------------------------------------------
298 // makeRoot
299 // ------------------------------------------------------------------------
300
6e1886bc 301 @Test
75d42a16
FC
302 public void testMakeRoot() {
303 ITmfEventField root = TmfEventField.makeRoot(fStructFieldNames);
b742c196
AM
304 Collection<String> names = root.getFieldNames();
305 assertEquals("getFieldNames length", 2, names.size());
306 assertArrayEquals(fStructFieldNames, names.toArray(new String[names.size()]));
75d42a16
FC
307
308 root = TmfEventField.makeRoot(fFieldNames);
309 names = root.getFieldNames();
b742c196
AM
310 assertEquals("getFieldNames length", 2, names.size());
311 assertArrayEquals(fFieldNames, names.toArray(new String[names.size()]));
75d42a16 312 }
d18dd09b 313}
This page took 0.067136 seconds and 5 git commands to generate.